--- name: openclaw description: Comprehensive guide for installing, configuring, operating, and troubleshooting OpenClaw — a self-hosted, multi-channel AI agent gateway. Use when the user asks about OpenClaw setup, configuration, channel management (WhatsApp/Telegram/Discord/Slack/iMessage/etc.), model provider setup, Gateway operations, multi-agent routing, security hardening, troubleshooting, or any maintenance task related to their local OpenClaw installation. Also use when encountering errors from `openclaw` CLI commands or the Gateway daemon. --- # OpenClaw Maintenance Skill OpenClaw is a self-hosted, open-source (MIT) gateway that routes AI agents across WhatsApp, Telegram, Discord, Slack, iMessage, Signal, and 15+ other channels simultaneously. It runs on macOS, Linux, or Windows. ## Reference Files | Reference | Coverage | |---|---| | [channels.md](references/channels.md) | Per-channel setup (WhatsApp, Telegram, Discord, etc.) | | [channel_troubleshooting.md](references/channel_troubleshooting.md) | Per-channel failure signatures and walkthroughs | | [tools.md](references/tools.md) | Tools inventory (profiles, groups, all built-in tools) | | [exec.md](references/exec.md) | Exec tool: parameters, config, PATH, security, process tool | | [exec_approvals.md](references/exec_approvals.md) | Exec approvals: allowlists, safe bins, approval flow | | [browser.md](references/browser.md) | Browser tool: profiles, CDP, relay, SSRF, Control API | | [web_tools.md](references/web_tools.md) | Web tools: Brave, Perplexity, Gemini search providers | | [pdf_tool.md](references/pdf_tool.md) | PDF tool: native/fallback modes, config, page filtering | | [elevated.md](references/elevated.md) | Elevated mode: /elevated directives, sandbox breakout | | [lobster.md](references/lobster.md) | Lobster: typed workflow runtime with approvals | | [llm_task.md](references/llm_task.md) | LLM Task: JSON-only LLM step for structured output | | [openprose.md](references/openprose.md) | OpenProse: multi-agent program runtime | | [plugins.md](references/plugins.md) | Plugins: official list, config, manifest, CLI, authoring | | [skills.md](references/skills.md) | Skills: locations, config, ClawHub, watcher, token impact | | [providers.md](references/providers.md) | Model provider setup | | [multi_agent.md](references/multi_agent.md) | Multi-agent routing | | [nodes.md](references/nodes.md) | Nodes (iOS/Android/macOS/headless) | | [security.md](references/security.md) | Security hardening | | [secrets.md](references/secrets.md) | Secrets management (SecretRef, vault) | | [sandboxing.md](references/sandboxing.md) | Sandboxing (Docker isolation) | | [config_reference.md](references/config_reference.md) | Full config field reference | | [gateway_ops.md](references/gateway_ops.md) | Gateway operations | | [remote_access.md](references/remote_access.md) | Remote access, SSH, Tailscale, web dashboard | | [sessions.md](references/sessions.md) | Session management, DM isolation, lifecycle, compaction | | [hooks.md](references/hooks.md) | Hooks: internal event hooks, HTTP webhooks, authoring, CLI | | [automation.md](references/automation.md) | Cron jobs, webhooks, Gmail Pub/Sub | | [acp_agents.md](references/acp_agents.md) | ACP agents: spawn external AI runtimes (Codex, Claude, etc.) | | [install.md](references/install.md) | Installation, updating, rollback, migration, uninstall | | [web_ui.md](references/web_ui.md) | Web surfaces: Dashboard, Control UI, WebChat | | [slash_commands.md](references/slash_commands.md) | Chat slash commands (/new, /model, /acp, etc.) | | [platforms.md](references/platforms.md) | Platform-specific guides (macOS, iOS, Android, Linux, Windows) | | [diffs_firecrawl.md](references/diffs_firecrawl.md) | Diffs plugin + Firecrawl anti-bot fallback | | [subagents.md](references/subagents.md) | Sub-agents: nested spawning, thread binding, announce, tool policy | | [memory.md](references/memory.md) | Memory system, vector search, hybrid BM25, compaction | ## Quick Reference ### Key Paths | Path | Purpose | |---|---| | `~/.openclaw/openclaw.json` | Main config (JSON5) | | `~/.openclaw/.env` | Global env fallback | | `~/.openclaw/workspace` | Default agent workspace | | `~/.openclaw/agents//` | Per-agent state + sessions | | `OPENCLAW_CONFIG_PATH` | Override config location | | `OPENCLAW_STATE_DIR` | Override state directory | | `OPENCLAW_HOME` | Override home directory | ### Essential Commands ``` openclaw status # Overall status openclaw gateway status # Gateway daemon status openclaw gateway status --deep # Deep scan including system services openclaw doctor # Diagnose config/service issues openclaw doctor --fix # Auto-fix safe issues openclaw logs --follow # Tail gateway logs openclaw channels status --probe # Channel health check openclaw security audit # Security posture check openclaw security audit --fix # Auto-fix security issues openclaw update # Self-update openclaw dashboard # Open Control UI in browser openclaw tui # Terminal UI (interactive REPL) openclaw agent # Direct agent interaction via CLI openclaw health # Health check openclaw usage # Usage tracking openclaw config validate # Validate config file openclaw config file # Print active config path openclaw sessions cleanup # Session disk cleanup openclaw agents bindings # Agent-channel bindings openclaw agents bind # Bind agent to account openclaw agents unbind # Unbind agent openclaw update --dry-run # Preview update ``` ### Default Gateway - Bind: `127.0.0.1:18789` (loopback) - Dashboard: `http://127.0.0.1:18789/` - Protocol: WebSocket (JSON text frames) ## Core Workflow ### Diagnosing Issues Always follow this command ladder: 1. `openclaw status` — quick overview 2. `openclaw gateway status` — daemon running? RPC probe ok? 3. `openclaw logs --follow` — watch for errors 4. `openclaw doctor` — config/service diagnostics 5. `openclaw channels status --probe` — per-channel health ### Starting / Restarting Gateway ```bash # Foreground with verbose logging openclaw gateway --port 18789 --verbose # Force-kill existing listener then start openclaw gateway --force # Service management (launchd on macOS, systemd on Linux) openclaw gateway install openclaw gateway start openclaw gateway stop openclaw gateway restart ``` ### Configuration Edit config via any method: ```bash # Interactive wizard openclaw onboard # Full setup openclaw configure # Config wizard # CLI one-liners openclaw config get # Read value openclaw config set # Set value (JSON5 or raw string) openclaw config unset # Remove value # Direct edit # Edit ~/.openclaw/openclaw.json (JSON5 format) # Gateway hot-reloads on save (if gateway.reload.mode != "off") ``` Minimal config example: ```json5 { agents: { defaults: { workspace: "~/.openclaw/workspace" } }, channels: { whatsapp: { allowFrom: ["+15555550123"] } }, } ``` ### Channel Setup For detailed per-channel setup, see [references/channels.md](references/channels.md). For per-channel troubleshooting (failure signatures, setup walkthroughs), see [references/channel_troubleshooting.md](references/channel_troubleshooting.md). For plugins adding new channels (Matrix, Nostr, MS Teams, etc.), see [references/plugins.md](references/plugins.md). Quick channel add: ```bash # Interactive wizard openclaw channels add # Non-interactive openclaw channels add --channel telegram --account default --name "My Bot" --token $BOT_TOKEN openclaw channels login --channel whatsapp # QR pairing for WhatsApp openclaw channels status --probe # Verify ``` ### Model Provider Setup For detailed provider setup, see [references/providers.md](references/providers.md). ```bash # Set default model openclaw models set anthropic/claude-sonnet-4-5 # List available models openclaw models list --all # Check auth/token status openclaw models status --probe # Add auth interactively openclaw models auth add ``` Config example: ```json5 { agents: { defaults: { model: { primary: "anthropic/claude-sonnet-4-5", fallbacks: ["openai/gpt-5.2"], }, }, }, } ``` ### Multi-Agent Routing For detailed multi-agent config, see [references/multi_agent.md](references/multi_agent.md). ```bash openclaw agents add # Create agent openclaw agents list --bindings # Show agent-channel bindings openclaw agents delete # Remove agent ``` ### Nodes (iOS / Android / macOS / Headless) For detailed node setup, see [references/nodes.md](references/nodes.md). ```bash openclaw nodes status # List connected nodes openclaw nodes describe --node # Node capabilities openclaw devices list # Pending device approvals openclaw devices approve # Approve a device openclaw node run --host --port 18789 # Start headless node host ``` ### Security For detailed security hardening, see [references/security.md](references/security.md). For secrets management (SecretRef, vault integration), see [references/secrets.md](references/secrets.md). For sandboxing (Docker isolation for tools), see [references/sandboxing.md](references/sandboxing.md). For full config field reference, see [references/config_reference.md](references/config_reference.md). For remote access (SSH, Tailscale, VPN), see [references/remote_access.md](references/remote_access.md). ```bash openclaw security audit # Check posture openclaw security audit --deep # Live gateway probe openclaw security audit --fix # Auto-fix safe issues openclaw secrets reload # Re-resolve secret refs openclaw secrets audit # Scan for plaintext leaks ``` ### Update / Uninstall For detailed installation, updating, rollback, and migration guide, see [references/install.md](references/install.md). ```bash # Install (recommended) curl -fsSL https://openclaw.ai/install.sh | bash # Update openclaw update # Self-update command # Or: npm install -g openclaw@latest openclaw doctor # Run after update to apply migrations # Uninstall openclaw uninstall ``` ## Tools Reference For detailed per-tool documentation, see [references/tools.md](references/tools.md). For specific tools, see: - [references/exec.md](references/exec.md) — Exec tool deep-dive - [references/exec_approvals.md](references/exec_approvals.md) — Exec approvals and allowlists - [references/browser.md](references/browser.md) — Browser automation deep-dive - [references/web_tools.md](references/web_tools.md) — Web search/fetch with multiple providers - [references/lobster.md](references/lobster.md) — Lobster workflow runtime - [references/llm_task.md](references/llm_task.md) — LLM Task for structured JSON output - [references/openprose.md](references/openprose.md) — OpenProse multi-agent programs - [references/plugins.md](references/plugins.md) — Plugin system (install, author, distribute) - [references/skills.md](references/skills.md) — Skills system (load, config, ClawHub) For ACP agents (Codex, Claude Code, Gemini CLI, etc.), see [references/acp_agents.md](references/acp_agents.md). For Diffs plugin and Firecrawl anti-bot fallback, see [references/diffs_firecrawl.md](references/diffs_firecrawl.md). For chat slash commands (/new, /model, /acp, etc.), see [references/slash_commands.md](references/slash_commands.md). **Tool profiles**: `minimal`, `coding`, `messaging`, `full` (default). **Tool groups** (for allow/deny): - `group:runtime` — exec, bash, process - `group:fs` — read, write, edit, apply_patch - `group:sessions` — sessions_list/history/send/spawn, session_status - `group:memory` — memory_search, memory_get - `group:web` — web_search, web_fetch - `group:ui` — browser, canvas - `group:automation` — cron, gateway - `group:messaging` — message - `group:nodes` — nodes - `group:openclaw` — all built-in OpenClaw tools (excludes provider plugins) ## Common Failure Signatures | Error | Cause | Fix | |---|---|---| | `refusing to bind gateway ... without auth` | Non-loopback bind without token | Set `gateway.auth.token` or `gateway.auth.password` | | `another gateway instance is already listening` / `EADDRINUSE` | Port conflict | `openclaw gateway --force` or change port | | `Gateway start blocked: set gateway.mode=local` | Local mode not enabled | Set `gateway.mode="local"` | | `unauthorized` / reconnect loop | Token/password mismatch | Check `OPENCLAW_GATEWAY_TOKEN` or config auth | | `device identity required` | Missing device auth | Ensure client completes connect.challenge flow | | No replies from bot | Pairing/allowlist/mention gating | Check `openclaw pairing list`, DM policy, mention patterns | ## Environment Variables | Variable | Purpose | |---|---| | `OPENCLAW_GATEWAY_TOKEN` | Gateway auth token | | `OPENCLAW_GATEWAY_PASSWORD` | Gateway auth password | | `OPENCLAW_GATEWAY_PORT` | Override gateway port | | `OPENCLAW_CONFIG_PATH` | Override config file path | | `OPENCLAW_STATE_DIR` | Override state directory | | `OPENCLAW_HOME` | Override home directory | | `OPENCLAW_LOAD_SHELL_ENV` | Import shell env (set to `1`) | | `OPENCLAW_VERBOSE` | Verbose logging | | `OPENCLAW_LOG_FILE` | File logging path | | `OPENCLAW_LOG_LEVEL` | Log level control | | `OPENCLAW_SHELL` | Set by OpenClaw in exec/acp/tui runtimes | | `BRAVE_API_KEY` | For web_search tool | | `FIRECRAWL_API_KEY` | For Firecrawl anti-bot fallback |