Chrome 扩展(浏览器中继)
OpenClaw Chrome 扩展允许 agent 控制你现有的 Chrome 标签页(你正常使用的 Chrome 窗口),而不是启动一个由 openclaw 管理的单独 Chrome 配置文件。 附加/分离通过单个 Chrome 工具栏按钮完成。它是什么(概念)
包含三部分:- 浏览器控制服务(Gateway 或节点):agent/工具调用的 API(通过 Gateway)
- 本地中继服务器(loopback CDP):在控制服务器和扩展之间桥接(默认地址
http://127.0.0.1:18792) - Chrome MV3 扩展:使用
chrome.debugger附加到活动标签页,并将 CDP 消息传输到中继
browser 工具接口控制附加的标签页(选择正确的配置文件)。
安装 / 加载(未打包)
- 将扩展安装到一个稳定的本地路径:
- 打印已安装的扩展目录路径:
- Chrome →
chrome://extensions
- 启用“开发者模式”
- 点击“加载已解压的扩展程序” → 选择上一步打印的目录
- 固定扩展按钮。
更新(无需构建步骤)
扩展作为静态文件包含在 OpenClaw 版本(npm 包)中,没有单独的“构建”步骤。 升级 OpenClaw 后:- 重新运行
openclaw browser extension install,刷新安装在 OpenClaw 状态目录下的文件。 - Chrome →
chrome://extensions→ 点击扩展的“重新加载”。
使用方法(设置 Gateway Token 一次)
OpenClaw 自带一个名为chrome 的内置浏览器配置文件,目标是默认端口上的扩展中继。
首次附加前,打开扩展选项并设置:
端口(默认18792)Gateway token(必须与gateway.auth.token/OPENCLAW_GATEWAY_TOKEN匹配)
- CLI:
openclaw browser --browser-profile chrome tabs - Agent 工具:
browser,参数profile="chrome"
自定义 Gateway 端口
如果使用自定义 Gateway 端口,中继端口自动计算: 扩展中继端口 = Gateway 端口 + 3 例如:若gateway.port: 19001,则:
- 扩展中继端口为:
19004(Gateway 端口 + 3)
附加 / 分离(工具栏按钮)
- 打开你想让 OpenClaw 控制的标签页。
- 点击扩展图标。
- 附加时徽章显示
ON。
- 附加时徽章显示
- 再次点击即可分离。
它控制哪个标签页?
- 它不会自动控制“你当前看的标签页”。
- 它只控制你通过点击工具栏按钮明确附加的标签页。
- 要切换控制标签页:打开另一个标签页并点击扩展图标。
徽章与常见错误
ON:已附加,OpenClaw 可驱动该标签页。…:正在连接本地中继。!:中继不可达或未认证(最常见原因:中继服务器未运行,或者缺少/错误的 Gateway token)。
! 时:
- 确保 Gateway 正在本地运行(默认配置),或者如果 Gateway 在其他机器,需在本机运行一个节点主机。
- 打开扩展选项页面,会自动验证中继可达性和 Gateway token 认证。
远程 Gateway(使用节点主机)
本地 Gateway(与 Chrome 同一台机器)— 通常无需额外步骤
如果 Gateway 与 Chrome 在同一台机器,它会在回环地址启动浏览器控制服务并自动启动中继服务器。扩展连接本地中继,CLI/工具请求发送到 Gateway。远程 Gateway(Gateway 在其他机器)— 需启动节点主机
如果 Gateway 在另一台机器,需在运行 Chrome 的机器上启动一个节点主机。Gateway 会将浏览器操作代理到该节点;扩展和中继保持在浏览器机器本地。 若有多个节点连接,可通过gateway.nodes.browser.node 固定其中一个,或设置 gateway.nodes.browser.mode。
沙箱(工具容器)
如果你的 agent 会话处于沙箱环境(agents.defaults.sandbox.mode != "off"),browser 工具可能会受限:
- 默认情况下,沙箱会话通常针对沙箱浏览器(
target="sandbox"),而非宿主机的 Chrome。 - Chrome 扩展中继接管需控制宿主机的浏览器控制服务。
- 最简单:从非沙箱会话/agent 使用扩展。
- 或允许沙箱会话控制宿主浏览器:
browser 时用 target="host"。
调试命令:openclaw sandbox explain
远程访问提示
- 保持 Gateway 和节点主机在同一 tailnet 内,避免将中继端口暴露给局域网或公共互联网。
- 有意对节点配对;若不希望远程控制可禁用浏览器代理路由(
gateway.nodes.browser.mode="off")。
“扩展路径”工作原理
openclaw browser extension path 打印已安装的扩展文件所在磁盘目录。
CLI 故意不打印 node_modules 目录路径。始终先运行 openclaw browser extension install,将扩展复制到 OpenClaw 状态目录中的稳定位置。
若移动或删除此安装目录,Chrome 会将扩展视为损坏,直到从有效路径重新加载。
安全影响(必读)
该功能强大且风险较高。请视为赋予模型“在你浏览器里动手操作”的权限。- 扩展使用 Chrome 调试 API (
chrome.debugger)。附加后,模型可以:- 点击/输入/导航该标签页
- 读取页面内容
- 访问该标签页登录的任意会话权限
- 这不是隔离环境,不像单独 openclaw 管理的专用配置文件。
- 若附加到你的日常使用配置文件/标签页,即等于授权访问该账户状态。
- 优先使用专用的 Chrome 配置文件(与个人浏览隔离)来使用扩展中继。
- 保持 Gateway 和节点主机仅限 tailnet 内访问,依赖 Gateway 认证和节点配对。
- 避免在局域网(
0.0.0.0)或公共(Funnel)暴露中继端口。 - 中继阻止非扩展来源访问,且
/cdp和/extension均需 Gateway token 验证。