{
  "title": "`openclaw browser`",
  "content": "Manage OpenClaw’s browser control server and run browser actions (tabs, snapshots, screenshots, navigation, clicks, typing).\n\n* Browser tool + API: [Browser tool](/tools/browser)\n* Chrome extension relay: [Chrome extension](/tools/chrome-extension)\n\n* `--url <gatewayWsUrl>`: Gateway WebSocket URL (defaults to config).\n* `--token <token>`: Gateway token (if required).\n* `--timeout <ms>`: request timeout (ms).\n* `--browser-profile <name>`: choose a browser profile (default from config).\n* `--json`: machine-readable output (where supported).\n\n## Quick start (local)\n\nProfiles are named browser routing configs. In practice:\n\n* `openclaw`: launches/attaches to a dedicated OpenClaw-managed Chrome instance (isolated user data dir).\n* `chrome`: controls your existing Chrome tab(s) via the Chrome extension relay.\n\nUse a specific profile:\n\n## Snapshot / screenshot / actions\n\nNavigate/click/type (ref-based UI automation):\n\n## Chrome extension relay (attach via toolbar button)\n\nThis mode lets the agent control an existing Chrome tab that you attach manually (it does not auto-attach).\n\nInstall the unpacked extension to a stable path:\n\nThen Chrome → `chrome://extensions` → enable “Developer mode” → “Load unpacked” → select the printed folder.\n\nFull guide: [Chrome extension](/tools/chrome-extension)\n\n## Remote browser control (node host proxy)\n\nIf the Gateway runs on a different machine than the browser, run a **node host** on the machine that has Chrome/Brave/Edge/Chromium. The Gateway will proxy browser actions to that node (no separate browser control server required).\n\nUse `gateway.nodes.browser.mode` to control auto-routing and `gateway.nodes.browser.node` to pin a specific node if multiple are connected.\n\nSecurity + remote setup: [Browser tool](/tools/browser), [Remote access](/gateway/remote), [Tailscale](/gateway/tailscale), [Security](/gateway/security)",
  "code_samples": [
    {
      "code": "## Profiles\n\nProfiles are named browser routing configs. In practice:\n\n* `openclaw`: launches/attaches to a dedicated OpenClaw-managed Chrome instance (isolated user data dir).\n* `chrome`: controls your existing Chrome tab(s) via the Chrome extension relay.",
      "language": "unknown"
    },
    {
      "code": "Use a specific profile:",
      "language": "unknown"
    },
    {
      "code": "## Tabs",
      "language": "unknown"
    },
    {
      "code": "## Snapshot / screenshot / actions\n\nSnapshot:",
      "language": "unknown"
    },
    {
      "code": "Screenshot:",
      "language": "unknown"
    },
    {
      "code": "Navigate/click/type (ref-based UI automation):",
      "language": "unknown"
    },
    {
      "code": "## Chrome extension relay (attach via toolbar button)\n\nThis mode lets the agent control an existing Chrome tab that you attach manually (it does not auto-attach).\n\nInstall the unpacked extension to a stable path:",
      "language": "unknown"
    }
  ],
  "headings": [
    {
      "level": "h2",
      "text": "Common flags",
      "id": "common-flags"
    },
    {
      "level": "h2",
      "text": "Quick start (local)",
      "id": "quick-start-(local)"
    },
    {
      "level": "h2",
      "text": "Profiles",
      "id": "profiles"
    },
    {
      "level": "h2",
      "text": "Tabs",
      "id": "tabs"
    },
    {
      "level": "h2",
      "text": "Snapshot / screenshot / actions",
      "id": "snapshot-/-screenshot-/-actions"
    },
    {
      "level": "h2",
      "text": "Chrome extension relay (attach via toolbar button)",
      "id": "chrome-extension-relay-(attach-via-toolbar-button)"
    },
    {
      "level": "h2",
      "text": "Remote browser control (node host proxy)",
      "id": "remote-browser-control-(node-host-proxy)"
    }
  ],
  "url": "llms-txt#`openclaw-browser`",
  "links": []
}