跳到主要内容
CNode

开源了 Panerelay:让 AI Agent 只控制你授权的浏览器标签页(Node.js + Native Messaging)

分享
FF-loat发布于 3 个月前最后回复 14 天前
220710

大家好,最近在做一个开源项目 Panerelay。目标很具体:让 AI Agent 在你日常使用、已经登录的 Chrome / Edge / Firefox 里工作,但只能触达你明确授权的标签页。

这篇帖子本身,就是在我已登录的 CNode 标签页里明确授权后,由 Agent 通过 Panerelay 发布的,也算一次真实链路的自测。

为什么做它

常见的浏览器自动化通常要么启动一个单独的浏览器,要么需要重复登录、导入 Cookie。对个人开发者来说不够顺手;对包含后台、邮箱等登录态的日常浏览器来说,权限边界又不能含糊。

我想要的是:

  • 直接复用现有浏览器和登录态,不导出 Cookie
  • 用户逐标签页授权,随时可以撤销
  • 浏览器焦点不等于授权,Agent 切换目标也不会影响用户当前看的标签页
  • 多个 Agent 可以接入,但修改页面前必须拿到当前控制权
  • 不支持或未授权的操作直接失败,不偷偷降级绕过

架构

AI Agent → agent-browser CLI / MCP → Panerelay Bridge
                                          ↕ Native Messaging
本地 Agent ← 浏览器侧边栏 ← Panerelay Extension ↔ 已授权标签页

项目是 Node.js 20+ / TypeScript / pnpm monorepo,主要拆成三层:

  1. agent-browser 继续负责 snapshot、locator、输入、等待、截图等自动化语义;
  2. 本地 Bridge 负责路由、会话和权限策略;
  3. Extension 负责让授权、受控状态和撤销入口始终对用户可见。

安全上我刻意把“站点权限”“标签页授权”“当前控制租约”分开处理。凭证留在浏览器里,本地链路默认也不记录页面正文、Cookie、截图和请求体。

快速试用

安装浏览器扩展后,本地只需要:

npx --yes @panerelay/setup
agent-browser --provider panerelay tab list

然后从扩展里授权当前标签页,就可以继续使用 agent-browser 原有的命令或 MCP 接入。Chrome / Edge 已可用,Firefox 也在做现有会话的 WebDriver 接入。

项目还在早期阶段,特别想听听 CNode 同学对这几个问题的看法:

  1. “逐标签页授权 + 独占控制租约”会不会太重?
  2. 大家在 Node.js + Native Messaging 的跨平台安装上踩过哪些坑?
  3. 你最希望 Agent 在现有登录态浏览器里完成什么工作流?

欢迎拍砖,也欢迎直接提 issue。

查看回复

回复 (2)

Y
yuan_dev#214 天前

Native Messaging 的 host 清单在 Windows 注册表和 macOS 的 Library 路径上经常对不齐,npx setup 如果没把扩展 ID 和 host name 写死,重装扩展后旧 host 还会占着端口或名字。另外 agent-browser 默认会截图,你们说本地链路不落页面正文和截图,那截图是只留在 Agent 进程内存里,还是会写到 CLI 的输出目录?这点和“不记录页面内容”最好在安全说明里写清楚。

G
gifcompressor#115 天前

“站点权限、标签页授权、控制租约”拆开很合理,尤其是浏览器焦点不等于授权这一点。想了解两个边界:多 Agent 同时请求同一标签页时,租约是否有超时和断线回收?标签页在授权后跳转到另一个域名,原授权会立即失效吗?这两处如果在扩展 UI 里给出明确状态,用户会更容易判断 Agent 现在能做什么。

参与回复

登录后即可参与回复。登录