CLI automation
Use --non-interactive to automate openclaw onboard.
Baseline non-interactive example
Section titled “Baseline non-interactive example”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-skillsAdd --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-riskProvider-specific examples
Section titled “Provider-specific examples”Anthropic API key example
openclaw onboard --non-interactive \ --mode local \ --auth-choice apiKey \ --anthropic-api-key "$ANTHROPIC_API_KEY" \ --gateway-port 18789 \ --gateway-bind loopbackGemini example
openclaw onboard --non-interactive \ --mode local \ --auth-choice gemini-api-key \ --gemini-api-key "$GEMINI_API_KEY" \ --gateway-port 18789 \ --gateway-bind loopbackZ.AI example
openclaw onboard --non-interactive \ --mode local \ --auth-choice zai-api-key \ --zai-api-key "$ZAI_API_KEY" \ --gateway-port 18789 \ --gateway-bind loopbackVercel AI Gateway example
openclaw onboard --non-interactive \ --mode local \ --auth-choice ai-gateway-api-key \ --ai-gateway-api-key "$AI_GATEWAY_API_KEY" \ --gateway-port 18789 \ --gateway-bind loopbackCloudflare AI Gateway example
openclaw onboard --non-interactive \ --mode local \ --auth-choice cloudflare-ai-gateway-api-key \ --cloudflare-ai-gateway-account-id "your-account-id" \ --cloudflare-ai-gateway-gateway-id "your-gateway-id" \ --cloudflare-ai-gateway-api-key "$CLOUDFLARE_AI_GATEWAY_API_KEY" \ --gateway-port 18789 \ --gateway-bind loopbackMoonshot example
openclaw onboard --non-interactive \ --mode local \ --auth-choice moonshot-api-key \ --moonshot-api-key "$MOONSHOT_API_KEY" \ --gateway-port 18789 \ --gateway-bind loopbackMistral example
openclaw onboard --non-interactive \ --mode local \ --auth-choice mistral-api-key \ --mistral-api-key "$MISTRAL_API_KEY" \ --gateway-port 18789 \ --gateway-bind loopbackSynthetic example
openclaw onboard --non-interactive \ --mode local \ --auth-choice synthetic-api-key \ --synthetic-api-key "$SYNTHETIC_API_KEY" \ --gateway-port 18789 \ --gateway-bind loopbackOpenCode example
openclaw onboard --non-interactive \ --mode local \ --auth-choice opencode-zen \ --opencode-zen-api-key "$OPENCODE_API_KEY" \ --gateway-port 18789 \ --gateway-bind loopbackSwap to --auth-choice opencode-go --opencode-go-api-key "$OPENCODE_API_KEY" for the Go catalog.
Ollama example
openclaw onboard --non-interactive \ --mode local \ --auth-choice ollama \ --custom-model-id "qwen3.5:27b" \ --accept-risk \ --gateway-port 18789 \ --gateway-bind loopbackCustom provider example
openclaw onboard --non-interactive \ --mode local \ --auth-choice custom-api-key \ --custom-base-url "https://llm.example.com/v1" \ --custom-model-id "foo-large" \ --custom-api-key "$CUSTOM_API_KEY" \ --custom-provider-id "my-custom" \ --custom-compatibility anthropic \ --custom-image-input \ --gateway-port 18789 \ --gateway-bind loopback--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:
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 loopbackIn 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.
Add another agent
Section titled “Add another agent”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 \ --jsonWhat it sets:
agents.list[].nameagents.list[].workspaceagents.list[].agentDir
Notes:
- Default workspaces follow
~/.openclaw/workspace-<agentId>. - Add
bindingsto route inbound messages (the wizard can do this). - Non-interactive flags:
--model,--agent-dir,--bind,--non-interactive.
Related docs
Section titled “Related docs”- Onboarding hub: Onboarding (CLI)
- Full reference: CLI Setup Reference
- Command reference:
openclaw onboard