为了让 Agent 直接操作我的本地 Chrome,我做了个 Browser Relay

2026-04-29 08:222阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐
问题描述:

一言以蔽之,现在还没有能让 Agent 操作我的浏览器的方案

比如很多时候我想让 Agent 帮我看一个网页、点几个按钮、抓一下登录后的内容,结果就会遇到这些问题:

  • Playwright / Puppeteer 默认是一个全新的浏览器环境,没有我的登录态。
  • 云浏览器就不用说了,完全没用

有些网站就是只有你本机 Chrome 里才是完整可用的:cookie、localStorage、扩展、登录态,全都在里面。之前尝试过几个项目:

  • openclaw-broswer-relay: 可以做到,但是只有 openclaw 能用
  • dotobot: 可以做到但是要连接别人服务器,而且只能读,不能操作浏览器
  • agent-reach: 专注于获取信息,而不是操作浏览器
  • opencli/opencli-rs: 把网站 cli 化,但很多时候我要的不是反复操作某个网页,就是要临时用各个网页

所以我做了个小东西,叫 Browser Relay

它的作用很简单:把你本机 Chrome 接给任意 AI Agent。

架构大概是这样:

任意 AI Agent ↓ HTTP API / MCP 本机 Relay Server ↓ WebSocket Chrome Extension ↓ CDP 你的真实 Chrome 标签页

它能做这些事:

  • 读取当前网页内容,输出成 Agent 友好的文本快照
  • 点击按钮、输入文字、提交表单
  • 滚动页面、截图
  • 执行 JS
  • 保留你的真实浏览器登录态、cookie、localStorage、扩展环境

也就是说,Claude Code、Cursor、Codex、Windsurf,或者你自己写的 Agent,只要能调 HTTP 都能用。为此我还专门提供了 skills。

使用分三步,先安装:

npm install -g @linsoai/browser-relay browser-relay status

安装 Chrome 扩展:

browser-relay path chrome://extensions 打开开发者模式 Load unpacked 选择 browser-relay 的 extension 目录

安装 skill,根据提示执行 npx skills 命令安装到对应的 agent 里:

browser-relay skill

然后就可以愉快地让 agent 操作你自己的浏览器了

------------补充-----------

评论里大家提到的东西我之前有用过的,也有去试用的,统一回复下。

  • playwright 类方案,试了,都会导致浏览器和 tab 顶到前台,如果你有方案不会,请联系我
  • claude in chrome 魔改之类的,首先这东西不开放,其次用法不优雅,没意思。可借鉴,但我不会去用。
  • MCP 这类协议也不在考虑范围内,skill 可以按需加载,MCP 每次都要加载一堆东西,即使用不着,这东西在我这里已经面临淘汰了
  • agent_browser 我也用过,难用,或者说跟我的需求不匹配,我就是要 AI 看到并使用我的浏览器,给它一个单独的浏览器没有任何意义
  • browser-harness 的我还没试,但是友人对比后反馈「这一坨就是狗屎,千万别用」

这个项目马上会开源,其实很简单,就是根据 openclaw-browser-relay 把鉴权那块改了改,加上了更方便的安装和 skill,更加开放更加开箱即用。

下一步应该会加强 agent 操作的友好化,例如操作时减少转义工作,加强操作功能,加强与其他机器的浏览器的连通性


项目已开源:GitHub - reliefeai/browser-relay · GitHub

网友解答:
--【壹】--:

playwright不会,Chrome会!


--【贰】--:

这个好像还真可以 我记得让hermes写了个shared-browser的skill 他可以通过cdp调用你Windows电脑上的chrome浏览器 chrome在wsl里对应了路径好像是 /mnt/c里面 然后可以有个启动命令指定profile持久化的路径 手动登录之后 登录态还有cookies之类的都能持久化 然后工具调用的话应该也是hermes原生的浏览器工具


--【叁】--:

蹲一波使用,我也在搞这个cdp,尝试从wsl里面遥控宿主的windows chrome独立profile来模拟登录


--【肆】--:

刚试了下:

  1. 直接传入我的 profile 会报错 “profile is already in use”
  2. 尝试用 CDP + playwright 会遇到老问题

通过 CDP 连接 Chrome 会需要授权,且一段时间不用下次再用还需要授权,根据我之前的体验大概不到 24 小时就要重新授权一次
Google Chrome 2026-04-27 18.52.461170×680 97.9 KB

我的方式是直接控制 tab 页,不会弹出不会聚焦,不耽误自己使用浏览器。你用你的,它用它的。


--【伍】--:

其实也不是不行,佬也可以体验下我这个捉捉虫,更加开放而且 Agent 友好


--【陆】--:

它操作的时候依然会把浏览器顶到前台吧,不能做到人机共用


--【柒】--:

我今天ai用playwright我切标签切应用,感觉没影响,在公司用Chrome mac老是跳屏幕到浏览器那个桌面


--【捌】--:

刚刚在烦恼这个ai控制怎么弄就刷到了,agent_browser一直桥接断连不懂为什么,试试佬的


--【玖】--:

奇怪,我用的 headless 模式,没有让我授权呀,直接就去操作了


--【拾】--:

Playwright装个扩展,输入key,可以免弹窗


--【拾壹】--:

我前面发现谷歌浏览器的 CDP 可以让 AI 类人操作浏览器,实际也是用的 devtools,导致某些反自动化的网站就会检测到而跳转到错误页面,不知道这个 skills 能不能解决这个问题


--【拾贰】--:

playwright有个扩展模式,可以设置的,然后装个扩展,填key


--【拾叁】--:

这个可以读局域网其他设备里的浏览器吗?和 devtools 一样效果吗,还是只能读页面,snapshot


--【拾肆】--:

这个可以考虑,目前默认是只监听了 localhost 没有开放给本机之外(安全起见)

你在另一台机器启动 relay 的时候修改下 host

BROWSER_RELAY_HOST=0.0.0.0 BROWSER_RELAY_PORT=18795 browser-relay

然后在本地就可以这样去操作:
curl http://192.168.x.x:18795/api/tabs

把要操作的 ip port 告诉 agent 就行


--【拾伍】--: PHP 码农:

奇怪,我用的 headless 模式,没有让我授权呀,直接就去操作了

不需要授权,只要授权给浏览器插件就可以了,这个是通过浏览器插件,和浏览器进行交互的,不是通过 CDP DevTools 之类的交互的


--【拾陆】--:

Claude in Chrome 不能满足吗?

我认为你应该使用的挺不错的CC Patch

image1196×2258 484 KB

甚至更早的
【硬核开源mcp-chrome】一个chrome插件,能让任意chatbot接管你的chrome浏览器


--【拾柒】--:

CDP 的问题是老需要授权,授权是有时效的


--【拾捌】--:

这个可以远程无gui环境里面遥控吗,比如wsl里面遥控宿主机的


--【拾玖】--:

我用的 playwright-cli ,是可以使用已有登录态的,而且我有多个 chrome profile 的情况下,还可以指定使用某个 profile,完全没问题

问题描述:

一言以蔽之,现在还没有能让 Agent 操作我的浏览器的方案

比如很多时候我想让 Agent 帮我看一个网页、点几个按钮、抓一下登录后的内容,结果就会遇到这些问题:

  • Playwright / Puppeteer 默认是一个全新的浏览器环境,没有我的登录态。
  • 云浏览器就不用说了,完全没用

有些网站就是只有你本机 Chrome 里才是完整可用的:cookie、localStorage、扩展、登录态,全都在里面。之前尝试过几个项目:

  • openclaw-broswer-relay: 可以做到,但是只有 openclaw 能用
  • dotobot: 可以做到但是要连接别人服务器,而且只能读,不能操作浏览器
  • agent-reach: 专注于获取信息,而不是操作浏览器
  • opencli/opencli-rs: 把网站 cli 化,但很多时候我要的不是反复操作某个网页,就是要临时用各个网页

所以我做了个小东西,叫 Browser Relay

它的作用很简单:把你本机 Chrome 接给任意 AI Agent。

架构大概是这样:

任意 AI Agent ↓ HTTP API / MCP 本机 Relay Server ↓ WebSocket Chrome Extension ↓ CDP 你的真实 Chrome 标签页

它能做这些事:

  • 读取当前网页内容,输出成 Agent 友好的文本快照
  • 点击按钮、输入文字、提交表单
  • 滚动页面、截图
  • 执行 JS
  • 保留你的真实浏览器登录态、cookie、localStorage、扩展环境

也就是说,Claude Code、Cursor、Codex、Windsurf,或者你自己写的 Agent,只要能调 HTTP 都能用。为此我还专门提供了 skills。

使用分三步,先安装:

npm install -g @linsoai/browser-relay browser-relay status

安装 Chrome 扩展:

browser-relay path chrome://extensions 打开开发者模式 Load unpacked 选择 browser-relay 的 extension 目录

安装 skill,根据提示执行 npx skills 命令安装到对应的 agent 里:

browser-relay skill

然后就可以愉快地让 agent 操作你自己的浏览器了

------------补充-----------

评论里大家提到的东西我之前有用过的,也有去试用的,统一回复下。

  • playwright 类方案,试了,都会导致浏览器和 tab 顶到前台,如果你有方案不会,请联系我
  • claude in chrome 魔改之类的,首先这东西不开放,其次用法不优雅,没意思。可借鉴,但我不会去用。
  • MCP 这类协议也不在考虑范围内,skill 可以按需加载,MCP 每次都要加载一堆东西,即使用不着,这东西在我这里已经面临淘汰了
  • agent_browser 我也用过,难用,或者说跟我的需求不匹配,我就是要 AI 看到并使用我的浏览器,给它一个单独的浏览器没有任何意义
  • browser-harness 的我还没试,但是友人对比后反馈「这一坨就是狗屎,千万别用」

这个项目马上会开源,其实很简单,就是根据 openclaw-browser-relay 把鉴权那块改了改,加上了更方便的安装和 skill,更加开放更加开箱即用。

下一步应该会加强 agent 操作的友好化,例如操作时减少转义工作,加强操作功能,加强与其他机器的浏览器的连通性


项目已开源:GitHub - reliefeai/browser-relay · GitHub

网友解答:
--【壹】--:

playwright不会,Chrome会!


--【贰】--:

这个好像还真可以 我记得让hermes写了个shared-browser的skill 他可以通过cdp调用你Windows电脑上的chrome浏览器 chrome在wsl里对应了路径好像是 /mnt/c里面 然后可以有个启动命令指定profile持久化的路径 手动登录之后 登录态还有cookies之类的都能持久化 然后工具调用的话应该也是hermes原生的浏览器工具


--【叁】--:

蹲一波使用,我也在搞这个cdp,尝试从wsl里面遥控宿主的windows chrome独立profile来模拟登录


--【肆】--:

刚试了下:

  1. 直接传入我的 profile 会报错 “profile is already in use”
  2. 尝试用 CDP + playwright 会遇到老问题

通过 CDP 连接 Chrome 会需要授权,且一段时间不用下次再用还需要授权,根据我之前的体验大概不到 24 小时就要重新授权一次
Google Chrome 2026-04-27 18.52.461170×680 97.9 KB

我的方式是直接控制 tab 页,不会弹出不会聚焦,不耽误自己使用浏览器。你用你的,它用它的。


--【伍】--:

其实也不是不行,佬也可以体验下我这个捉捉虫,更加开放而且 Agent 友好


--【陆】--:

它操作的时候依然会把浏览器顶到前台吧,不能做到人机共用


--【柒】--:

我今天ai用playwright我切标签切应用,感觉没影响,在公司用Chrome mac老是跳屏幕到浏览器那个桌面


--【捌】--:

刚刚在烦恼这个ai控制怎么弄就刷到了,agent_browser一直桥接断连不懂为什么,试试佬的


--【玖】--:

奇怪,我用的 headless 模式,没有让我授权呀,直接就去操作了


--【拾】--:

Playwright装个扩展,输入key,可以免弹窗


--【拾壹】--:

我前面发现谷歌浏览器的 CDP 可以让 AI 类人操作浏览器,实际也是用的 devtools,导致某些反自动化的网站就会检测到而跳转到错误页面,不知道这个 skills 能不能解决这个问题


--【拾贰】--:

playwright有个扩展模式,可以设置的,然后装个扩展,填key


--【拾叁】--:

这个可以读局域网其他设备里的浏览器吗?和 devtools 一样效果吗,还是只能读页面,snapshot


--【拾肆】--:

这个可以考虑,目前默认是只监听了 localhost 没有开放给本机之外(安全起见)

你在另一台机器启动 relay 的时候修改下 host

BROWSER_RELAY_HOST=0.0.0.0 BROWSER_RELAY_PORT=18795 browser-relay

然后在本地就可以这样去操作:
curl http://192.168.x.x:18795/api/tabs

把要操作的 ip port 告诉 agent 就行


--【拾伍】--: PHP 码农:

奇怪,我用的 headless 模式,没有让我授权呀,直接就去操作了

不需要授权,只要授权给浏览器插件就可以了,这个是通过浏览器插件,和浏览器进行交互的,不是通过 CDP DevTools 之类的交互的


--【拾陆】--:

Claude in Chrome 不能满足吗?

我认为你应该使用的挺不错的CC Patch

image1196×2258 484 KB

甚至更早的
【硬核开源mcp-chrome】一个chrome插件,能让任意chatbot接管你的chrome浏览器


--【拾柒】--:

CDP 的问题是老需要授权,授权是有时效的


--【拾捌】--:

这个可以远程无gui环境里面遥控吗,比如wsl里面遥控宿主机的


--【拾玖】--:

我用的 playwright-cli ,是可以使用已有登录态的,而且我有多个 chrome profile 的情况下,还可以指定使用某个 profile,完全没问题