Files
openclaw-openclaw/docs/docs.json
Peter Steinberger d6801f23d4 feat(browser): restore driver "extension" via a loopback Chrome extension relay (no remote-debugging prompt) (#100619)
* feat(browser): restore driver "extension" via loopback Chrome extension relay

Reintroduces browser profile driver "extension" (removed in 2026.3.22) as a
loopback relay that drives the user's signed-in Chrome through an MV3 extension
instead of the remote-debugging port. This avoids Chrome's blocking "Allow
remote debugging?" prompt, which cannot be clicked when the operator drives
OpenClaw from a phone. Automated tabs live in an "OpenClaw" tab group (the
consent boundary), mirroring the Codex/Claude-in-Chrome model.

- relay bridge synthesizes the CDP browser target surface for Playwright
  connectOverCDP and forwards session-scoped commands to chrome.debugger
- relay server binds loopback only; both sides authenticate with a token
  derived (HMAC-SHA256) from gateway auth, so the raw credential never reaches
  Chrome; extension origin + loopback Host checks guard the upgrade
- built-in "chrome" profile; distinct relay ports per extension profile;
  relay reconciles on auth rotation / cdpPort change and prunes removed profiles
- doctor + status surface the extension transport; doctor keeps repairing the
  retired relay endpoint URL on legacy "extension" profiles

Refs #53599

* feat(browser): bundle the OpenClaw MV3 Chrome extension

Thin MV3 extension (chrome-extension/): a WebSocket client to the loopback
relay plus chrome.debugger forwarding and OpenClaw tab-group management. All
CDP target synthesis lives server-side in the relay bridge, so the extension
stays a dumb transport (the removed 2026.3 extension put that logic in a
1000-line untestable service worker). Popup handles pairing and per-tab share
toggle; `openclaw browser extension path|pair` load and pair it. A build copy
hook stages it into dist so the load path is stable.

Refs #53599

* docs(browser): document the Chrome extension profile

Adds docs/tools/chrome-extension for the restored extension driver (install,
pair, tab-group consent model, security posture) and wires it into the browser
docs profile section and nav.

Refs #53599

* feat(browser): make the extension relay work on remote browser nodes

Derives the relay auth token from a host-local secret in the credentials dir
(created on first use) instead of gateway auth. Each machine that runs a
browser — the gateway host and every browser node host — owns its own token, so
the extension pairs with whichever machine hosts its Chrome and no gateway
credential travels to a node. The node host already runs the shared browser
control bootstrap, so this is all that was missing for cross-machine control.

Also removes the "relay needs gateway auth before it can start" failure mode:
startup and `openclaw browser extension pair` ensure the secret exists.

Refs #53599

* fix(browser): harden relay secret creation and satisfy CI lint/typecheck

- Make the host-local relay secret creation atomic (O_CREAT|O_EXCL + adopt the
  winner on EEXIST) so the gateway service and `extension pair` CLI cannot mint
  divergent tokens on a fresh host (would 401 until restart); credentials dir
  created mode 0700. (adversarial review finding)
- Resolve type-aware oxlint findings across the relay + extension: unknown catch
  vars, addEventListener over ws.on* in the MV3 worker, void async listeners,
  drop useless returns/spreads, Object.assign over map-spread, safe ws frame
  decode (Buffer[]/ArrayBuffer), toSorted.
- Add extensionRelayDefaultPort/extensionRelayPorts to remaining test config
  literals; type the extension relay-core module (.d.ts, excluded from dist);
  regenerate docs_map.

* fix(browser): satisfy OpenGrep security policy on the relay

- Hash both operands before timingSafeEqual so token comparison has no
  length short-circuit (GHSA-JJ6Q-RRRF-H66H).
- Bound the relay WebSocketServer with maxPayload (64 MiB, headroom for CDP
  screenshots/bodies) against oversized frames (GHSA-VW3H-Q6XQ-JJM5).
- Rewrite the config test env helper to avoid the skill-env-host-injection
  shape (GHSA-82G8-464F-2MV7); it is a test-only env swap.
2026-07-06 10:08:27 +01:00

1994 lines
54 KiB
JSON

{
"$schema": "https://mintlify.com/docs.json",
"name": "OpenClaw",
"description": "Self-hosted gateway that connects Discord, Google Chat, iMessage, Matrix, Microsoft Teams, Signal, Slack, Telegram, WhatsApp, Zalo, and more to AI coding agents. Run one Gateway process on your own machine and message your AI assistant from anywhere.",
"theme": "mint",
"icons": {
"library": "lucide"
},
"logo": {
"light": "/assets/pixel-lobster.svg",
"dark": "/assets/pixel-lobster.svg"
},
"fonts": {
"body": {
"family": "Fragment Mono"
},
"heading": {
"family": "DM Sans"
}
},
"favicon": "/assets/pixel-lobster.svg",
"colors": {
"primary": "#FF5A36",
"dark": "#FF5A36",
"light": "#FF8A6B"
},
"styling": {
"codeblocks": {
"theme": {
"dark": "min-dark",
"light": "min-light"
}
}
},
"navbar": {
"links": [
{
"label": "GitHub",
"href": "https://github.com/openclaw/openclaw",
"icon": "github"
},
{
"label": "Releases",
"href": "https://github.com/openclaw/openclaw/releases",
"icon": "package"
},
{
"label": "Discord",
"href": "https://discord.com/invite/clawd",
"icon": "discord"
}
]
},
"redirects": [
{
"source": "/channels/bluebubbles",
"destination": "/channels/imessage-from-bluebubbles"
},
{
"source": "/install/migrating-matrix",
"destination": "/channels/matrix-migration"
},
{
"source": "/concepts/openclaw-sdk",
"destination": "/gateway/external-apps"
},
{
"source": "/reference/openclaw-sdk-api-design",
"destination": "/gateway/external-apps"
},
{
"source": "/reference/maturity-scorecard",
"destination": "/maturity/scorecard"
},
{
"source": "/reference/maturity-taxonomy",
"destination": "/maturity/taxonomy"
},
{
"source": "/mcp",
"destination": "/cli/mcp"
},
{
"source": "/help/gpt54-codex-agentic-parity",
"destination": "/agent-runtime-architecture"
},
{
"source": "/help/gpt54-codex-agentic-parity-maintainers",
"destination": "/agent-runtime-architecture"
},
{
"source": "/help/gpt55-codex-agentic-parity",
"destination": "/agent-runtime-architecture"
},
{
"source": "/help/gpt55-codex-agentic-parity-maintainers",
"destination": "/agent-runtime-architecture"
},
{
"source": "/pi",
"destination": "/agent-runtime-architecture"
},
{
"source": "/pi-dev",
"destination": "/openclaw-agent-runtime"
},
{
"source": "/providers/modelstudio",
"destination": "/providers/qwen"
},
{
"source": "/providers/qwen_modelstudio",
"destination": "/providers/qwen"
},
{
"source": "/platforms/oracle",
"destination": "/install/oracle"
},
{
"source": "/platforms/digitalocean",
"destination": "/install/digitalocean"
},
{
"source": "/platforms/raspberry-pi",
"destination": "/install/raspberry-pi"
},
{
"source": "/plugins/building-extensions",
"destination": "/plugins/building-plugins"
},
{
"source": "/plugins/agent-tools",
"destination": "/plugins/building-plugins#registering-agent-tools"
},
{
"source": "/gateway/admin-http-rpc",
"destination": "/plugins/admin-http-rpc"
},
{
"source": "/cli/capability",
"destination": "/cli/infer"
},
{
"source": "/tools/capability-cookbook",
"destination": "/plugins/adding-capabilities"
},
{
"source": "/brave-search",
"destination": "/tools/brave-search"
},
{
"source": "/perplexity",
"destination": "/tools/perplexity-search"
},
{
"source": "/web-fetch",
"destination": "/tools/web-fetch"
},
{
"source": "/duckduckgo-search",
"destination": "/tools/duckduckgo-search"
},
{
"source": "/exa-search",
"destination": "/tools/exa-search"
},
{
"source": "/gemini-search",
"destination": "/tools/gemini-search"
},
{
"source": "/grok-search",
"destination": "/tools/grok-search"
},
{
"source": "/kimi-search",
"destination": "/tools/kimi-search"
},
{
"source": "/tts",
"destination": "/tools/tts"
},
{
"source": "/messages",
"destination": "/concepts/messages"
},
{
"source": "/context",
"destination": "/concepts/context"
},
{
"source": "/compaction",
"destination": "/concepts/compaction"
},
{
"source": "/context-engine",
"destination": "/concepts/context-engine"
},
{
"source": "/cron",
"destination": "/automation/cron-jobs"
},
{
"source": "/minimax",
"destination": "/providers/minimax"
},
{
"source": "/xiaomi",
"destination": "/providers/xiaomi"
},
{
"source": "/openai",
"destination": "/providers/openai"
},
{
"source": "/openai/",
"destination": "/providers/openai"
},
{
"source": "/anthropic",
"destination": "/providers/anthropic"
},
{
"source": "/anthropic/",
"destination": "/providers/anthropic"
},
{
"source": "/moonshot",
"destination": "/providers/moonshot"
},
{
"source": "/mistral",
"destination": "/providers/mistral"
},
{
"source": "/openrouter",
"destination": "/providers/openrouter"
},
{
"source": "/opencode",
"destination": "/providers/opencode"
},
{
"source": "/opencode-go",
"destination": "/providers/opencode-go"
},
{
"source": "/qianfan",
"destination": "/providers/qianfan"
},
{
"source": "/mattermost",
"destination": "/channels/mattermost"
},
{
"source": "/line",
"destination": "/channels/line"
},
{
"source": "/glm",
"destination": "/providers/zai"
},
{
"source": "/zai",
"destination": "/providers/zai"
},
{
"source": "/providers/glm",
"destination": "/providers/zai"
},
{
"source": "/message",
"destination": "/cli/message"
},
{
"source": "/providers/discord",
"destination": "/channels/discord"
},
{
"source": "/providers/googlechat",
"destination": "/channels/googlechat"
},
{
"source": "/providers/grammy",
"destination": "/channels/telegram"
},
{
"source": "/providers/imessage",
"destination": "/channels/imessage"
},
{
"source": "/providers/location",
"destination": "/channels/location"
},
{
"source": "/providers/mattermost",
"destination": "/channels/mattermost"
},
{
"source": "/providers/msteams",
"destination": "/channels/msteams"
},
{
"source": "/providers/line",
"destination": "/channels/line"
},
{
"source": "/providers/signal",
"destination": "/channels/signal"
},
{
"source": "/providers/slack",
"destination": "/channels/slack"
},
{
"source": "/providers/telegram",
"destination": "/channels/telegram"
},
{
"source": "/providers/troubleshooting",
"destination": "/channels/troubleshooting"
},
{
"source": "/providers/zalo",
"destination": "/channels/zalo"
},
{
"source": "/channels/openclaw-zaloclawbot",
"destination": "/channels/zaloclawbot"
},
{
"source": "/providers/whatsapp",
"destination": "/channels/whatsapp"
},
{
"source": "/sandbox",
"destination": "/cli/sandbox"
},
{
"source": "/sandboxing",
"destination": "/gateway/sandboxing"
},
{
"source": "/AGENTS.default",
"destination": "/reference/AGENTS.default"
},
{
"source": "/RELEASING",
"destination": "/reference/RELEASING"
},
{
"source": "/agent",
"destination": "/concepts/agent"
},
{
"source": "/agent-loop",
"destination": "/concepts/agent-loop"
},
{
"source": "/agent-send",
"destination": "/tools/agent-send"
},
{
"source": "/agent-workspace",
"destination": "/concepts/agent-workspace"
},
{
"source": "/android",
"destination": "/platforms/android"
},
{
"source": "/architecture",
"destination": "/concepts/architecture"
},
{
"source": "/audio",
"destination": "/nodes/audio"
},
{
"source": "/background-process",
"destination": "/gateway/background-process"
},
{
"source": "/bash",
"destination": "/tools/exec"
},
{
"source": "/tools/bash",
"destination": "/tools/exec"
},
{
"source": "/bonjour",
"destination": "/gateway/bonjour"
},
{
"source": "/gateway/config-tts",
"destination": "/tools/tts"
},
{
"source": "/gateway/observability",
"destination": "/gateway/opentelemetry"
},
{
"source": "/browser",
"destination": "/tools/browser"
},
{
"source": "/browser-linux-troubleshooting",
"destination": "/tools/browser-linux-troubleshooting"
},
{
"source": "/bun",
"destination": "/install/bun"
},
{
"source": "/auth-monitoring",
"destination": "/gateway/authentication"
},
{
"source": "/camera",
"destination": "/nodes/camera"
},
{
"source": "/clawd",
"destination": "/start/openclaw"
},
{
"source": "/start/clawd",
"destination": "/start/openclaw"
},
{
"source": "/start/clawd/",
"destination": "/start/openclaw"
},
{
"source": "/start/pairing",
"destination": "/channels/pairing"
},
{
"source": "/clawdhub",
"destination": "/clawhub"
},
{
"source": "/tools/clawhub",
"destination": "/clawhub"
},
{
"source": "/tools/clawdhub",
"destination": "/clawhub"
},
{
"source": "/configuration",
"destination": "/gateway/configuration"
},
{
"source": "/control-ui",
"destination": "/web/control-ui"
},
{
"source": "/cron-jobs",
"destination": "/automation/cron-jobs"
},
{
"source": "/cron-vs-heartbeat",
"destination": "/automation"
},
{
"source": "/dashboard",
"destination": "/web/dashboard"
},
{
"source": "/device-models",
"destination": "/reference/device-models"
},
{
"source": "/discord",
"destination": "/channels/discord"
},
{
"source": "/discovery",
"destination": "/gateway/discovery"
},
{
"source": "/docker",
"destination": "/install/docker"
},
{
"source": "/podman",
"destination": "/install/podman"
},
{
"source": "/doctor",
"destination": "/gateway/doctor"
},
{
"source": "/elevated",
"destination": "/tools/elevated"
},
{
"source": "/faq",
"destination": "/help/faq"
},
{
"source": "/gateway-lock",
"destination": "/gateway/gateway-lock"
},
{
"source": "/getting-started",
"destination": "/start/getting-started"
},
{
"source": "/quickstart",
"destination": "/start/getting-started"
},
{
"source": "/start/quickstart",
"destination": "/start/getting-started"
},
{
"source": "/gmail-pubsub",
"destination": "/automation/cron-jobs"
},
{
"source": "/grammy",
"destination": "/channels/telegram"
},
{
"source": "/channels/grammy",
"destination": "/channels/telegram"
},
{
"source": "/channels/openclaw-weixin",
"destination": "/channels/wechat"
},
{
"source": "/channels/weixin",
"destination": "/channels/wechat"
},
{
"source": "/group-messages",
"destination": "/channels/group-messages"
},
{
"source": "/groups",
"destination": "/channels/groups"
},
{
"source": "/health",
"destination": "/gateway/health"
},
{
"source": "/heartbeat",
"destination": "/gateway/heartbeat"
},
{
"source": "/hubs",
"destination": "/start/hubs"
},
{
"source": "/images",
"destination": "/nodes/images"
},
{
"source": "/imessage",
"destination": "/channels/imessage"
},
{
"source": "/ios",
"destination": "/platforms/ios"
},
{
"source": "/linux",
"destination": "/platforms/linux"
},
{
"source": "/location",
"destination": "/channels/location"
},
{
"source": "/location-command",
"destination": "/nodes/location-command"
},
{
"source": "/lore",
"destination": "/start/lore"
},
{
"source": "/mac/bun",
"destination": "/platforms/mac/bundled-gateway"
},
{
"source": "/platforms/mac/bun",
"destination": "/platforms/mac/bundled-gateway"
},
{
"source": "/mac/canvas",
"destination": "/platforms/mac/canvas"
},
{
"source": "/mac/child-process",
"destination": "/platforms/mac/child-process"
},
{
"source": "/mac/dev-setup",
"destination": "/platforms/mac/dev-setup"
},
{
"source": "/mac/health",
"destination": "/platforms/mac/health"
},
{
"source": "/mac/icon",
"destination": "/platforms/mac/icon"
},
{
"source": "/mac/logging",
"destination": "/platforms/mac/logging"
},
{
"source": "/mac/menu-bar",
"destination": "/platforms/mac/menu-bar"
},
{
"source": "/mac/peekaboo",
"destination": "/platforms/mac/peekaboo"
},
{
"source": "/mac/permissions",
"destination": "/platforms/mac/permissions"
},
{
"source": "/mac/release",
"destination": "/reference/RELEASING"
},
{
"source": "/mac/remote",
"destination": "/platforms/mac/remote"
},
{
"source": "/mac/signing",
"destination": "/platforms/mac/signing"
},
{
"source": "/mac/skills",
"destination": "/platforms/mac/skills"
},
{
"source": "/mac/voice-overlay",
"destination": "/platforms/mac/voice-overlay"
},
{
"source": "/mac/voicewake",
"destination": "/platforms/mac/voicewake"
},
{
"source": "/mac/webchat",
"destination": "/platforms/mac/webchat"
},
{
"source": "/mac/xpc",
"destination": "/platforms/mac/xpc"
},
{
"source": "/macos",
"destination": "/platforms/macos"
},
{
"source": "/model-failover",
"destination": "/concepts/model-failover"
},
{
"source": "/model",
"destination": "/concepts/models"
},
{
"source": "/model/",
"destination": "/concepts/models"
},
{
"source": "/models",
"destination": "/concepts/models"
},
{
"source": "/multi-agent",
"destination": "/concepts/multi-agent"
},
{
"source": "/nix",
"destination": "/install/nix"
},
{
"source": "/onboarding",
"destination": "/start/onboarding"
},
{
"source": "/pairing",
"destination": "/channels/pairing"
},
{
"source": "/experiments/plans/cron-add-hardening",
"destination": "/automation/cron-jobs"
},
{
"source": "/experiments/plans/group-policy-hardening",
"destination": "/channels/groups"
},
{
"source": "/poll",
"destination": "/cli/message"
},
{
"source": "/presence",
"destination": "/concepts/presence"
},
{
"source": "/provider-routing",
"destination": "/channels/channel-routing"
},
{
"source": "/concepts/provider-routing",
"destination": "/channels/channel-routing"
},
{
"source": "/queue",
"destination": "/concepts/queue"
},
{
"source": "/remote",
"destination": "/gateway/remote"
},
{
"source": "/remote-gateway-readme",
"destination": "/gateway/remote-gateway-readme"
},
{
"source": "/rpc",
"destination": "/reference/rpc"
},
{
"source": "/security",
"destination": "/gateway/security"
},
{
"source": "/session",
"destination": "/concepts/session"
},
{
"source": "/session-tool",
"destination": "/concepts/session-tool"
},
{
"source": "/sessions",
"destination": "/concepts/session"
},
{
"source": "/setup",
"destination": "/start/setup"
},
{
"source": "/showcase",
"destination": "/start/showcase"
},
{
"source": "/signal",
"destination": "/channels/signal"
},
{
"source": "/skills",
"destination": "/tools/skills"
},
{
"source": "/skill-workshop",
"destination": "/tools/skill-workshop"
},
{
"source": "/tools/skills-workshop",
"destination": "/tools/skill-workshop"
},
{
"source": "/skills-config",
"destination": "/tools/skills-config"
},
{
"source": "/slack",
"destination": "/channels/slack"
},
{
"source": "/slash-commands",
"destination": "/tools/slash-commands"
},
{
"source": "/subagents",
"destination": "/tools/subagents"
},
{
"source": "/tailscale",
"destination": "/gateway/tailscale"
},
{
"source": "/talk",
"destination": "/nodes/talk"
},
{
"source": "/telegram",
"destination": "/channels/telegram"
},
{
"source": "/templates/AGENTS",
"destination": "/reference/templates/AGENTS"
},
{
"source": "/templates/BOOT",
"destination": "/reference/templates/BOOT"
},
{
"source": "/templates/BOOTSTRAP",
"destination": "/reference/templates/BOOTSTRAP"
},
{
"source": "/templates/HEARTBEAT",
"destination": "/reference/templates/HEARTBEAT"
},
{
"source": "/templates/IDENTITY",
"destination": "/reference/templates/IDENTITY"
},
{
"source": "/templates/SOUL",
"destination": "/reference/templates/SOUL"
},
{
"source": "/templates/TOOLS",
"destination": "/reference/templates/TOOLS"
},
{
"source": "/templates/USER",
"destination": "/reference/templates/USER"
},
{
"source": "/test",
"destination": "/reference/test"
},
{
"source": "/thinking",
"destination": "/tools/thinking"
},
{
"source": "/timezone",
"destination": "/concepts/timezone"
},
{
"source": "/troubleshooting",
"destination": "/help/troubleshooting"
},
{
"source": "/tui",
"destination": "/web/tui"
},
{
"source": "/typebox",
"destination": "/concepts/typebox"
},
{
"source": "/updating",
"destination": "/install/updating"
},
{
"source": "/voicewake",
"destination": "/nodes/voicewake"
},
{
"source": "/webchat",
"destination": "/web/webchat"
},
{
"source": "/webhook",
"destination": "/automation/cron-jobs"
},
{
"source": "/whatsapp",
"destination": "/channels/whatsapp"
},
{
"source": "/windows",
"destination": "/platforms/windows"
},
{
"source": "/wizard",
"destination": "/start/wizard"
},
{
"source": "/start/wizard-cli-flow",
"destination": "/start/wizard-cli-reference"
},
{
"source": "/start/wizard-cli-auth",
"destination": "/start/wizard-cli-reference"
},
{
"source": "/start/wizard-cli-outputs",
"destination": "/start/wizard-cli-reference"
},
{
"source": "/start/faq",
"destination": "/help/faq"
},
{
"source": "/oauth",
"destination": "/concepts/oauth"
},
{
"source": "/plugin",
"destination": "/tools/plugin"
},
{
"source": "/plugins",
"destination": "/tools/plugin"
},
{
"source": "/railway",
"destination": "/install/railway"
},
{
"source": "/northflank",
"destination": "/install/northflank"
},
{
"source": "/render",
"destination": "/install/render"
},
{
"source": "/gcp",
"destination": "/install/gcp"
},
{
"source": "/azure",
"destination": "/install/azure"
},
{
"source": "/platforms/fly",
"destination": "/install/fly"
},
{
"source": "/platforms/hetzner",
"destination": "/install/hetzner"
},
{
"source": "/platforms/gcp",
"destination": "/install/gcp"
},
{
"source": "/platforms/azure",
"destination": "/install/azure"
},
{
"source": "/platforms/macos-vm",
"destination": "/install/macos-vm"
},
{
"source": "/platforms/exe-dev",
"destination": "/install/exe-dev"
},
{
"source": "/platforms/railway",
"destination": "/install/railway"
},
{
"source": "/platforms/render",
"destination": "/install/render"
},
{
"source": "/platforms/northflank",
"destination": "/install/northflank"
},
{
"source": "/gateway/trusted-proxy",
"destination": "/gateway/trusted-proxy-auth"
},
{
"source": "/automation/clawflow",
"destination": "/automation/taskflow"
},
{
"source": "/automation/poll",
"destination": "/cli/message"
},
{
"source": "/automation/auth-monitoring",
"destination": "/gateway/authentication"
},
{
"source": "/automation/troubleshooting",
"destination": "/automation/cron-jobs"
},
{
"source": "/automation/cron-vs-heartbeat",
"destination": "/automation"
},
{
"source": "/automation/webhook",
"destination": "/automation/cron-jobs"
},
{
"source": "/automation/gmail-pubsub",
"destination": "/automation/cron-jobs"
}
],
"navigation": {
"languages": [
{
"language": "en",
"tabs": [
{
"tab": "Get started",
"groups": [
{
"group": "Overview",
"pages": [
"index",
"start/showcase",
"concepts/features"
]
},
{
"group": "First steps",
"pages": [
"start/getting-started",
"start/onboarding-overview",
"start/wizard",
"start/onboarding"
]
},
{
"group": "Guides",
"pages": [
"start/openclaw",
"start/wizard-cli-reference",
"start/wizard-cli-automation"
]
}
]
},
{
"tab": "Install",
"groups": [
{
"group": "Install overview",
"pages": [
"install/index",
"install/installer",
"install/node"
]
},
{
"group": "Maintenance",
"pages": [
"install/updating",
{
"group": "Migrating",
"pages": [
"install/migrating",
"install/migrating-claude",
"install/migrating-hermes"
]
},
"install/uninstall",
"install/development-channels"
]
},
{
"group": "Containers",
"pages": [
"install/ansible",
"install/bun",
"install/clawdock",
"install/docker",
"install/nix",
"install/podman"
]
},
{
"group": "Hosting",
"pages": [
"install/azure",
"install/digitalocean",
"install/docker-vm-runtime",
"install/exe-dev",
"install/fly",
"install/gcp",
"install/hetzner",
"install/hostinger",
"install/kubernetes",
"vps",
"install/macos-vm",
"install/northflank",
"install/oracle",
"install/railway",
"install/raspberry-pi",
"install/render",
"install/upstash"
]
},
{
"group": "Advanced setup",
"pages": [
"start/setup",
"openclaw-agent-runtime"
]
}
]
},
{
"tab": "Channels",
"groups": [
{
"group": "Overview",
"pages": [
"channels/index",
"announcements/bluebubbles-imessage"
]
},
{
"group": "Mainstream messaging",
"pages": [
"channels/discord",
"channels/slack",
"channels/telegram",
"channels/whatsapp",
"channels/signal",
"channels/msteams",
"channels/googlechat",
"channels/imessage",
"channels/imessage-from-bluebubbles",
"channels/matrix",
"channels/matrix-migration",
"channels/matrix-presentation",
"channels/matrix-push-rules"
]
},
{
"group": "Developer and self-hosted",
"pages": [
"channels/irc",
"channels/mattermost",
"channels/nextcloud-talk",
"channels/nostr",
"channels/raft",
"channels/tlon",
"channels/synology-chat",
"channels/twitch"
]
},
{
"group": "Regional platforms",
"pages": [
"channels/line",
"channels/wechat",
"channels/qqbot",
"channels/feishu",
"channels/yuanbao",
"channels/zalo",
"channels/zaloclawbot",
"channels/zalouser"
]
},
{
"group": "Configuration",
"pages": [
"channels/pairing",
"channels/access-groups",
"channels/group-messages",
"channels/groups",
"channels/ambient-room-events",
"channels/broadcast-groups",
"channels/channel-routing",
"channels/location",
"channels/troubleshooting",
"channels/qa-channel"
]
}
]
},
{
"tab": "Agents",
"groups": [
{
"group": "Fundamentals",
"pages": [
"concepts/architecture",
"concepts/agent",
"concepts/agent-loop",
"concepts/agent-runtimes",
"concepts/system-prompt",
"concepts/context",
"concepts/context-engine",
"concepts/agent-workspace",
"concepts/managed-worktrees",
"concepts/soul",
"concepts/oauth",
"start/bootstrapping",
"concepts/experimental-features",
"concepts/qa-e2e-automation",
"concepts/personal-agent-benchmark-pack",
"concepts/qa-matrix"
]
},
{
"group": "Sessions and memory",
"pages": [
"concepts/session",
"concepts/channel-docking",
"concepts/session-pruning",
"concepts/session-tool",
{
"group": "Memory",
"pages": [
"concepts/memory",
"concepts/memory-builtin",
"concepts/memory-qmd",
"concepts/memory-honcho",
"concepts/memory-search",
"concepts/active-memory",
"concepts/commitments",
"concepts/dreaming"
]
},
"concepts/compaction"
]
},
{
"group": "Multi-agent",
"pages": [
"concepts/multi-agent",
"concepts/parallel-specialist-lanes",
"concepts/presence",
"concepts/delegate-architecture"
]
},
{
"group": "Messages and delivery",
"pages": [
"concepts/messages",
"concepts/message-lifecycle-refactor",
"concepts/streaming",
"concepts/progress-drafts",
"concepts/retry",
"concepts/queue",
"concepts/queue-steering"
]
}
]
},
{
"tab": "Capabilities",
"groups": [
{
"group": "Overview",
"pages": [
"tools/index"
]
},
{
"group": "Plugins",
"pages": [
"tools/plugin",
"plugins/manage-plugins",
"plugins/community",
"plugins/bundles"
]
},
{
"group": "Bundled plugin guides",
"pages": [
"plugins/codex-harness",
"plugins/codex-native-plugins",
"plugins/codex-computer-use",
"plugins/logbook",
"plugins/google-meet",
"plugins/workboard",
"plugins/webhooks",
"plugins/admin-http-rpc",
"plugins/voice-call",
"plugins/memory-wiki",
"plugins/llama-cpp",
"plugins/memory-lancedb",
"plugins/oc-path",
"plugins/zalouser"
]
},
{
"group": "Building plugins",
"pages": [
"plugins/building-plugins",
"plugins/tool-plugins",
"plugins/sdk-channel-plugins",
"plugins/sdk-provider-plugins",
"plugins/cli-backend-plugins",
"plugins/hooks",
"plugins/plugin-permission-requests",
"plugins/adding-capabilities"
]
},
{
"group": "Skills",
"pages": [
"tools/skills",
"tools/skill-workshop",
"tools/creating-skills",
"tools/skills-config",
"tools/slash-commands",
"prose"
]
},
{
"group": "Automation",
"pages": [
"automation/index",
"automation/cron-jobs",
"automation/tasks",
"automation/taskflow",
"automation/standing-orders",
"automation/hooks"
]
},
{
"group": "Tools",
"pages": [
"tools/apply-patch",
"tools/btw",
"tools/code-execution",
"tools/diffs",
"tools/elevated",
"tools/permission-modes",
"tools/exec-approvals",
"tools/exec-approvals-advanced",
"tools/exec",
"tools/image-generation",
"tools/llm-task",
"tools/lobster",
"tools/media-overview",
"tools/music-generation",
"tools/pdf",
"tools/reactions",
"tools/thinking",
"tools/tokenjuice",
"tools/tool-search",
"tools/loop-detection",
"tools/trajectory",
"tools/tts",
"tools/video-generation",
{
"group": "Web browser",
"pages": [
"tools/browser",
"tools/chrome-extension",
"tools/browser-control",
"tools/browser-login",
"tools/browser-linux-troubleshooting",
"tools/browser-wsl2-windows-remote-cdp-troubleshooting"
]
},
{
"group": "Web tools",
"pages": [
"tools/web-fetch",
"tools/web",
"tools/brave-search",
"tools/duckduckgo-search",
"tools/exa-search",
"tools/firecrawl",
"tools/gemini-search",
"tools/grok-search",
"tools/kimi-search",
"tools/minimax-search",
"tools/ollama-search",
"tools/parallel-search",
"tools/perplexity-search",
"tools/searxng-search",
"tools/tavily"
]
}
]
},
{
"group": "Agent coordination",
"pages": [
"tools/agent-send",
"tools/goal",
"tools/steer",
"tools/subagents",
"tools/acp-agents",
"tools/acp-agents-setup",
"tools/multi-agent-sandbox-tools"
]
}
]
},
{
"tab": "ClawHub",
"groups": [
{
"group": "Overview",
"pages": [
"clawhub/index",
"clawhub/quickstart",
"clawhub/how-it-works"
]
},
{
"group": "Using ClawHub",
"pages": [
"clawhub/cli",
"clawhub/publishing",
"clawhub/skill-format",
"clawhub/auth",
"clawhub/telemetry",
"clawhub/troubleshooting"
]
},
{
"group": "API and trust",
"pages": [
"clawhub/api",
"clawhub/http-api",
"clawhub/acceptable-usage",
"clawhub/moderation",
"clawhub/security-audits"
]
}
]
},
{
"tab": "Models",
"groups": [
{
"group": "Overview",
"pages": [
"providers/index",
"providers/models"
]
},
{
"group": "Concepts and configuration",
"pages": [
"concepts/models",
"concepts/model-providers",
"concepts/model-failover"
]
},
{
"group": "Providers",
"pages": [
"providers/alibaba",
"providers/bedrock",
"providers/bedrock-mantle",
"providers/anthropic",
"providers/arcee",
"providers/azure-speech",
"providers/cerebras",
"providers/chutes",
"providers/clawrouter",
"providers/cohere",
"providers/claude-max-api-proxy",
"providers/cloudflare-ai-gateway",
"providers/comfy",
"providers/deepgram",
"providers/deepinfra",
"providers/deepseek",
"providers/ds4",
"providers/elevenlabs",
"providers/fal",
"providers/fireworks",
"providers/github-copilot",
"providers/gmi",
"providers/google",
"providers/gradium",
"providers/groq",
"providers/huggingface",
"providers/inferrs",
"providers/inworld",
"providers/kilocode",
"providers/litellm",
"providers/lmstudio",
"providers/minimax",
"providers/mistral",
"providers/moonshot",
"providers/novita",
"providers/nvidia",
"providers/ollama",
"providers/ollama-cloud",
"providers/openai",
"providers/opencode",
"providers/opencode-go",
"providers/openrouter",
"providers/perplexity-provider",
"providers/pixverse",
"providers/qianfan",
"providers/qwen",
"providers/qwen-oauth",
"providers/runway",
"providers/senseaudio",
"providers/sglang",
"providers/stepfun",
"providers/synthetic",
"providers/tencent",
"providers/together",
"providers/venice",
"providers/vercel-ai-gateway",
"providers/vllm",
"providers/volcengine",
"providers/vydra",
"providers/xai",
"providers/xiaomi",
"providers/zai"
]
}
]
},
{
"tab": "Platforms",
"groups": [
{
"group": "Platforms overview",
"pages": [
"platforms/index",
"platforms/macos",
"platforms/linux",
"platforms/windows",
"platforms/android",
"platforms/ios",
"platforms/easyrunner"
]
},
{
"group": "macOS companion app",
"pages": [
{
"group": "Setup",
"pages": [
"platforms/mac/dev-setup",
"platforms/mac/menu-bar",
"platforms/mac/icon",
"platforms/mac/permissions",
"platforms/mac/signing"
]
},
{
"group": "Runtime",
"pages": [
"platforms/mac/bundled-gateway",
"platforms/mac/child-process",
"platforms/mac/health",
"platforms/mac/logging",
"platforms/mac/remote",
"platforms/mac/xpc"
]
},
{
"group": "Features",
"pages": [
"platforms/mac/voicewake",
"platforms/mac/voice-overlay",
"platforms/mac/webchat",
"platforms/mac/canvas",
"platforms/mac/skills",
"platforms/mac/peekaboo"
]
}
]
}
]
},
{
"tab": "Gateway & Ops",
"groups": [
{
"group": "Gateway",
"pages": [
"gateway/index",
{
"group": "Configuration",
"pages": [
"gateway/configuration",
"gateway/configuration-reference",
"gateway/config-agents",
"gateway/config-channels",
"gateway/config-tools",
"gateway/configuration-examples"
]
},
{
"group": "Authentication and secrets",
"pages": [
"gateway/authentication",
"auth-credential-semantics",
"gateway/secrets",
"gateway/secrets-plan-contract",
"gateway/trusted-proxy-auth"
]
},
{
"group": "Health and diagnostics",
"pages": [
"gateway/health",
"gateway/heartbeat",
"gateway/doctor",
"logging",
"gateway/opentelemetry",
"gateway/prometheus",
"gateway/logging",
"gateway/diagnostics",
"gateway/troubleshooting"
]
},
{
"group": "Scaling and operations",
"pages": [
"gateway/gateway-lock",
"gateway/background-process",
"gateway/multiple-gateways"
]
},
{
"group": "Security and sandboxing",
"pages": [
"gateway/security/index",
"gateway/security/exposure-runbook",
"gateway/security/secure-file-operations",
"gateway/security/shrinkwrap",
"gateway/security/audit-checks",
"gateway/operator-scopes",
"gateway/sandboxing",
"gateway/openshell",
"gateway/sandbox-vs-tool-policy-vs-elevated"
]
},
{
"group": "Protocols and APIs",
"pages": [
"gateway/protocol",
"gateway/bridge-protocol",
"gateway/openai-http-api",
"gateway/openresponses-http-api",
"gateway/tools-invoke-http-api",
"gateway/cli-backends",
"gateway/local-models",
"gateway/local-model-services"
]
},
{
"group": "Networking and discovery",
"pages": [
"network",
"gateway/pairing",
"gateway/discovery",
"gateway/bonjour"
]
}
]
},
{
"group": "Remote access",
"pages": [
"gateway/remote",
"gateway/remote-gateway-readme",
"gateway/tailscale"
]
},
{
"group": "Security",
"pages": [
"security/network-proxy",
"security/formal-verification",
"security/THREAT-MODEL-ATLAS",
"security/CONTRIBUTING-THREAT-MODEL"
]
},
{
"group": "Nodes and media",
"pages": [
"nodes/index",
"nodes/troubleshooting",
{
"group": "Media capabilities",
"pages": [
"nodes/media-understanding",
"nodes/images",
"nodes/audio",
"nodes/camera",
"tools/tts"
]
},
{
"group": "Node features",
"pages": [
"nodes/talk",
"nodes/voicewake",
"nodes/location-command"
]
}
]
},
{
"group": "Web interfaces",
"pages": [
"web/index",
"web/control-ui",
"web/dashboard",
"web/webchat",
"web/tui"
]
}
]
},
{
"tab": "Reference",
"groups": [
{
"group": "CLI commands",
"pages": [
"cli/index",
{
"group": "Gateway and service",
"pages": [
"cli/backup",
"cli/crestodian",
"cli/daemon",
"cli/doctor",
"cli/gateway",
"cli/health",
"cli/logs",
"cli/migrate",
"cli/onboard",
"cli/reset",
"cli/secrets",
"cli/security",
"cli/setup",
"cli/status",
"cli/uninstall",
"cli/update"
]
},
{
"group": "Agents and sessions",
"pages": [
"cli/agent",
"cli/agents",
"cli/hooks",
"cli/infer",
"cli/memory",
"cli/commitments",
"cli/message",
"cli/models",
"cli/sessions",
"cli/system",
"cli/tasks"
]
},
{
"group": "Channels and messaging",
"pages": [
"cli/channels",
"cli/devices",
"cli/directory",
"cli/pairing",
"cli/qr",
"cli/voicecall"
]
},
{
"group": "Tools and execution",
"pages": [
"cli/approvals",
"cli/browser",
"cli/cron",
"cli/flows",
"cli/node",
"cli/nodes",
"cli/sandbox"
]
},
{
"group": "Configuration",
"pages": [
"cli/config",
"cli/configure",
"cli/webhooks"
]
},
{
"group": "Plugins and skills",
"pages": [
"cli/plugins",
"cli/path",
"cli/policy",
"cli/skills",
"cli/workboard"
]
},
{
"group": "Interfaces",
"pages": [
"cli/attach",
"cli/dashboard",
"cli/tui"
]
},
{
"group": "Utility",
"pages": [
"cli/acp",
"cli/clawbot",
"cli/completion",
"cli/dns",
"cli/docs",
"cli/mcp",
"cli/proxy",
"cli/wiki"
]
}
]
},
{
"group": "RPC and API",
"pages": [
"reference/rpc",
"gateway/external-apps",
"reference/code-mode",
"reference/device-models"
]
},
{
"group": "Codex harness",
"pages": [
"plugins/codex-harness-reference",
"plugins/codex-harness-runtime"
]
},
{
"group": "Plugin reference",
"pages": [
"plugins/plugin-inventory",
"plugins/reference",
"plugins/dependency-resolution",
"plugins/install-overrides"
]
},
{
"group": "Plugin SDK reference",
"pages": [
"plugins/sdk-overview",
"plugins/sdk-subpaths",
"plugins/sdk-entrypoints",
"plugins/sdk-runtime",
"plugins/sdk-agent-harness",
"plugins/sdk-setup",
"plugins/sdk-testing",
"plugins/manifest"
]
},
{
"group": "Plugin maintainer reference",
"pages": [
"plugins/architecture",
"plugins/architecture-internals",
"plugins/sdk-migration",
"plugins/compatibility",
"plugins/sdk-channel-outbound",
"plugins/sdk-channel-inbound",
"plugins/sdk-channel-ingress",
"plugins/message-presentation"
]
},
{
"group": "Templates",
"pages": [
"reference/AGENTS.default",
"reference/templates/AGENTS",
"reference/templates/BOOT",
"reference/templates/BOOTSTRAP",
"reference/templates/HEARTBEAT",
"reference/templates/IDENTITY",
"reference/templates/SOUL",
"reference/templates/TOOLS",
"reference/templates/USER"
]
},
{
"group": "Technical reference",
"pages": [
"agent-runtime-architecture",
"reference/wizard",
"reference/token-use",
"reference/secretref-credential-surface",
"reference/openclaw-ai",
"reference/prompt-caching",
"reference/api-usage-costs",
"reference/transcript-hygiene",
"reference/memory-config",
"reference/rich-output-protocol",
"reference/session-management-compaction",
"date-time"
]
},
{
"group": "Concept internals",
"pages": [
"concepts/typebox",
"concepts/markdown-formatting",
"concepts/typing-indicators",
"concepts/usage-tracking",
"concepts/timezone"
]
},
{
"group": "Project",
"pages": [
"reference/application-modernization-plan",
"reference/credits"
]
},
{
"group": "Release and CI",
"pages": [
{
"group": "Release notes",
"pages": [
"releases/index",
"releases/2026.6.11"
]
},
"maturity/scorecard",
"maturity/taxonomy",
"reference/RELEASING",
"reference/full-release-validation",
"reference/release-performance-sweep",
"reference/test",
"ci",
"help/scripts"
]
}
]
},
{
"tab": "Help",
"groups": [
{
"group": "Start here",
"pages": [
"help/index",
"help/troubleshooting",
"help/debugging"
]
},
{
"group": "FAQ",
"pages": [
"help/faq",
"help/faq-first-run",
"help/faq-models"
]
},
{
"group": "Testing",
"pages": [
"help/testing",
"help/testing-updates-plugins",
"help/testing-live"
]
},
{
"group": "Diagnostics",
"pages": [
"help/environment",
"diagnostics/flags",
"debug/node-issue"
]
},
{
"group": "Community and meta",
"pages": [
"start/lore",
"start/hubs",
"start/docs-directory"
]
}
]
}
]
}
]
}
}