Docs: streamline start and install docs (#9648)

* docs(start): streamline getting started flow

* docs(nav): reorganize start and install sections

* docs(style): move custom css to style.css

* docs(navigation): align zh-CN ordering

* docs(navigation): localize zh-Hans labels
This commit is contained in:
Seb Slight
2026-02-05 10:09:45 -05:00
committed by GitHub
parent 8b8451231c
commit 675c26b2b0
11 changed files with 498 additions and 530 deletions

View File

@@ -1,4 +0,0 @@
#content-area h1:first-of-type,
.prose h1:first-of-type {
display: none !important;
}

View File

@@ -334,6 +334,14 @@
"source": "/getting-started", "source": "/getting-started",
"destination": "/start/getting-started" "destination": "/start/getting-started"
}, },
{
"source": "/quickstart",
"destination": "/start/getting-started"
},
{
"source": "/start/quickstart",
"destination": "/start/getting-started"
},
{ {
"source": "/gmail-pubsub", "source": "/gmail-pubsub",
"destination": "/automation/gmail-pubsub" "destination": "/automation/gmail-pubsub"
@@ -732,43 +740,46 @@
"pages": ["index", "concepts/features", "start/showcase", "start/lore"] "pages": ["index", "concepts/features", "start/showcase", "start/lore"]
}, },
{ {
"group": "Installation", "group": "First run",
"pages": [
"install/index",
"install/installer",
"install/docker",
"install/bun",
"install/nix",
"install/ansible",
"install/development-channels",
"install/updating",
"install/uninstall"
]
},
{
"group": "Setup",
"pages": [ "pages": [
"start/getting-started", "start/getting-started",
"start/quickstart", {
"start/wizard", "group": "Onboarding",
"start/setup", "pages": ["start/wizard", "start/onboarding"]
"start/onboarding", },
"start/pairing", "start/pairing"
"start/openclaw",
"start/hubs",
"start/docs-directory"
] ]
}, },
{ {
"group": "Platforms", "group": "Use cases",
"pages": ["start/openclaw"]
}
]
},
{
"tab": "Install",
"groups": [
{
"group": "Install overview",
"pages": ["install/index", "install/installer"]
},
{
"group": "Install methods",
"pages": [ "pages": [
"platforms/index", "install/node",
"platforms/macos", "install/docker",
"platforms/linux", "install/nix",
"platforms/windows", "install/ansible",
"platforms/android", "install/bun"
"platforms/ios"
] ]
},
{
"group": "Maintenance",
"pages": ["install/updating", "install/migrating", "install/uninstall"]
},
{
"group": "Advanced",
"pages": ["install/development-channels"]
} }
] ]
}, },
@@ -955,7 +966,7 @@
] ]
}, },
{ {
"tab": "Infrastructure", "tab": "Gateway & Ops",
"groups": [ "groups": [
{ {
"group": "Gateway", "group": "Gateway",
@@ -1030,6 +1041,22 @@
{ {
"group": "Web interfaces", "group": "Web interfaces",
"pages": ["web/index", "web/control-ui", "web/dashboard", "web/webchat", "tui"] "pages": ["web/index", "web/control-ui", "web/dashboard", "web/webchat", "tui"]
}
]
},
{
"tab": "Platforms",
"groups": [
{
"group": "Platforms overview",
"pages": [
"platforms/index",
"platforms/macos",
"platforms/linux",
"platforms/windows",
"platforms/android",
"platforms/ios"
]
}, },
{ {
"group": "macOS companion app", "group": "macOS companion app",
@@ -1155,6 +1182,14 @@
"scripts", "scripts",
"reference/session-management-compaction" "reference/session-management-compaction"
] ]
},
{
"group": "Developer workflows",
"pages": ["start/setup"]
},
{
"group": "Docs meta",
"pages": ["start/hubs", "start/docs-directory"]
} }
] ]
} }
@@ -1164,60 +1199,74 @@
"language": "zh-Hans", "language": "zh-Hans",
"tabs": [ "tabs": [
{ {
"tab": "Get started", "tab": "快速开始",
"groups": [ "groups": [
{ {
"group": "Overview", "group": "概览",
"pages": ["zh-CN/index", "zh-CN/start/showcase", "zh-CN/start/lore"]
},
{
"group": "Installation",
"pages": [ "pages": [
"zh-CN/install/index", "zh-CN/index",
"zh-CN/install/installer", "zh-CN/concepts/features",
"zh-CN/install/docker", "zh-CN/start/showcase",
"zh-CN/install/bun", "zh-CN/start/lore"
"zh-CN/install/nix",
"zh-CN/install/ansible",
"zh-CN/install/development-channels",
"zh-CN/install/updating",
"zh-CN/install/uninstall"
] ]
}, },
{ {
"group": "Setup", "group": "首次运行",
"pages": [ "pages": [
"zh-CN/start/getting-started", "zh-CN/start/getting-started",
"zh-CN/start/wizard", {
"zh-CN/start/setup", "group": "新手引导",
"zh-CN/start/onboarding", "pages": ["zh-CN/start/wizard", "zh-CN/start/onboarding"]
"zh-CN/start/pairing", },
"zh-CN/start/openclaw", "zh-CN/start/pairing"
"zh-CN/start/hubs"
] ]
}, },
{ {
"group": "Platforms", "group": "使用场景",
"pages": [ "pages": ["zh-CN/start/openclaw"]
"zh-CN/platforms/index",
"zh-CN/platforms/macos",
"zh-CN/platforms/linux",
"zh-CN/platforms/windows",
"zh-CN/platforms/android",
"zh-CN/platforms/ios"
]
} }
] ]
}, },
{ {
"tab": "Channels", "tab": "安装",
"groups": [ "groups": [
{ {
"group": "Overview", "group": "安装概览",
"pages": ["zh-CN/install/index", "zh-CN/install/installer"]
},
{
"group": "安装方式",
"pages": [
"zh-CN/install/node",
"zh-CN/install/docker",
"zh-CN/install/nix",
"zh-CN/install/ansible",
"zh-CN/install/bun"
]
},
{
"group": "维护",
"pages": [
"zh-CN/install/updating",
"zh-CN/install/migrating",
"zh-CN/install/uninstall"
]
},
{
"group": "高级",
"pages": ["zh-CN/install/development-channels"]
}
]
},
{
"tab": "消息渠道",
"groups": [
{
"group": "概览",
"pages": ["zh-CN/channels/index"] "pages": ["zh-CN/channels/index"]
}, },
{ {
"group": "Messaging platforms", "group": "消息平台",
"pages": [ "pages": [
"zh-CN/channels/whatsapp", "zh-CN/channels/whatsapp",
"zh-CN/channels/telegram", "zh-CN/channels/telegram",
@@ -1237,7 +1286,7 @@
] ]
}, },
{ {
"group": "Configuration", "group": "配置",
"pages": [ "pages": [
"zh-CN/concepts/group-messages", "zh-CN/concepts/group-messages",
"zh-CN/concepts/groups", "zh-CN/concepts/groups",
@@ -1250,10 +1299,10 @@
] ]
}, },
{ {
"tab": "Agents", "tab": "代理",
"groups": [ "groups": [
{ {
"group": "Fundamentals", "group": "基础",
"pages": [ "pages": [
"zh-CN/concepts/architecture", "zh-CN/concepts/architecture",
"zh-CN/concepts/agent", "zh-CN/concepts/agent",
@@ -1265,7 +1314,7 @@
] ]
}, },
{ {
"group": "Sessions and memory", "group": "会话与记忆",
"pages": [ "pages": [
"zh-CN/concepts/session", "zh-CN/concepts/session",
"zh-CN/concepts/sessions", "zh-CN/concepts/sessions",
@@ -1276,11 +1325,11 @@
] ]
}, },
{ {
"group": "Multi-agent", "group": "多代理",
"pages": ["zh-CN/concepts/multi-agent", "zh-CN/concepts/presence"] "pages": ["zh-CN/concepts/multi-agent", "zh-CN/concepts/presence"]
}, },
{ {
"group": "Messages and delivery", "group": "消息与投递",
"pages": [ "pages": [
"zh-CN/concepts/messages", "zh-CN/concepts/messages",
"zh-CN/concepts/streaming", "zh-CN/concepts/streaming",
@@ -1291,14 +1340,14 @@
] ]
}, },
{ {
"tab": "Tools", "tab": "工具",
"groups": [ "groups": [
{ {
"group": "Overview", "group": "概览",
"pages": ["zh-CN/tools/index"] "pages": ["zh-CN/tools/index"]
}, },
{ {
"group": "Built-in tools", "group": "内置工具",
"pages": [ "pages": [
"zh-CN/tools/lobster", "zh-CN/tools/lobster",
"zh-CN/tools/llm-task", "zh-CN/tools/llm-task",
@@ -1311,7 +1360,7 @@
] ]
}, },
{ {
"group": "Browser", "group": "浏览器",
"pages": [ "pages": [
"zh-CN/tools/browser", "zh-CN/tools/browser",
"zh-CN/tools/browser-login", "zh-CN/tools/browser-login",
@@ -1320,7 +1369,7 @@
] ]
}, },
{ {
"group": "Agent coordination", "group": "代理协作",
"pages": [ "pages": [
"zh-CN/tools/agent-send", "zh-CN/tools/agent-send",
"zh-CN/tools/subagents", "zh-CN/tools/subagents",
@@ -1328,7 +1377,7 @@
] ]
}, },
{ {
"group": "Skills and extensions", "group": "技能与扩展",
"pages": [ "pages": [
"zh-CN/tools/slash-commands", "zh-CN/tools/slash-commands",
"zh-CN/tools/skills", "zh-CN/tools/skills",
@@ -1340,7 +1389,7 @@
] ]
}, },
{ {
"group": "Automation", "group": "自动化",
"pages": [ "pages": [
"zh-CN/hooks", "zh-CN/hooks",
"zh-CN/hooks/soul-evil", "zh-CN/hooks/soul-evil",
@@ -1353,7 +1402,7 @@
] ]
}, },
{ {
"group": "Media and devices", "group": "媒体与设备",
"pages": [ "pages": [
"zh-CN/nodes/index", "zh-CN/nodes/index",
"zh-CN/nodes/images", "zh-CN/nodes/images",
@@ -1367,10 +1416,10 @@
] ]
}, },
{ {
"tab": "Models", "tab": "模型",
"groups": [ "groups": [
{ {
"group": "Overview", "group": "概览",
"pages": [ "pages": [
"zh-CN/providers/index", "zh-CN/providers/index",
"zh-CN/providers/models", "zh-CN/providers/models",
@@ -1378,11 +1427,11 @@
] ]
}, },
{ {
"group": "Configuration", "group": "配置",
"pages": ["zh-CN/concepts/model-providers", "zh-CN/concepts/model-failover"] "pages": ["zh-CN/concepts/model-providers", "zh-CN/concepts/model-failover"]
}, },
{ {
"group": "Providers", "group": "提供商",
"pages": [ "pages": [
"zh-CN/providers/anthropic", "zh-CN/providers/anthropic",
"zh-CN/providers/openai", "zh-CN/providers/openai",
@@ -1400,14 +1449,14 @@
] ]
}, },
{ {
"tab": "Infrastructure", "tab": "网关与运维",
"groups": [ "groups": [
{ {
"group": "Gateway", "group": "网关",
"pages": [ "pages": [
"zh-CN/gateway/index", "zh-CN/gateway/index",
{ {
"group": "Configuration and operations", "group": "配置与运维",
"pages": [ "pages": [
"zh-CN/gateway/configuration", "zh-CN/gateway/configuration",
"zh-CN/gateway/configuration-examples", "zh-CN/gateway/configuration-examples",
@@ -1423,7 +1472,7 @@
] ]
}, },
{ {
"group": "Security and sandboxing", "group": "安全与沙箱",
"pages": [ "pages": [
"zh-CN/gateway/security/index", "zh-CN/gateway/security/index",
"zh-CN/gateway/sandboxing", "zh-CN/gateway/sandboxing",
@@ -1431,7 +1480,7 @@
] ]
}, },
{ {
"group": "Protocols and APIs", "group": "协议与 API",
"pages": [ "pages": [
"zh-CN/gateway/protocol", "zh-CN/gateway/protocol",
"zh-CN/gateway/bridge-protocol", "zh-CN/gateway/bridge-protocol",
@@ -1442,8 +1491,9 @@
] ]
}, },
{ {
"group": "Networking and discovery", "group": "网络与发现",
"pages": [ "pages": [
"zh-CN/gateway/network-model",
"zh-CN/gateway/pairing", "zh-CN/gateway/pairing",
"zh-CN/gateway/discovery", "zh-CN/gateway/discovery",
"zh-CN/gateway/bonjour" "zh-CN/gateway/bonjour"
@@ -1452,7 +1502,7 @@
] ]
}, },
{ {
"group": "Remote access and deployment", "group": "远程访问与部署",
"pages": [ "pages": [
"zh-CN/gateway/remote", "zh-CN/gateway/remote",
"zh-CN/gateway/remote-gateway-readme", "zh-CN/gateway/remote-gateway-readme",
@@ -1468,11 +1518,11 @@
] ]
}, },
{ {
"group": "Security", "group": "安全",
"pages": ["zh-CN/security/formal-verification"] "pages": ["zh-CN/security/formal-verification"]
}, },
{ {
"group": "Web interfaces", "group": "Web 界面",
"pages": [ "pages": [
"zh-CN/web/index", "zh-CN/web/index",
"zh-CN/web/control-ui", "zh-CN/web/control-ui",
@@ -1480,9 +1530,25 @@
"zh-CN/web/webchat", "zh-CN/web/webchat",
"zh-CN/tui" "zh-CN/tui"
] ]
}
]
},
{
"tab": "平台",
"groups": [
{
"group": "平台概览",
"pages": [
"zh-CN/platforms/index",
"zh-CN/platforms/macos",
"zh-CN/platforms/linux",
"zh-CN/platforms/windows",
"zh-CN/platforms/android",
"zh-CN/platforms/ios"
]
}, },
{ {
"group": "macOS companion app", "group": "macOS 配套应用",
"pages": [ "pages": [
"zh-CN/platforms/mac/dev-setup", "zh-CN/platforms/mac/dev-setup",
"zh-CN/platforms/mac/menu-bar", "zh-CN/platforms/mac/menu-bar",
@@ -1507,10 +1573,10 @@
] ]
}, },
{ {
"tab": "Reference", "tab": "参考",
"groups": [ "groups": [
{ {
"group": "CLI commands", "group": "CLI 命令",
"pages": [ "pages": [
"zh-CN/cli/index", "zh-CN/cli/index",
"zh-CN/cli/agent", "zh-CN/cli/agent",
@@ -1551,11 +1617,11 @@
] ]
}, },
{ {
"group": "RPC and API", "group": "RPC API",
"pages": ["zh-CN/reference/rpc", "zh-CN/reference/device-models"] "pages": ["zh-CN/reference/rpc", "zh-CN/reference/device-models"]
}, },
{ {
"group": "Templates", "group": "模板",
"pages": [ "pages": [
"zh-CN/reference/AGENTS.default", "zh-CN/reference/AGENTS.default",
"zh-CN/reference/templates/AGENTS", "zh-CN/reference/templates/AGENTS",
@@ -1569,7 +1635,7 @@
] ]
}, },
{ {
"group": "Technical reference", "group": "技术参考",
"pages": [ "pages": [
"zh-CN/concepts/typebox", "zh-CN/concepts/typebox",
"zh-CN/concepts/markdown-formatting", "zh-CN/concepts/markdown-formatting",
@@ -1580,20 +1646,24 @@
] ]
}, },
{ {
"group": "Release notes", "group": "项目",
"pages": ["zh-CN/reference/credits"]
},
{
"group": "发布说明",
"pages": ["zh-CN/reference/RELEASING", "zh-CN/reference/test"] "pages": ["zh-CN/reference/RELEASING", "zh-CN/reference/test"]
} }
] ]
}, },
{ {
"tab": "Help", "tab": "帮助",
"groups": [ "groups": [
{ {
"group": "Help", "group": "帮助",
"pages": ["zh-CN/help/index", "zh-CN/help/troubleshooting", "zh-CN/help/faq"] "pages": ["zh-CN/help/index", "zh-CN/help/troubleshooting", "zh-CN/help/faq"]
}, },
{ {
"group": "Environment and debugging", "group": "环境与调试",
"pages": [ "pages": [
"zh-CN/environment", "zh-CN/environment",
"zh-CN/debugging", "zh-CN/debugging",
@@ -1601,6 +1671,14 @@
"zh-CN/scripts", "zh-CN/scripts",
"zh-CN/reference/session-management-compaction" "zh-CN/reference/session-management-compaction"
] ]
},
{
"group": "开发者工作流",
"pages": ["zh-CN/start/setup"]
},
{
"group": "文档元信息",
"pages": ["zh-CN/start/hubs", "zh-CN/start/docs-directory"]
} }
] ]
} }

View File

@@ -102,6 +102,8 @@ openclaw onboard --install-daemon
Tip: if you dont have a global install yet, run repo commands via `pnpm openclaw ...`. Tip: if you dont have a global install yet, run repo commands via `pnpm openclaw ...`.
For deeper development workflows, see [Setup](/start/setup).
### 4) Other install options ### 4) Other install options
- Docker: [Docker](/install/docker) - Docker: [Docker](/install/docker)

View File

@@ -6,6 +6,7 @@ title: "Docs directory"
--- ---
<Note> <Note>
This page is a curated index. If you are new, start with [Getting Started](/start/getting-started).
For a complete map of the docs, see [Docs hubs](/start/hubs). For a complete map of the docs, see [Docs hubs](/start/hubs).
</Note> </Note>

View File

@@ -1,208 +1,120 @@
--- ---
summary: "Beginner guide: from zero to first message (wizard, auth, channels, pairing)" summary: "Get OpenClaw installed and run your first chat in minutes."
read_when: read_when:
- First time setup from zero - First time setup from zero
- You want the fastest path from install → onboarding → first message - You want the fastest path to a working chat
title: "Getting Started" title: "Getting Started"
--- ---
# Getting Started # Getting Started
Goal: go from **zero****first working chat** (with sane defaults) as quickly as possible. Goal: go from zero to a first working chat with minimal setup.
<Info>
Fastest chat: open the Control UI (no channel setup needed). Run `openclaw dashboard` Fastest chat: open the Control UI (no channel setup needed). Run `openclaw dashboard`
and chat in the browser, or open `http://127.0.0.1:18789/` on the gateway host. and chat in the browser, or open `http://127.0.0.1:18789/` on the
<Tooltip headline="Gateway host" tip="The machine running the OpenClaw gateway service.">gateway host</Tooltip>.
Docs: [Dashboard](/web/dashboard) and [Control UI](/web/control-ui). Docs: [Dashboard](/web/dashboard) and [Control UI](/web/control-ui).
</Info>
Recommended path: use the **CLI onboarding wizard** (`openclaw onboard`). It sets up: ## Prereqs
- model/auth (OAuth recommended) - Node 22 or newer
- gateway settings
- channels (WhatsApp/Telegram/Discord/Mattermost (plugin)/...)
- pairing defaults (secure DMs)
- workspace bootstrap + skills
- optional background service
If you want the deeper reference pages, jump to: [Wizard](/start/wizard), [Setup](/start/setup), [Pairing](/start/pairing), [Security](/gateway/security). <Tip>
Check your Node version with `node --version` if you are unsure.
</Tip>
Sandboxing note: `agents.defaults.sandbox.mode: "non-main"` uses `session.mainKey` (default `"main"`), ## Quick setup (CLI)
so group/channel sessions are sandboxed. If you want the main agent to always
run on host, set an explicit per-agent override:
```json <Steps>
{ <Step title="Install OpenClaw (recommended)">
"routing": { <Tabs>
"agents": { <Tab title="macOS/Linux">
"main": { ```bash
"workspace": "~/.openclaw/workspace", curl -fsSL https://openclaw.ai/install.sh | bash
"sandbox": { "mode": "off" } ```
} </Tab>
} <Tab title="Windows (PowerShell)">
} ```powershell
} iwr -useb https://openclaw.ai/install.ps1 | iex
``` ```
</Tab>
</Tabs>
## 0) Prereqs <Note>
Other install methods and requirements: [Install](/install).
</Note>
- Node `>=22` </Step>
- `pnpm` (optional; recommended if you build from source) <Step title="Run the onboarding wizard">
- **Recommended:** Brave Search API key for web search. Easiest path: ```bash
`openclaw configure --section web` (stores `tools.web.search.apiKey`). openclaw onboard --install-daemon
See [Web tools](/tools/web). ```
macOS: if you plan to build the apps, install Xcode / CLT. For the CLI + gateway only, Node is enough. The wizard configures auth, gateway settings, and optional channels.
Windows: use **WSL2** (Ubuntu recommended). WSL2 is strongly recommended; native Windows is untested, more problematic, and has poorer tool compatibility. Install WSL2 first, then run the Linux steps inside WSL. See [Windows (WSL2)](/platforms/windows). See [Onboarding Wizard](/start/wizard) for details.
## 1) Install the CLI (recommended) </Step>
<Step title="Check the Gateway">
If you installed the service, it should already be running:
```bash ```bash
curl -fsSL https://openclaw.ai/install.sh | bash openclaw gateway status
``` ```
Installer options (install method, non-interactive, from GitHub): [Install](/install). </Step>
<Step title="Open the Control UI">
```bash
openclaw dashboard
```
</Step>
</Steps>
Windows (PowerShell): <Check>
If the Control UI loads, your Gateway is ready for use.
</Check>
```powershell ## Optional checks and extras
iwr -useb https://openclaw.ai/install.ps1 | iex
```
Alternative (global install): <AccordionGroup>
<Accordion title="Run the Gateway in the foreground">
Useful for quick tests or troubleshooting.
```bash ```bash
npm install -g openclaw@latest openclaw gateway --port 18789
``` ```
```bash </Accordion>
pnpm add -g openclaw@latest <Accordion title="Send a test message">
``` Requires a configured channel.
## 2) Run the onboarding wizard (and install the service) ```bash
openclaw message send --target +15555550123 --message "Hello from OpenClaw"
```
```bash </Accordion>
openclaw onboard --install-daemon </AccordionGroup>
```
What youll choose: ## Go deeper
- **Local vs Remote** gateway <Columns>
- **Auth**: OpenAI Code (Codex) subscription (OAuth) or API keys. For Anthropic we recommend an API key; `claude setup-token` is also supported. <Card title="Onboarding Wizard (details)" href="/start/wizard">
- **Providers**: WhatsApp QR login, Telegram/Discord bot tokens, Mattermost plugin tokens, etc. Full CLI wizard reference and advanced options.
- **Daemon**: background install (launchd/systemd; WSL2 uses systemd) </Card>
- **Runtime**: Node (recommended; required for WhatsApp/Telegram). Bun is **not recommended**. <Card title="macOS app onboarding" href="/start/onboarding">
- **Gateway token**: the wizard generates one by default (even on loopback) and stores it in `gateway.auth.token`. First run flow for the macOS app.
</Card>
</Columns>
Wizard doc: [Wizard](/start/wizard) ## What you will have
### Auth: where it lives (important) - A running Gateway
- Auth configured
- Control UI access or a connected channel
- **Recommended Anthropic path:** set an API key (wizard can store it for service use). `claude setup-token` is also supported if you want to reuse Claude Code credentials. ## Next steps
- OAuth credentials (legacy import): `~/.openclaw/credentials/oauth.json` - DM safety and approvals: [Pairing](/start/pairing)
- Auth profiles (OAuth + API keys): `~/.openclaw/agents/<agentId>/agent/auth-profiles.json` - Connect more channels: [Channels](/channels)
- Advanced workflows and from source: [Setup](/start/setup)
Headless/server tip: do OAuth on a normal machine first, then copy `oauth.json` to the gateway host.
## 3) Start the Gateway
If you installed the service during onboarding, the Gateway should already be running:
```bash
openclaw gateway status
```
Manual run (foreground):
```bash
openclaw gateway --port 18789 --verbose
```
Dashboard (local loopback): `http://127.0.0.1:18789/`
If a token is configured, paste it into the Control UI settings (stored as `connect.params.auth.token`).
⚠️ **Bun warning (WhatsApp + Telegram):** Bun has known issues with these
channels. If you use WhatsApp or Telegram, run the Gateway with **Node**.
## 3.5) Quick verify (2 min)
```bash
openclaw status
openclaw health
openclaw security audit --deep
```
## 4) Pair + connect your first chat surface
### WhatsApp (QR login)
```bash
openclaw channels login
```
Scan via WhatsApp → Settings → Linked Devices.
WhatsApp doc: [WhatsApp](/channels/whatsapp)
### Telegram / Discord / others
The wizard can write tokens/config for you. If you prefer manual config, start with:
- Telegram: [Telegram](/channels/telegram)
- Discord: [Discord](/channels/discord)
- Mattermost (plugin): [Mattermost](/channels/mattermost)
**Telegram DM tip:** your first DM returns a pairing code. Approve it (see next step) or the bot wont respond.
## 5) DM safety (pairing approvals)
Default posture: unknown DMs get a short code and messages are not processed until approved.
If your first DM gets no reply, approve the pairing:
```bash
openclaw pairing list whatsapp
openclaw pairing approve whatsapp <code>
```
Pairing doc: [Pairing](/start/pairing)
## From source (development)
If youre hacking on OpenClaw itself, run from source:
```bash
git clone https://github.com/openclaw/openclaw.git
cd openclaw
pnpm install
pnpm ui:build # auto-installs UI deps on first run
pnpm build
openclaw onboard --install-daemon
```
If you dont have a global install yet, run the onboarding step via `pnpm openclaw ...` from the repo.
`pnpm build` also bundles A2UI assets; if you need to run just that step, use `pnpm canvas:a2ui:bundle`.
Gateway (from this repo):
```bash
node openclaw.mjs gateway --port 18789 --verbose
```
## 7) Verify end-to-end
In a new terminal, send a test message:
```bash
openclaw message send --target +15555550123 --message "Hello from OpenClaw"
```
If `openclaw health` shows “no auth configured”, go back to the wizard and set OAuth/key auth — the agent wont be able to respond without it.
Tip: `openclaw status --all` is the best pasteable, read-only debug report.
Health probes: `openclaw health` (or `openclaw status --deep`) asks the running gateway for a health snapshot.
## Next steps (optional, but great)
- macOS menu bar app + voice wake: [macOS app](/platforms/macos)
- iOS/Android nodes (Canvas/camera/voice): [Nodes](/nodes)
- Remote access (SSH tunnel / Tailscale Serve): [Remote access](/gateway/remote) and [Tailscale](/gateway/tailscale)
- Always-on / VPN setups: [Remote access](/gateway/remote), [exe.dev](/platforms/exe-dev), [Hetzner](/platforms/hetzner), [macOS remote](/platforms/mac/remote)

View File

@@ -7,13 +7,16 @@ title: "Docs Hubs"
# Docs hubs # Docs hubs
<Note>
If you are new to OpenClaw, start with [Getting Started](/start/getting-started).
</Note>
Use these hubs to discover every page, including deep dives and reference docs that dont appear in the left nav. Use these hubs to discover every page, including deep dives and reference docs that dont appear in the left nav.
## Start here ## Start here
- [Index](/) - [Index](/)
- [Getting Started](/start/getting-started) - [Getting Started](/start/getting-started)
- [Quick start](/start/quickstart)
- [Onboarding](/start/onboarding) - [Onboarding](/start/onboarding)
- [Wizard](/start/wizard) - [Wizard](/start/wizard)
- [Setup](/start/setup) - [Setup](/start/setup)

View File

@@ -3,10 +3,11 @@ summary: "First-run onboarding flow for OpenClaw (macOS app)"
read_when: read_when:
- Designing the macOS onboarding assistant - Designing the macOS onboarding assistant
- Implementing auth or identity setup - Implementing auth or identity setup
title: "Onboarding" title: "Onboarding (macOS App)"
sidebarTitle: "macOS app"
--- ---
# Onboarding (macOS app) # Onboarding (macOS App)
This doc describes the **current** firstrun onboarding flow. The goal is a This doc describes the **current** firstrun onboarding flow. The goal is a
smooth “day 0” experience: pick where the Gateway runs, connect auth, run the smooth “day 0” experience: pick where the Gateway runs, connect auth, run the

View File

@@ -1,81 +1,22 @@
--- ---
summary: "Install OpenClaw, onboard the Gateway, and pair your first channel." summary: "Quick start has moved to Getting Started."
read_when: read_when:
- You want the fastest path from install to a working Gateway - You are looking for the fastest setup steps
- You were sent here from an older link
title: "Quick start" title: "Quick start"
--- ---
<Note> # Quick start
OpenClaw requires Node 22 or newer.
</Note>
## Install
<Tabs>
<Tab title="npm">
```bash
npm install -g openclaw@latest
```
</Tab>
<Tab title="pnpm">
```bash
pnpm add -g openclaw@latest
```
</Tab>
</Tabs>
## Onboard and run the Gateway
<Steps>
<Step title="Onboard and install the service">
```bash
openclaw onboard --install-daemon
```
</Step>
<Step title="Pair WhatsApp">
```bash
openclaw channels login
```
</Step>
<Step title="Start the Gateway">
```bash
openclaw gateway --port 18789
```
</Step>
</Steps>
After onboarding, the Gateway runs via the user service. You can still run it manually with `openclaw gateway`.
<Info> <Info>
Switching between npm and git installs later is easy. Install the other flavor and run Quick start is now part of [Getting Started](/start/getting-started).
`openclaw doctor` to update the gateway service entrypoint.
</Info> </Info>
## From source (development) <Columns>
<Card title="Getting Started" href="/start/getting-started">
```bash Install OpenClaw and run your first chat in minutes.
git clone https://github.com/openclaw/openclaw.git </Card>
cd openclaw <Card title="Onboarding Wizard" href="/start/wizard">
pnpm install Full CLI wizard reference and advanced options.
pnpm ui:build # auto-installs UI deps on first run </Card>
pnpm build </Columns>
openclaw onboard --install-daemon
```
If you do not have a global install yet, run onboarding via `pnpm openclaw ...` from the repo.
## Multi instance quickstart (optional)
```bash
OPENCLAW_CONFIG_PATH=~/.openclaw/a.json \
OPENCLAW_STATE_DIR=~/.openclaw-a \
openclaw gateway --port 19001
```
## Send a test message
Requires a running Gateway.
```bash
openclaw message send --target +15555550123 --message "Hello from OpenClaw"
```

View File

@@ -1,5 +1,5 @@
--- ---
summary: "Setup guide: keep your OpenClaw setup tailored while staying up-to-date" summary: "Advanced setup and development workflows for OpenClaw"
read_when: read_when:
- Setting up a new machine - Setting up a new machine
- You want “latest + greatest” without breaking your personal setup - You want “latest + greatest” without breaking your personal setup
@@ -8,6 +8,11 @@ title: "Setup"
# Setup # Setup
<Note>
If you are setting up for the first time, start with [Getting Started](/start/getting-started).
For wizard details, see [Onboarding Wizard](/start/wizard).
</Note>
Last updated: 2026-01-01 Last updated: 2026-01-01
## TL;DR ## TL;DR
@@ -43,6 +48,14 @@ openclaw setup
If you dont have a global install yet, run it via `pnpm openclaw setup`. If you dont have a global install yet, run it via `pnpm openclaw setup`.
## Run the Gateway from this repo
After `pnpm build`, you can run the packaged CLI directly:
```bash
node openclaw.mjs gateway --port 18789 --verbose
```
## Stable workflow (macOS app first) ## Stable workflow (macOS app first)
1. Install + launch **OpenClaw.app** (menu bar). 1. Install + launch **OpenClaw.app** (menu bar).

View File

@@ -3,7 +3,8 @@ summary: "CLI onboarding wizard: guided setup for gateway, workspace, channels,
read_when: read_when:
- Running or configuring the onboarding wizard - Running or configuring the onboarding wizard
- Setting up a new machine - Setting up a new machine
title: "Onboarding Wizard" title: "Onboarding Wizard (CLI)"
sidebarTitle: "Wizard (CLI)"
--- ---
# Onboarding Wizard (CLI) # Onboarding Wizard (CLI)
@@ -19,8 +20,10 @@ Primary entrypoint:
openclaw onboard openclaw onboard
``` ```
<Info>
Fastest first chat: open the Control UI (no channel setup needed). Run Fastest first chat: open the Control UI (no channel setup needed). Run
`openclaw dashboard` and chat in the browser. Docs: [Dashboard](/web/dashboard). `openclaw dashboard` and chat in the browser. Docs: [Dashboard](/web/dashboard).
</Info>
Followup reconfiguration: Followup reconfiguration:
@@ -28,24 +31,29 @@ Followup reconfiguration:
openclaw configure openclaw configure
``` ```
<Tip>
Recommended: set up a Brave Search API key so the agent can use `web_search` 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` (`web_fetch` works without a key). Easiest path: `openclaw configure --section web`
which stores `tools.web.search.apiKey`. Docs: [Web tools](/tools/web). which stores `tools.web.search.apiKey`. Docs: [Web tools](/tools/web).
</Tip>
## QuickStart vs Advanced ## QuickStart vs Advanced
The wizard starts with **QuickStart** (defaults) vs **Advanced** (full control). The wizard starts with **QuickStart** (defaults) vs **Advanced** (full control).
**QuickStart** keeps the defaults: <Tabs>
<Tab title="QuickStart (defaults)">
- Local gateway (loopback) - Local gateway (loopback)
- Workspace default (or existing workspace) - Workspace default (or existing workspace)
- Gateway port **18789** - Gateway port **18789**
- Gateway auth **Token** (autogenerated, even on loopback) - Gateway auth **Token** (autogenerated, even on loopback)
- Tailscale exposure **Off** - Tailscale exposure **Off**
- Telegram + WhatsApp DMs default to **allowlist** (youll be prompted for your phone number) - Telegram + WhatsApp DMs default to **allowlist** (youll be prompted for your phone number)
</Tab>
**Advanced** exposes every step (mode, workspace, gateway, channels, daemon, skills). <Tab title="Advanced (full control)">
- Exposes every step (mode, workspace, gateway, channels, daemon, skills).
</Tab>
</Tabs>
## What the wizard does ## What the wizard does
@@ -68,110 +76,124 @@ To add more isolated agents (separate workspace + sessions + auth), use:
openclaw agents add <name> openclaw agents add <name>
``` ```
Tip: `--json` does **not** imply non-interactive mode. Use `--non-interactive` (and `--workspace`) for scripts. <Note>
`--json` does **not** imply non-interactive mode. Use `--non-interactive` (and `--workspace`) for scripts.
</Note>
## Flow details (local) ## Flow details (local)
1. **Existing config detection** <Steps>
- If `~/.openclaw/openclaw.json` exists, choose **Keep / Modify / Reset**. <Step title="Existing config detection">
- Re-running the wizard does **not** wipe anything unless you explicitly choose **Reset** - If `~/.openclaw/openclaw.json` exists, choose **Keep / Modify / Reset**.
(or pass `--reset`). - Re-running the wizard does **not** wipe anything unless you explicitly choose **Reset**
- If the config is invalid or contains legacy keys, the wizard stops and asks (or pass `--reset`).
you to run `openclaw doctor` before continuing. - If the config is invalid or contains legacy keys, the wizard stops and asks
- Reset uses `trash` (never `rm`) and offers scopes: you to run `openclaw doctor` before continuing.
- Config only - Reset uses `trash` (never `rm`) and offers scopes:
- Config + credentials + sessions - Config only
- Full reset (also removes workspace) - Config + credentials + sessions
- Full reset (also removes workspace)
</Step>
<Step title="Model/Auth">
- **Anthropic API key (recommended)**: uses `ANTHROPIC_API_KEY` if present or prompts for a key, then saves it for daemon use.
- **Anthropic OAuth (Claude Code CLI)**: on macOS the wizard checks Keychain item "Claude Code-credentials" (choose "Always Allow" so launchd starts don't block); on Linux/Windows it reuses `~/.claude/.credentials.json` if present.
- **Anthropic token (paste setup-token)**: run `claude setup-token` on any machine, then paste the token (you can name it; blank = default).
- **OpenAI Code (Codex) subscription (Codex CLI)**: if `~/.codex/auth.json` exists, the wizard can reuse it.
- **OpenAI Code (Codex) subscription (OAuth)**: browser flow; paste the `code#state`.
- Sets `agents.defaults.model` to `openai-codex/gpt-5.2` when model is unset or `openai/*`.
- **OpenAI API key**: uses `OPENAI_API_KEY` if present or prompts for a key, then saves it to `~/.openclaw/.env` so launchd can read it.
- **OpenCode Zen (multi-model proxy)**: prompts for `OPENCODE_API_KEY` (or `OPENCODE_ZEN_API_KEY`, get it at https://opencode.ai/auth).
- **API key**: stores the key for you.
- **Vercel AI Gateway (multi-model proxy)**: prompts for `AI_GATEWAY_API_KEY`.
- More detail: [Vercel AI Gateway](/providers/vercel-ai-gateway)
- **Cloudflare AI Gateway**: prompts for Account ID, Gateway ID, and `CLOUDFLARE_AI_GATEWAY_API_KEY`.
- More detail: [Cloudflare AI Gateway](/providers/cloudflare-ai-gateway)
- **MiniMax M2.1**: config is auto-written.
- More detail: [MiniMax](/providers/minimax)
- **Synthetic (Anthropic-compatible)**: prompts for `SYNTHETIC_API_KEY`.
- More detail: [Synthetic](/providers/synthetic)
- **Moonshot (Kimi K2)**: config is auto-written.
- **Kimi Coding**: config is auto-written.
- More detail: [Moonshot AI (Kimi + Kimi Coding)](/providers/moonshot)
- **Skip**: no auth configured yet.
- Pick a default model from detected options (or enter provider/model manually).
- Wizard runs a model check and warns if the configured model is unknown or missing auth.
- OAuth credentials live in `~/.openclaw/credentials/oauth.json`; auth profiles live in `~/.openclaw/agents/<agentId>/agent/auth-profiles.json` (API keys + OAuth).
- More detail: [/concepts/oauth](/concepts/oauth)
<Note>
Headless/server tip: complete OAuth on a machine with a browser, then copy
`~/.openclaw/credentials/oauth.json` (or `$OPENCLAW_STATE_DIR/credentials/oauth.json`) to the
gateway host.
</Note>
</Step>
<Step title="Workspace">
- Default `~/.openclaw/workspace` (configurable).
- Seeds the workspace files needed for the agent bootstrap ritual.
- Full workspace layout + backup guide: [Agent workspace](/concepts/agent-workspace)
</Step>
<Step title="Gateway">
- Port, bind, auth mode, tailscale exposure.
- Auth recommendation: keep **Token** even for loopback so local WS clients must authenticate.
- Disable auth only if you fully trust every local process.
- Nonloopback binds still require auth.
</Step>
<Step title="Channels">
- [WhatsApp](/channels/whatsapp): optional QR login.
- [Telegram](/channels/telegram): bot token.
- [Discord](/channels/discord): bot token.
- [Google Chat](/channels/googlechat): service account JSON + webhook audience.
- [Mattermost](/channels/mattermost) (plugin): bot token + base URL.
- [Signal](/channels/signal): optional `signal-cli` install + account config.
- [BlueBubbles](/channels/bluebubbles): **recommended for iMessage**; server URL + password + webhook.
- [iMessage](/channels/imessage): legacy `imsg` CLI path + DB access.
- DM security: default is pairing. First DM sends a code; approve via `openclaw pairing approve <channel> <code>` or use allowlists.
</Step>
<Step title="Daemon install">
- macOS: LaunchAgent
- Requires a logged-in user session; for headless, use a custom LaunchDaemon (not shipped).
- Linux (and Windows via WSL2): systemd user unit
- Wizard attempts to enable lingering via `loginctl enable-linger <user>` so the Gateway stays up after logout.
- May prompt for sudo (writes `/var/lib/systemd/linger`); it tries without sudo first.
- **Runtime selection:** Node (recommended; required for WhatsApp/Telegram). Bun is **not recommended**.
</Step>
<Step title="Health check">
- Starts the Gateway (if needed) and runs `openclaw health`.
- Tip: `openclaw status --deep` adds gateway health probes to status output (requires a reachable gateway).
</Step>
<Step title="Skills (recommended)">
- Reads the available skills and checks requirements.
- Lets you choose a node manager: **npm / pnpm** (bun not recommended).
- Installs optional dependencies (some use Homebrew on macOS).
</Step>
<Step title="Finish">
- Summary + next steps, including iOS/Android/macOS apps for extra features.
</Step>
</Steps>
2. **Model/Auth** <Note>
- **Anthropic API key (recommended)**: uses `ANTHROPIC_API_KEY` if present or prompts for a key, then saves it for daemon use. If no GUI is detected, the wizard prints SSH port-forward instructions for the Control UI instead of opening a browser.
- **Anthropic OAuth (Claude Code CLI)**: on macOS the wizard checks Keychain item "Claude Code-credentials" (choose "Always Allow" so launchd starts don't block); on Linux/Windows it reuses `~/.claude/.credentials.json` if present. If the Control UI assets are missing, the wizard attempts to build them; fallback is `pnpm ui:build` (auto-installs UI deps).
- **Anthropic token (paste setup-token)**: run `claude setup-token` on any machine, then paste the token (you can name it; blank = default). </Note>
- **OpenAI Code (Codex) subscription (Codex CLI)**: if `~/.codex/auth.json` exists, the wizard can reuse it.
- **OpenAI Code (Codex) subscription (OAuth)**: browser flow; paste the `code#state`.
- Sets `agents.defaults.model` to `openai-codex/gpt-5.2` when model is unset or `openai/*`.
- **OpenAI API key**: uses `OPENAI_API_KEY` if present or prompts for a key, then saves it to `~/.openclaw/.env` so launchd can read it.
- **OpenCode Zen (multi-model proxy)**: prompts for `OPENCODE_API_KEY` (or `OPENCODE_ZEN_API_KEY`, get it at https://opencode.ai/auth).
- **API key**: stores the key for you.
- **Vercel AI Gateway (multi-model proxy)**: prompts for `AI_GATEWAY_API_KEY`.
- More detail: [Vercel AI Gateway](/providers/vercel-ai-gateway)
- **Cloudflare AI Gateway**: prompts for Account ID, Gateway ID, and `CLOUDFLARE_AI_GATEWAY_API_KEY`.
- More detail: [Cloudflare AI Gateway](/providers/cloudflare-ai-gateway)
- **MiniMax M2.1**: config is auto-written.
- More detail: [MiniMax](/providers/minimax)
- **Synthetic (Anthropic-compatible)**: prompts for `SYNTHETIC_API_KEY`.
- More detail: [Synthetic](/providers/synthetic)
- **Moonshot (Kimi K2)**: config is auto-written.
- **Kimi Coding**: config is auto-written.
- More detail: [Moonshot AI (Kimi + Kimi Coding)](/providers/moonshot)
- **Skip**: no auth configured yet.
- Pick a default model from detected options (or enter provider/model manually).
- Wizard runs a model check and warns if the configured model is unknown or missing auth.
- OAuth credentials live in `~/.openclaw/credentials/oauth.json`; auth profiles live in `~/.openclaw/agents/<agentId>/agent/auth-profiles.json` (API keys + OAuth).
- More detail: [/concepts/oauth](/concepts/oauth)
3. **Workspace**
- Default `~/.openclaw/workspace` (configurable).
- Seeds the workspace files needed for the agent bootstrap ritual.
- Full workspace layout + backup guide: [Agent workspace](/concepts/agent-workspace)
4. **Gateway**
- Port, bind, auth mode, tailscale exposure.
- Auth recommendation: keep **Token** even for loopback so local WS clients must authenticate.
- Disable auth only if you fully trust every local process.
- Nonloopback binds still require auth.
5. **Channels**
- [WhatsApp](/channels/whatsapp): optional QR login.
- [Telegram](/channels/telegram): bot token.
- [Discord](/channels/discord): bot token.
- [Google Chat](/channels/googlechat): service account JSON + webhook audience.
- [Mattermost](/channels/mattermost) (plugin): bot token + base URL.
- [Signal](/channels/signal): optional `signal-cli` install + account config.
- [BlueBubbles](/channels/bluebubbles): **recommended for iMessage**; server URL + password + webhook.
- [iMessage](/channels/imessage): legacy `imsg` CLI path + DB access.
- DM security: default is pairing. First DM sends a code; approve via `openclaw pairing approve <channel> <code>` or use allowlists.
6. **Daemon install**
- macOS: LaunchAgent
- Requires a logged-in user session; for headless, use a custom LaunchDaemon (not shipped).
- Linux (and Windows via WSL2): systemd user unit
- Wizard attempts to enable lingering via `loginctl enable-linger <user>` so the Gateway stays up after logout.
- May prompt for sudo (writes `/var/lib/systemd/linger`); it tries without sudo first.
- **Runtime selection:** Node (recommended; required for WhatsApp/Telegram). Bun is **not recommended**.
7. **Health check**
- Starts the Gateway (if needed) and runs `openclaw health`.
- Tip: `openclaw status --deep` adds gateway health probes to status output (requires a reachable gateway).
8. **Skills (recommended)**
- Reads the available skills and checks requirements.
- Lets you choose a node manager: **npm / pnpm** (bun not recommended).
- Installs optional dependencies (some use Homebrew on macOS).
9. **Finish**
- Summary + next steps, including iOS/Android/macOS apps for extra features.
- If no GUI is detected, the wizard prints SSH port-forward instructions for the Control UI instead of opening a browser.
- If the Control UI assets are missing, the wizard attempts to build them; fallback is `pnpm ui:build` (auto-installs UI deps).
## Remote mode ## Remote mode
Remote mode configures a local client to connect to a Gateway elsewhere. Remote mode configures a local client to connect to a Gateway elsewhere.
<Info>
Remote mode does **not** install or change anything on the remote host.
</Info>
What youll set: What youll set:
- Remote Gateway URL (`ws://...`) - Remote Gateway URL (`ws://...`)
- Token if the remote Gateway requires auth (recommended) - Token if the remote Gateway requires auth (recommended)
Notes: <Note>
- No remote installs or daemon changes are performed.
- If the Gateway is loopbackonly, use SSH tunneling or a tailnet. - If the Gateway is loopbackonly, use SSH tunneling or a tailnet.
- Discovery hints: - Discovery hints:
- macOS: Bonjour (`dns-sd`) - macOS: Bonjour (`dns-sd`)
- Linux: Avahi (`avahi-browse`) - Linux: Avahi (`avahi-browse`)
</Note>
## Add another agent ## Add another agent
@@ -208,84 +230,80 @@ openclaw onboard --non-interactive \
Add `--json` for a machinereadable summary. Add `--json` for a machinereadable summary.
Gemini example: <AccordionGroup>
<Accordion title="Gemini example">
```bash ```bash
openclaw onboard --non-interactive \ openclaw onboard --non-interactive \
--mode local \ --mode local \
--auth-choice gemini-api-key \ --auth-choice gemini-api-key \
--gemini-api-key "$GEMINI_API_KEY" \ --gemini-api-key "$GEMINI_API_KEY" \
--gateway-port 18789 \ --gateway-port 18789 \
--gateway-bind loopback --gateway-bind loopback
``` ```
</Accordion>
Z.AI example: <Accordion title="Z.AI example">
```bash
```bash openclaw onboard --non-interactive \
openclaw onboard --non-interactive \ --mode local \
--mode local \ --auth-choice zai-api-key \
--auth-choice zai-api-key \ --zai-api-key "$ZAI_API_KEY" \
--zai-api-key "$ZAI_API_KEY" \ --gateway-port 18789 \
--gateway-port 18789 \ --gateway-bind loopback
--gateway-bind loopback ```
``` </Accordion>
<Accordion title="Vercel AI Gateway example">
Vercel AI Gateway example: ```bash
openclaw onboard --non-interactive \
```bash --mode local \
openclaw onboard --non-interactive \ --auth-choice ai-gateway-api-key \
--mode local \ --ai-gateway-api-key "$AI_GATEWAY_API_KEY" \
--auth-choice ai-gateway-api-key \ --gateway-port 18789 \
--ai-gateway-api-key "$AI_GATEWAY_API_KEY" \ --gateway-bind loopback
--gateway-port 18789 \ ```
--gateway-bind loopback </Accordion>
``` <Accordion title="Cloudflare AI Gateway example">
```bash
Cloudflare AI Gateway example: openclaw onboard --non-interactive \
--mode local \
```bash --auth-choice cloudflare-ai-gateway-api-key \
openclaw onboard --non-interactive \ --cloudflare-ai-gateway-account-id "your-account-id" \
--mode local \ --cloudflare-ai-gateway-gateway-id "your-gateway-id" \
--auth-choice cloudflare-ai-gateway-api-key \ --cloudflare-ai-gateway-api-key "$CLOUDFLARE_AI_GATEWAY_API_KEY" \
--cloudflare-ai-gateway-account-id "your-account-id" \ --gateway-port 18789 \
--cloudflare-ai-gateway-gateway-id "your-gateway-id" \ --gateway-bind loopback
--cloudflare-ai-gateway-api-key "$CLOUDFLARE_AI_GATEWAY_API_KEY" \ ```
--gateway-port 18789 \ </Accordion>
--gateway-bind loopback <Accordion title="Moonshot example">
``` ```bash
openclaw onboard --non-interactive \
Moonshot example: --mode local \
--auth-choice moonshot-api-key \
```bash --moonshot-api-key "$MOONSHOT_API_KEY" \
openclaw onboard --non-interactive \ --gateway-port 18789 \
--mode local \ --gateway-bind loopback
--auth-choice moonshot-api-key \ ```
--moonshot-api-key "$MOONSHOT_API_KEY" \ </Accordion>
--gateway-port 18789 \ <Accordion title="Synthetic example">
--gateway-bind loopback ```bash
``` openclaw onboard --non-interactive \
--mode local \
Synthetic example: --auth-choice synthetic-api-key \
--synthetic-api-key "$SYNTHETIC_API_KEY" \
```bash --gateway-port 18789 \
openclaw onboard --non-interactive \ --gateway-bind loopback
--mode local \ ```
--auth-choice synthetic-api-key \ </Accordion>
--synthetic-api-key "$SYNTHETIC_API_KEY" \ <Accordion title="OpenCode Zen example">
--gateway-port 18789 \ ```bash
--gateway-bind loopback openclaw onboard --non-interactive \
``` --mode local \
--auth-choice opencode-zen \
OpenCode Zen example: --opencode-zen-api-key "$OPENCODE_API_KEY" \
--gateway-port 18789 \
```bash --gateway-bind loopback
openclaw onboard --non-interactive \ ```
--mode local \ </Accordion>
--auth-choice opencode-zen \ </AccordionGroup>
--opencode-zen-api-key "$OPENCODE_API_KEY" \
--gateway-port 18789 \
--gateway-bind loopback
```
Add agent (noninteractive) example: Add agent (noninteractive) example:

3
docs/style.css Normal file
View File

@@ -0,0 +1,3 @@
#content > h1:first-of-type {
display: none !important;
}