做了一个 chrome 插件,让 agent 自动化你的浏览器

7 月 29 日
 cobiao

独立开发者,做了个 Chrome 扩展 WebCLI ,刚上架商店,来求点真实反馈。

我平时工作学习基本就在 terminal 和浏览器之间,一直想把浏览器这边的重复操作也自动化掉。类似的插件试了一圈,要么太重,要么功能太受限,干脆自己写一个,顺便当作学习。

它做的事很简单: 把你登录的 Chrome 变成外部 AI agent 的手。本身没有 agent 、没有界面,只有一个显示连接状态的 popup; 外部 agent 你自己搭(Claude Code 、Codex ,或者任何能发 HTTP 请求的东西),WebCLI 只负责执行。

一共 25 个工具,开关标签页、读页面、点击输入、搜索抓链、截图这些,解包不到 300 KB ,基本覆盖手动能在浏览器里做的事。

怎么用,很简单:

  1. webstore 安装 WebCLI
  2. 让你的 agent 安装 skill(npx skills add whitefoxx/webcli-skills -g),然后 agent 就知道怎么使用了

权限有点多(debugger、<all_urls> 这类),慎重,因为它做的就是代替你操作整个浏览器。过几天我整理下代码,然后开源出来,目前只开源了 skills

商店: https://chromewebstore.google.com/detail/webcli/jnhfdhpafndcbppkphhfpecflhogngge

daemon + skill(已开源): https://github.com/whitefoxx/webcli-skills

2102 次点击
所在节点    分享创造
14 条回复
adm4n
7 月 29 日
codex 不是可以直接操作网页吗
bkingfilm
7 月 29 日
点击和普通 input 都好说,富文本编辑框才是坑。X 的撰写框我试过,直接 type 和 execCommand 都会被它自己的编辑器状态吞掉,最后只有逐段 insertText 加两次 insertParagraph 才稳。通用工具盖不住这类站,估计得一个一个单独适配。
nanyong0627
7 月 29 日
claude code 有官方的浏览器插件
codex 能直接操作浏览器
有点没看明白这个能在这俩之外额外干点啥
cobiao
7 月 29 日
@adm4n 对,Codex 官方那个扩展做的是同一件事,重度用 Codex 的话它更顺手。我这个的区别是不绑定 agent ,25 个操作走本地 daemon 暴露,Claude Code 、自己写的脚本、cron 都能调。最初做它其实就是想自己学一遍,过几天打算开源出来。
cobiao
7 月 29 日
@nanyong0627 claude for chrome 是挺好用的,我自己也在用. 我自己做一个一方面是为了学习,一方面也是想做一个所有 agent 都能使用的,还有一个原因是目前这种通用工具真正去执行的时候既费时又耗 tokens,我想在目前 generic 工具的基础上再套一层适配各个站点的能力,比如让 agent 使用 generic 能力为 V2EX 生成一个适配脚本,以后直接调用执行,不需要额外 tokens. @bkingfilm 刚刚也提到了这一点
cobiao
7 月 29 日
@bkingfilm 富文本确实是最难的一块。我的做法是不去跟编辑器抢 DOM,而是用它自己的输入协议跟它说话。

先把 selection 放到目标位置(替换就 selectNodeContents 全选,追加就 collapse 到末尾),然后派一个合成的 beforeinput,带 inputType: 'insertText' 和 data 。Lexical / Slate / ProseMirror / Draft 这些受控编辑器都靠这个事件更新自己的 model 。关键是看它有没有 preventDefault():取消了就说明编辑器打算自己把内容写进去,那我什么都不做,不去 clobber 它;没取消才自己写 innerText 再补一个 input 。你说的 execCommand 那条路留着当兜底,合成事件被 isTrusted 挡掉的站确实还有。

普通 input 也有个类似的坑:直接 el.value = 会被 React 的脏值检测吃掉,得 HTMLInputElement.prototype 上取原生 setter 来调,再补 input + change 。

我目前只验证到单段文本,你说的多段 + 两次 insertParagraph 那种没专门处理。所以 type_into 会把写完之后的实际内容 final_value 返回给 agent,让它自己看得见有没有写进去,而不是默默失败。要是你手上有能打穿它的站,欢迎丢给我。
fivge
7 月 29 日
cobiao
7 月 29 日
@fivge 谢谢分享
supermama
7 月 29 日
最近阿里好像也出了一个,可以让 ai 控制浏览器,但是我还没有去试,不知道是否限定只能用阿里的模型。 不过最近我都是直接让 codex 去接管浏览器。
cobiao
7 月 29 日
@bkingfilm 忘了说了,如果你只是针对 x 发内容的话,有个更简单的方法,直接打开:https://x.com/intent/tweet?text=xxx
cobiao
7 月 29 日
@supermama https://alibaba.github.io/page-agent/ 应该是这个,官方说支持其他模型,应该也是蛮好用的
Nois9527
7 月 30 日
https://browsermcp.io/
我看有一个这个
ydong
7 月 30 日
现在 agent 操作浏览器的工具太多了,没啥亮点很难吸引人,你可以看看 ego-lite 这个浏览器,目前应该是做的最好的了
cobiao
9 月 17 日
谢谢各位,我已经将代码开源了: https://github.com/whitefoxx/web-tools

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1230768

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX