FAQ
FAQ: quick start and first-run setup
Install, onboarding, and early-failure Q&A. For provider auth, hardware, and where to run the Gateway see FAQ: providers, hardware, and hosting.
Quick start and first-run setup
Recommended way to install and set up OpenClaw
curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install.sh | bashThe installer starts guided onboarding for you, so there is no separate onboarding command to run. When onboarding finishes, press Ctrl+C to stop the foreground Gateway and install the background service:
openclaw gateway installPrefer the classic step-by-step wizard and a service install in one
command? Run openclaw onboard --install-daemon instead of the two
commands above. That flag selects the classic flow, so you do not see the
guided Quick start and Custom setup choice.
From source (contributors/dev):
git clone https://github.com/openclaw/openclaw.gitcd openclawpnpm installpnpm buildpnpm ui:buildopenclaw onboardNo global install yet? Run pnpm openclaw onboard instead. If Control UI assets are
missing, onboarding tries to build them itself, falling back to pnpm ui:build.
I am stuck, fastest way to get unstuck
Use a local AI agent that can see your machine. Most "I'm stuck" cases are local config or environment issues a remote helper cannot inspect, so this beats asking in Discord.
- Claude Code: https://www.anthropic.com/claude-code/
- OpenAI Codex: https://openai.com/codex/
Give the agent the full source checkout via the hackable (git) install so it can read code + docs and reason about the exact version you run:
curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install.sh | bash -s -- --install-method gitAsk the agent to plan and supervise the fix step-by-step, then execute only the necessary commands - smaller diffs are easier to audit.
Share these outputs when asking for help (in Discord or a GitHub issue):
| Command | Shows |
|---|---|
openclaw status |
Gateway/agent health + basic config snapshot |
openclaw status --all |
Full read-only diagnosis, pasteable |
openclaw models status |
Provider auth + model availability |
openclaw doctor |
Validates and repairs common config/state issues |
openclaw logs --follow |
Live log tail |
openclaw gateway status --deep |
Deep gateway/config/plugin health check |
openclaw health --verbose |
Detailed health report |
Found a real bug or fix? File an issue or send a PR: Issues / Pull requests.
Quick debug loop: First 60 seconds if something is broken. Install docs: Install, Installer flags, Updating.
How do I open the dashboard after onboarding?
Onboarding opens your browser to a clean (non-tokenized) dashboard URL right after setup and prints the link in the summary. Keep that tab open; if it did not launch, copy/paste the printed URL on the same machine.
How do I authenticate the dashboard on localhost vs remote?
Localhost (same machine):
- Open
http://127.0.0.1:18789/. - If it asks for shared-secret auth, paste the configured token or password into Control UI settings.
- Token source:
gateway.auth.token(orOPENCLAW_GATEWAY_TOKEN). - Password source:
gateway.auth.password(orOPENCLAW_GATEWAY_PASSWORD). - No shared secret configured yet? Run
openclaw doctor --generate-gateway-token(oropenclaw doctor --fix --generate-gateway-token).
Not on localhost:
- Tailscale Serve (recommended): keep bind loopback, run
openclaw gateway --tailscale serve, openhttps://<magicdns>/. Withgateway.auth.allowTailscale: true, identity headers satisfy Control UI/WebSocket auth (no pasted shared secret, assumes a trusted gateway host); HTTP APIs still need shared-secret auth unless you deliberately use private-ingressnoneor trusted-proxy HTTP auth. Concurrent bad-auth Serve attempts from the same client are serialized before the failed-auth limiter records them, so a second bad retry can already showretry later. - Identity-aware reverse proxy: keep the Gateway behind a trusted proxy, set
gateway.auth.mode: "trusted-proxy", open the proxy URL. Same-host loopback proxies need explicitgateway.auth.trustedProxy.allowLoopback: true. - SSH tunnel:
ssh -N -L 18789:127.0.0.1:18789 user@gateway-host, then openhttp://127.0.0.1:18789/. Shared-secret auth still applies over the tunnel; paste the configured token or password if prompted.
See Dashboard and Web surfaces for bind modes and auth details.
Heartbeat keeps skipping. What do the skip reasons mean?
| Skip reason | Meaning |
|---|---|
quiet-hours |
Outside the configured active-hours window |
empty-heartbeat-file |
Heartbeat monitor scratch exists but only has blank, comment, header, fence, or empty-checklist scaffolding |
alerts-disabled |
All heartbeat visibility is off (showOk, showAlerts, and useIndicator all disabled) |
Older heartbeat tasks: blocks migrate to independently scheduled cron jobs with openclaw doctor --fix.
Docs: Heartbeat, Automation.
Why are there two exec approval configs for chat approvals?
They control different layers:
approvals.exec- forwards approval prompts to chat destinations.channels.<channel>.execApprovals- makes that channel a native approval client for exec approvals.
The host exec policy is still the real approval gate; chat config only controls where prompts appear and how people answer them.
You rarely need both:
- If the chat already supports commands and replies, same-chat
/approveworks through the shared path. - For supported native clients, set
channels.<channel>.execApprovals.enabled: "auto"ortrueand configure approvers or the channel's supported owner identity. Discord and Slack require explicit enablement; Telegram treats unset as"auto". - When native approval cards/buttons are available, that UI is primary; only mention a manual
/approvecommand if the tool result says chat approvals are unavailable. - Use
approvals.execonly when prompts must also reach other chats or explicit ops rooms. - Use
channels.<channel>.execApprovals.target: "channel"or"both"only when you want approval prompts posted back into the originating room/topic. - Plugin approvals are separate: same-chat
/approveby default, optionalapprovals.pluginforwarding, and only some native channels keep native handling for those too.
Short version: forwarding is for routing, native client config is for richer channel-specific UX. See Exec Approvals.
What runtime do I need?
Node 24.16+ or 26.1+ is the primary and default runtime (Node 26 recommended); see
Node.js for the maintained requirement. pnpm is the repo package manager.
Bun 1.4+ builds with WAL-reset-safe node:sqlite can run the CLI, Gateway, and managed node host as an explicit opt-in.
Does it run on Raspberry Pi?
Yes, but check RAM first: Pi 5 and Pi 4 (2 GB+) are the sweet spot; Pi 3B+ (1 GB) works but is slow; Pi Zero 2 W (512 MB) is not recommended.
| Model | RAM | Fit |
|---|---|---|
| Pi 5 | 4/8 GB | Best |
| Pi 4 | 4 GB | Good |
| Pi 4 | 2 GB | OK, add swap |
| Pi 4 | 1 GB | Tight |
| Pi 3B+ | 1 GB | Slow |
| Pi Zero 2 W | 512 MB | Not recommended |
Absolute minimum: 1 GB RAM, 1 core, 500 MB free disk, 64-bit OS. Since the Pi only runs the Gateway (models call out to cloud APIs), even a modest Pi handles the load.
A small Pi/VPS can also host just the Gateway while you pair nodes on your laptop/phone for local screen/camera or command execution. A paired Mac can also present hosted widgets in its native panel. See Nodes.
Full setup walkthrough: Raspberry Pi.
Any tips for Raspberry Pi installs?
- Use a 64-bit OS; do not use 32-bit Raspberry Pi OS.
- Add swap on 2 GB or smaller boards.
- Prefer a USB SSD over an SD card for performance and longevity.
- Prefer the hackable (git) install so you can see logs and update fast.
- Start without channels/skills, add them one by one.
- Weird binary failures ("exec format error") are usually a missing ARM64 build for an optional skill tool.
Full guide: Raspberry Pi. Also see Linux.
It is stuck on wake up my friend / onboarding will not hatch. What now?
That screen depends on the Gateway being reachable and authenticated. The TUI also sends
"Wake up, my friend!" automatically on first hatch when a model provider is configured. If
you skipped model/auth setup, onboarding shows a "Model auth missing" note and opens the
TUI without sending anything — add a provider by running openclaw onboard again.
That is the one command for changing the model provider or its authentication.
If you see the wake-up line with no reply and tokens stay at 0, the agent never ran.
- Restart the Gateway:
openclaw gateway restart- Check status + auth:
openclaw statusopenclaw models statusopenclaw logs --follow- Still hanging? Run:
openclaw doctorIf the Gateway is remote, confirm the tunnel/Tailscale connection is up and the UI points at the right Gateway. See Remote access.
Can I migrate my setup to a new machine without redoing onboarding?
Yes. Copy the state directory and workspace, then run Doctor once:
- Install OpenClaw on the new machine.
- Copy
$OPENCLAW_STATE_DIR(default:~/.openclaw) from the old machine. - Copy your workspace (default:
~/.openclaw/workspace). - Run
openclaw doctorand restart the Gateway service.
This preserves config, auth profiles, WhatsApp creds, sessions, and memory - it keeps your bot exactly the same, as long as you copy both locations. In remote mode, the gateway host owns the session store and workspace.
Important: if you only commit/push your workspace to GitHub, you back up
memory + bootstrap files, but not session history or auth. Those live under
~/.openclaw/ (for example ~/.openclaw/agents/<agentId>/agent/openclaw-agent.sqlite).
Related: Migrating, Where things live on disk, Agent workspace, Doctor, Remote mode.
Where do I see what is new in the latest version?
Check the GitHub changelog: https://github.com/openclaw/openclaw/blob/main/CHANGELOG.md
Newest entries are at the top. If the top section is Unreleased, the next dated section is the latest shipped version. Entries group under Highlights, Changes, and Fixes (plus docs/other sections when needed).
Cannot access docs.openclaw.ai (SSL error)
Some Comcast/Xfinity connections incorrectly block docs.openclaw.ai via Xfinity
Advanced Security. Disable it or allowlist docs.openclaw.ai, then retry. Help us
get it unblocked: https://spa.xfinity.com/check_url_status.
Still blocked? Docs are mirrored on GitHub: https://github.com/openclaw/openclaw/tree/main/docs
Difference between stable and beta
Stable and beta are npm dist-tags, not separate code lines:
latest= stablebeta= early build for testing (falls back tolatestwhen beta is missing or older than the current stable release)
A stable release usually lands on beta first, then an explicit promotion step
moves that same version to latest without changing the version number. Maintainers
can also publish straight to latest. That is why beta and stable can point at the
same version after promotion.
See what changed: CHANGELOG.md.
For install one-liners and the difference between beta and dev, see the next accordion.
How do I install the beta version and what is the difference between beta and dev?
Beta is the npm dist-tag beta (may match latest after promotion).
Dev is the moving head of main (git); when published to npm it uses dist-tag dev.
One-liners (macOS/Linux):
curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install.sh | bash -s -- --betacurl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install.sh | bash -s -- --install-method gitWindows installer (PowerShell): iwr -useb https://openclaw.ai/install.ps1 | iex
More detail: Development channels and Installer flags.
How do I try the latest bits?
Two options:
- Dev channel (existing install):
openclaw update --channel devThis switches to a git checkout of main, rebases on upstream, builds, and installs
the CLI from that checkout.
- Hackable (git) install (fresh machine):
curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install.sh | bash -s -- --install-method gitPrefer a manual clone:
git clone https://github.com/openclaw/openclaw.gitcd openclawpnpm installpnpm buildDocs: Update, Development channels, Install.
How long does install and onboarding usually take?
Rough guide:
- Install: 2-5 minutes.
- QuickStart onboarding: a few minutes (loopback gateway, auto token, default workspace).
- Advanced/full onboarding: longer when provider sign-in, channel pairing, daemon install, network downloads, or skills need extra setup.
The wizard shows this timeline up front. Skip optional steps and return later with
openclaw configure.
Hanging? See I am stuck above.
Installer stuck? How do I get more feedback?
Re-run with --verbose:
curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install.sh | bash -s -- --verbosecurl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install.sh | bash -s -- --beta --verbosecurl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install.sh | bash -s -- --install-method git --verboseinstall.ps1 has no dedicated verbose switch; wrap it in Set-PSDebug -Trace 1 /
-Trace 0 instead. Full flag reference: Installer flags.
Windows install says git not found or openclaw not recognized
Two common Windows issues:
1) npm error spawn git / git not found
- Install Git for Windows, make sure
gitis on PATH. - Close and reopen PowerShell, then re-run the installer.
2) openclaw is not recognized after install
- Your npm global bin folder is not on PATH.
- Check it:
npm config get prefix. - Add that directory to your user PATH (no
\binsuffix needed; on most systems it is%AppData%\npm). - Close and reopen PowerShell.
Prefer a desktop app? Use Windows Hub. Terminal-only setup: the PowerShell installer and WSL2 Gateway paths are both supported. Docs: Windows.
Windows exec output shows garbled Chinese text - what should I do?
Usually a console code page mismatch on native Windows shells.
Symptoms: system.run/exec output renders Chinese as mojibake; the same command
looks fine in another terminal profile.
Workaround in PowerShell:
chcp 65001[Console]::InputEncoding = [System.Text.UTF8Encoding]::new($false)[Console]::OutputEncoding = [System.Text.UTF8Encoding]::new($false)$OutputEncoding = [System.Text.UTF8Encoding]::new($false)Then restart the Gateway and retry:
openclaw gateway restartStill reproducing this on latest OpenClaw? Track/report it: Issue #30640.
The docs did not answer my question - how do I get a better answer?
Use the hackable (git) install so you have the full source and docs locally, then ask your bot (or Claude/Codex) from that folder so it can read the repo and answer precisely.
curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install.sh | bash -s -- --install-method gitMore detail: Install and Installer flags.
How do I install OpenClaw on Linux?
- Linux quick path + service install: Linux.
- Full walkthrough: Getting Started.
- Installer + updates: Install & updates.
How do I install OpenClaw on a VPS?
Any Linux VPS works. Install on the server, then reach the Gateway over SSH/Tailscale.
Guides: exe.dev, Hetzner, Fly.io. Remote access: Gateway remote.
Where are the cloud/VPS install guides?
Hosting hub with common providers:
- VPS hosting (all providers in one place)
- Fly.io
- Hetzner
- exe.dev
In the cloud, the Gateway runs on the server and you access it from your laptop/phone via the Control UI (or Tailscale/SSH). Your state + workspace live on the server, so treat the host as the source of truth and back it up.
Pair nodes (Mac/iOS/Android/headless) to that cloud Gateway for local screen/camera or command execution on your laptop while the Gateway stays in the cloud.
Hub: Platforms. Remote access: Gateway remote. Nodes: Nodes, Nodes CLI.
Can I ask OpenClaw to update itself?
Possible, not recommended. The update flow can restart the Gateway (dropping the active session), may need a clean git checkout, and can prompt for confirmation. Safer to run updates from a shell as the operator.
openclaw updateopenclaw update statusopenclaw update --channel betaopenclaw update --tag 2026.9.3openclaw update --no-restart--channel accepts stable, extended-stable, beta, or dev. --tag
accepts an npm dist-tag or an exact version.
Automating from an agent:
openclaw update --yes --no-restartopenclaw gateway restartWhat does onboarding actually do?
openclaw onboard is the recommended setup path. On a fresh local install it
offers two lanes after a one-line pointer to the security guide:
- Quick start detects the AI access you already have, waits for you to
choose a connection, verifies that one choice with a real completion,
prepares the agent workspace, and then starts the Gateway in the
foreground and opens the browser dashboard. It uses the default agent
name
mainand full access, and skips memory import and app recommendations. Choose Skip for now in the picker to prepare the local baseline and exit without starting the Gateway or AI chat. - Custom setup runs the same guided flow with the telemetry choice, agent name, access mode, and optional setup prompts kept as questions.
Both lanes require an explicit provider choice before any live completion, provider installation, model selection, or credential write.
The classic step-by-step wizard is still available. Run
openclaw onboard --classic for its Workspace, Model/Auth, Gateway,
Channels, Web search, Skills, Daemon, and Health check steps. The step list
is in Onboarding (CLI).
Quick start is not offered for configured installs, remote Gateway chat
setup, non-interactive runs, or runs with --skip-ui or --tui.
Full breakdown: Onboarding (CLI).
Do I need a Claude or OpenAI subscription to run this?
No. Run OpenClaw with API keys (Anthropic/OpenAI/others) or local-only models so your data stays on your device. Subscriptions (Claude Pro/Max, ChatGPT/Codex) are optional ways to authenticate those providers.
For Anthropic: an API key gives standard pay-as-you-go billing; Claude CLI
reuses an existing Claude Code login on the same host. Anthropic currently treats
Claude CLI's non-interactive claude -p path as Agent SDK/programmatic usage that
still draws from your subscription's plan limits - check current Anthropic billing
docs before relying on subscription behavior. For long-lived gateway hosts and shared
automation, an Anthropic API key is the more predictable choice.
OpenAI Codex OAuth (ChatGPT/Codex subscription) is fully supported for agent models. OpenClaw also supports hosted subscription-style options including Qwen Cloud Coding Plan, MiniMax Coding Plan, and Z.AI / GLM Coding Plan.
Docs: Anthropic, OpenAI, Qwen Cloud, MiniMax, Z.AI (GLM), Local models, Models.
Can I use Claude Max subscription without an API key?
Yes. OpenClaw supports Claude CLI reuse for Pro/Max/Team/Enterprise plans. Anthropic
currently treats the claude -p path OpenClaw uses as subscription-plan usage subject
to your plan's limits, not a separate free allowance - see
Anthropic for the current billing detail and links to
Anthropic's own support articles. For the most predictable server-side setup, use an
Anthropic API key instead.
Do you support Claude subscription auth (Claude Pro or Max)?
Yes, via Claude CLI reuse. Anthropic's billing treatment of claude -p/Agent SDK usage
has changed over time; see Anthropic for the current state and
dated links to Anthropic's support articles before relying on specific billing
behavior.
Anthropic setup-token auth is also still a supported token path, but OpenClaw prefers
Claude CLI reuse and claude -p when available. For production or multi-user
workloads, an Anthropic API key remains the safer, more predictable choice. Other
subscription-style hosted options: OpenAI, Qwen Cloud,
MiniMax, Z.AI (GLM).