2026-01-01 17:34:46 +01:00
---
2026-01-13 06:16:43 +00:00
summary: "CLI onboarding wizard: guided setup for gateway, workspace, channels, and skills"
2026-01-01 17:34:46 +01:00
read_when:
2026-01-01 21:09:24 +01:00
- Running or configuring the onboarding wizard
- Setting up a new machine
2026-02-05 10:09:45 -05:00
title: "Onboarding Wizard (CLI)"
2026-02-05 17:45:01 -05:00
sidebarTitle: "Onboarding: CLI"
2026-01-01 17:34:46 +01:00
---
# Onboarding Wizard (CLI)
2026-02-05 17:45:01 -05:00
The onboarding wizard is the **recommended** way to set up OpenClaw on macOS,
Linux, or Windows (via WSL2; strongly recommended).
It configures a local Gateway or a remote Gateway connection, plus channels, skills,
and workspace defaults in one guided flow.
2026-01-01 17:34:46 +01:00
2026-01-01 21:09:24 +01:00
```bash
2026-01-30 03:15:10 +01:00
openclaw onboard
2026-01-01 21:09:24 +01:00
```
2026-01-01 17:34:46 +01:00
2026-02-05 10:09:45 -05:00
< Info >
2026-01-26 20:26:03 +00:00
Fastest first chat: open the Control UI (no channel setup needed). Run
2026-01-30 03:15:10 +01:00
`openclaw dashboard` and chat in the browser. Docs: [Dashboard ](/web/dashboard ).
2026-02-05 10:09:45 -05:00
< / Info >
2026-01-26 20:26:03 +00:00
2026-02-05 17:45:01 -05:00
To reconfigure later:
```bash
openclaw configure
openclaw agents add < name >
```
< Note >
`--json` does not imply non-interactive mode. For scripts, use `--non-interactive` .
< / Note >
< Tip >
Recommended: set up a Brave Search API key so the agent can use `web_search`
(`web_fetch` works without a key). Easiest path: `openclaw configure --section web`
which stores `tools.web.search.apiKey` . Docs: [Web tools ](/tools/web ).
< / Tip >
2026-01-08 11:54:40 +01:00
## QuickStart vs Advanced
The wizard starts with **QuickStart** (defaults) vs **Advanced** (full control).
2026-02-05 10:09:45 -05:00
< Tabs >
< Tab title = "QuickStart (defaults)" >
2026-02-05 17:45:01 -05:00
- Local gateway (loopback)
- Workspace default (or existing workspace)
- Gateway port **18789**
- Gateway auth **Token** (auto‑ generated, even on loopback)
2026-03-02 18:15:43 +00:00
- Tool policy default for new local setups: `tools.profile: "messaging"` (existing explicit profile is preserved)
2026-02-22 12:45:59 +01:00
- DM isolation default: local onboarding writes `session.dmScope: "per-channel-peer"` when unset. Details: [CLI Onboarding Reference ](/start/wizard-cli-reference#outputs-and-internals )
2026-02-05 17:45:01 -05:00
- Tailscale exposure **Off**
- Telegram + WhatsApp DMs default to **allowlist** (you'll be prompted for your phone number)
2026-02-05 10:09:45 -05:00
< / Tab >
< Tab title = "Advanced (full control)" >
2026-02-05 17:45:01 -05:00
- Exposes every step (mode, workspace, gateway, channels, daemon, skills).
2026-02-05 10:09:45 -05:00
< / Tab >
< / Tabs >
2026-01-08 11:54:40 +01:00
2026-02-05 17:45:01 -05:00
## What the wizard configures
2026-01-01 21:09:24 +01:00
2026-02-05 17:45:01 -05:00
**Local mode (default)** walks you through these steps:
2026-01-31 21:13:13 +09:00
2026-03-03 00:02:25 +00:00
1. **Model/Auth** — choose any supported provider/auth flow (API key, OAuth, or setup-token), including Custom Provider
2026-02-10 20:31:02 +08:00
(OpenAI-compatible, Anthropic-compatible, or Unknown auto-detect). Pick a default model.
2026-03-03 00:02:25 +00:00
Security note: if this agent will run tools or process webhook/hooks content, prefer the strongest latest-generation model available and keep tool policy strict. Weaker/older tiers are easier to prompt-inject.
2026-02-24 16:26:51 -06:00
For non-interactive runs, `--secret-input-mode ref` stores env-backed refs in auth profiles instead of plaintext API key values.
2026-02-24 22:26:33 -06:00
In non-interactive `ref` mode, the provider env var must be set; passing inline key flags without that env var fails fast.
2026-02-25 17:58:10 -06:00
In interactive runs, choosing secret reference mode lets you point at either an environment variable or a configured provider ref (`file` or `exec` ), with a fast preflight validation before saving.
2026-02-05 17:45:01 -05:00
2. **Workspace** — Location for agent files (default `~/.openclaw/workspace` ). Seeds bootstrap files.
3. **Gateway** — Port, bind address, auth mode, Tailscale exposure.
4. **Channels** — WhatsApp, Telegram, Discord, Google Chat, Mattermost, Signal, BlueBubbles, or iMessage.
5. **Daemon** — Installs a LaunchAgent (macOS) or systemd user unit (Linux/WSL2).
6. **Health check** — Starts the Gateway and verifies it's running.
7. **Skills** — Installs recommended skills and optional dependencies.
2026-01-07 09:58:54 +01:00
2026-02-05 10:09:45 -05:00
< Note >
2026-02-05 17:45:01 -05:00
Re-running the wizard does **not** wipe anything unless you explicitly choose **Reset** (or pass `--reset` ).
2026-02-26 17:35:55 +01:00
CLI `--reset` defaults to config, credentials, and sessions; use `--reset-scope full` to include workspace.
2026-02-05 17:45:01 -05:00
If the config is invalid or contains legacy keys, the wizard asks you to run `openclaw doctor` first.
2026-02-05 10:09:45 -05:00
< / Note >
2026-01-01 21:09:24 +01:00
2026-02-05 17:45:01 -05:00
**Remote mode** only configures the local client to connect to a Gateway elsewhere.
It does **not** install or change anything on the remote host.
## 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.
What it sets:
- `agents.list[].name`
- `agents.list[].workspace`
- `agents.list[].agentDir`
Notes:
- Default workspaces follow `~/.openclaw/workspace-<agentId>` .
- Add `bindings` to route inbound messages (the wizard can do this).
- Non-interactive flags: `--model` , `--agent-dir` , `--bind` , `--non-interactive` .
## Full reference
For detailed step-by-step breakdowns, non-interactive scripting, Signal setup,
RPC API, and a full list of config fields the wizard writes, see the
[Wizard Reference ](/reference/wizard ).
2026-01-15 05:03:56 +00:00
2026-01-01 21:09:24 +01:00
## Related docs
2026-02-05 13:46:11 -05:00
- CLI command reference: [`openclaw onboard` ](/cli/onboard )
2026-02-10 20:31:02 +08:00
- Onboarding overview: [Onboarding Overview ](/start/onboarding-overview )
2026-01-10 14:51:21 -06:00
- macOS app onboarding: [Onboarding ](/start/onboarding )
2026-02-05 13:46:11 -05:00
- Agent first-run ritual: [Agent Bootstrapping ](/start/bootstrapping )