docs/start/wizard-cli-automation.md
Use --non-interactive to automate openclaw onboard.
openclaw onboard --non-interactive \
--mode local \
--auth-choice apiKey \
--anthropic-api-key "$ANTHROPIC_API_KEY" \
--secret-input-mode plaintext \
--gateway-port 18789 \
--gateway-bind loopback \
--install-daemon \
--daemon-runtime node \
--skip-bootstrap \
--skip-skills
Add --json for a machine-readable summary.
Use --skip-bootstrap when your automation pre-seeds workspace files and does not want onboarding to create the default bootstrap files.
Use --secret-input-mode ref to store env-backed refs in auth profiles instead of plaintext values.
Interactive selection between env refs and configured provider refs (file or exec) is available in the onboarding flow.
In non-interactive ref mode, provider env vars must be set in the process environment.
Passing inline key flags without the matching env var now fails fast.
Example:
openclaw onboard --non-interactive \
--mode local \
--auth-choice openai-api-key \
--secret-input-mode ref \
--accept-risk
`--custom-api-key` is optional. If omitted, onboarding checks `CUSTOM_API_KEY`.
OpenClaw marks common vision model IDs as image-capable automatically. Add `--custom-image-input` for unknown custom vision IDs, or `--custom-text-input` to force text-only metadata.
Ref-mode variant:
```bash
export CUSTOM_API_KEY="your-key"
openclaw onboard --non-interactive \
--mode local \
--auth-choice custom-api-key \
--custom-base-url "https://llm.example.com/v1" \
--custom-model-id "foo-large" \
--secret-input-mode ref \
--custom-provider-id "my-custom" \
--custom-compatibility anthropic \
--custom-image-input \
--gateway-port 18789 \
--gateway-bind loopback
```
In this mode, onboarding stores `apiKey` as `{ source: "env", provider: "default", id: "CUSTOM_API_KEY" }`.
Anthropic setup-token remains available as a supported onboarding token path, but OpenClaw now prefers Claude CLI reuse when available. For production, prefer an Anthropic API key.
Use openclaw agents add <name> to create a separate agent with its own workspace,
sessions, and auth profiles. Running without --workspace launches the wizard.
openclaw agents add work \
--workspace ~/.openclaw/workspace-work \
--model openai/gpt-5.5 \
--bind whatsapp:biz \
--non-interactive \
--json
What it sets:
agents.list[].nameagents.list[].workspaceagents.list[].agentDirNotes:
~/.openclaw/workspace-<agentId>.bindings to route inbound messages (the wizard can do this).--model, --agent-dir, --bind, --non-interactive.openclaw onboard