Which path should I use?
| CLI onboarding | macOS app onboarding | |
|---|---|---|
| Platforms | macOS, Linux, Windows (native or WSL2) | macOS only |
| Interface | Terminal wizard | Guided UI + Crestodian chat |
| Best for | Servers, headless, full control | Desktop Mac, visual setup |
| Automation | --non-interactive for scripts | Manual only |
| Command | openclaw onboard | Launch the app |
What onboarding configures
Regardless of which path you choose, onboarding sets up:- Model provider and auth — API key, OAuth, or setup token for your chosen provider
- Workspace — directory for agent files, bootstrap templates, and memory
- Gateway — port, bind address, auth mode
- Channels (optional) — built-in and bundled chat channels such as Discord, Feishu, Google Chat, iMessage, Mattermost, Microsoft Teams, Telegram, WhatsApp, and more
- Daemon (optional) — background service so the Gateway starts automatically
CLI onboarding
Run in any terminal:--install-daemon to also install the background service in one step.
Full reference: Onboarding (CLI)
CLI command docs: openclaw onboard
macOS app onboarding
Open the OpenClaw app. For local setup, the first-run flow starts the Gateway, detects existing AI access (Claude Code, Codex, Gemini CLI, or API keys), live-tests the best option, and saves it only after a real reply — falling back automatically and offering a verified manual API-key step when nothing is found. Sensitive credentials use masked input. Remote setup connects to an already-configured Gateway instead, and the same AI check runs against that Gateway. Full reference: Onboarding (macOS App)Custom or unlisted providers
If your provider is not listed in onboarding, choose Custom Provider and enter:- Endpoint compatibility: OpenAI-compatible (
/chat/completions), OpenAI Responses-compatible (/responses), Anthropic-compatible (/messages), or unknown (probes all three and auto-detects) - Base URL and API key (API key is optional if the endpoint does not require one)
- Model ID and optional model alias