openclaw onboard --non-interactive to script setup. It requires --accept-risk: non-interactive setup can write credentials and daemon config without a confirmation prompt, so the flag is the explicit risk acknowledgement.
--json does not imply non-interactive mode. Pass --non-interactive --accept-risk explicitly for scripts.Baseline non-interactive example
--json for a machine-readable summary.
--gateway-portdefaults to18789; only pass it to override.--skip-bootstrapskips creating default workspace files, for automation that pre-seeds its own workspace.--secret-input-mode refstores an env-backed reference ({ source: "env", provider: "default", id: "<ENV_VAR>" }) in the auth profile instead of the plaintext key. In non-interactiverefmode, the provider env var must already be set in the process environment: passing an inline key flag without its matching env var fails fast.
Provider-specific examples
Anthropic API key example
Anthropic API key example
Cloudflare AI Gateway example
Cloudflare AI Gateway example
Gemini example
Gemini example
Mistral example
Mistral example
Moonshot example
Moonshot example
Ollama example
Ollama example
OpenCode example
OpenCode example
--auth-choice opencode-go --opencode-go-api-key "$OPENCODE_API_KEY" for the Go catalog.Synthetic example
Synthetic example
Vercel AI Gateway example
Vercel AI Gateway example
Z.AI example
Z.AI example
Custom provider example
Custom provider example
--custom-api-key is optional; some endpoints do not require auth. If omitted, onboarding checks CUSTOM_API_KEY in env. --custom-provider-id is optional and auto-derived from the base URL when omitted. --custom-compatibility defaults to openai (other values: openai-responses, anthropic).OpenClaw infers image-input support from known vision model-id patterns (gpt-4o, claude-3/4, gemini, -vl/vision suffixes, and similar). Add --custom-image-input to force it on for an unrecognized vision model, or --custom-text-input to force text-only.Ref-mode variant, storing apiKey as { source: "env", provider: "default", id: "CUSTOM_API_KEY" }:Add another agent
openclaw agents add <name> creates a separate agent with its own workspace, sessions, and auth profiles. Running it without --workspace (and no other flags) launches the interactive wizard; passing any of --workspace, --model, --agent-dir, --bind, or --non-interactive runs it non-interactively and then requires --workspace.
agents.list[] entry for the new agent id):
nameworkspaceagentDirmodel(only when--modelis passed)
- Default workspace (when
--workspaceis omitted in the interactive wizard):~/.openclaw/workspace-<agentId>. --bind <channel[:accountId]>is repeatable; add bindings to route inbound messages to the new agent (the wizard can also do this interactively).- The agent name is normalized to a valid agent id;
mainis reserved.
Related docs
- Onboarding hub: Onboarding (CLI)
- Full reference: CLI Setup Reference
- Command reference:
openclaw onboard