byob(Bring Your Own Browser)

让 AI 编码助手直接操作你已登录的 Chrome,无需新开无头浏览器。

源仓库
wxtsky/byob
Star 数
★ 145
最近更新
1 个月前
License
MIT
主语言
JavaScript

30 秒速览

运行形态
MCP 服务器浏览器扩展Agent 插件 / 技能
可在哪里用
通用 · 跨平台Codex · Claude Code
费用
免费,无需付费服务
上手难度
中 · 需要几步配置
开始前需要
Node.js ≥ 20bunChrome、Edge 或 BraveClaude Code 或其他兼容 MCP 的客户端Shell / 命令行本地文件系统MCP Server
典型场景
开发者让 Claude Code 打开已登录的 GitHub 或 Gmail,读取未读数量或抓取页面内容来继续写代码
不适合
  • 需要在无图形界面的服务器或容器里跑浏览器的团队
  • 不愿让工具接触已登录个人账号(邮箱、银行等)的用户
  • 期望装完即用、不需要手动加载扩展并重启 Chrome 的人

这个 Agent 能做什么,适合哪些场景?

byob 是一个本地 MCP 服务器,把 AI 编码工具(Claude Code、Cursor、Cline、Windsurf、Codex CLI 等)接到你日常使用的真实 Chrome 上。它由三部分组成:stdio 的 MCP 服务 byob-mcp、经 Unix 套接字通信的本地进程 byob-bridge,以及一个通过 Chrome Native Messaging 与 bridge 通信的 MV3 扩展;扩展再用 Chrome DevTools Protocol 操作标签页。v0.5 提供 25 个工具,覆盖快照、查找、点击、输入、按键、滚动、拖拽、文件上传、读取正文、截图/PDF、标签页管理、控制台与网络抓包、Cookie 与存储、对话框、设备模拟、剪贴板和批量步骤等。因为用的是你已登录的浏览器,它天然能通过登录态页面和多数机器人检测,但代价是需要在本地安装扩展、手动加载并完全重启 Chrome。所有通信都在本机进行,扩展脚本运行在隔离世界(isolated world),不会向页面暴露 window 全局变量或 data 属性。

AI 客户端通过 stdio 调用 byob-mcp,后者把请求转给 byob-bridge,再由 Native Messaging 送到 Chrome 扩展,扩展用 Chrome DevTools Protocol 在你的标签页里执行动作。元素定位支持快照产生的 ref(如 [ref=e12])、CSS 选择器或 x/y 坐标;browser_snapshot 输出带 ref 的无障碍大纲,browser_find 可按 role+name、文本、label、placeholder、testId 查找并顺带点击或填写。browser_click/type/press_key/hover/select/scroll/drag/upload_file 使用真实鼠标与键盘事件,并自动等待元素可见、稳定、可点击,同时回报导航、新标签页和 JS 对话框。browser_read 可输出文本、markdown、html、链接或表格;browser_screenshot 返回视口、整页、元素或裁剪区域图像给模型,也能导出 PDF。browser_network 可记录流量(summary/JSON/HAR)或拦截、阻断、篡改请求;browser_storage 读写 Cookie 与 local/session storage;browser_emulate 模拟设备、深色模式、地理位置、时区、语言、离线和自定义请求头。browser_evaluate 默认关闭,需设置 BYOB_ALLOW_EVAL=1 才可运行页面 JS,且每次调用都会记审计日志。

  1. 开发者让 Claude Code 打开已登录的 GitHub 或 Gmail,读取未读数量或抓取页面内容来继续写代码
  2. 需要登录态的数据采集:让 agent 读取 Twitter/X 时间线并总结前几条,或搜索后点击第一条结果再读全文
  3. 前端调试:在真实页面上复现 bug,用 browser_network 导出 HAR、用 browser_console 查看报错、用 browser_inspect 取元素盒模型与 Web Vitals
  4. 测试表单流程:用 browser_batch 一次填完整张表单并提交,再截图确认结果
  5. 做视觉与文档产出:对 example.com 截图或导出 PDF 作为交付物
  6. 需要复用现有登录 Cookie 做脚本验证(README 举例“grab my GitHub session cookie so I can curl with it”)

如何安装或部署这个 Agent?

前置条件:Node.js ≥ 20、bun、Chrome/Edge/Brave,以及任意兼容 MCP 的 AI 工具。

推荐用一键脚本(Windows 请在 Git Bash 或 MSYS2 中执行):

curl -fsSL https://raw.githubusercontent.com/wxtsky/byob/main/install.sh | bash

脚本会检查依赖、克隆仓库、构建并交互式注册 MCP;未装 bun 时会提示用系统原生安装器安装。可用 BYOB_INSTALL_DIR 改变安装目录(默认 ~/byob)。

手动安装:

git clone https://github.com/wxtsky/byob
cd byob
bun install
bun run setup

setup 会依次询问输出语言(English / 中文)、生成唯一扩展密钥、构建扩展、写入 Chrome 与 byob 通信的配置,并让你多选要接入的 AI 工具(Claude Code 会装自带插件,其他客户端写入 MCP 配置)。之后还需手动三步:(1) 打开 chrome://extensions,开启“开发者模式”,点“加载已解压的扩展程序”,选择终端打印的目录,如 /your/path/to/byob/packages/extension/output/chrome-mv3;(2) 完全退出 Chrome(macOS 用 ⌘Q)再重开,Chrome 只在启动时读取 Native Messaging 配置;(3) 等 setup 打印 ✓ bridge online,或稍后运行诊断:

bun run doctor

若跳过了注册步骤,也可手动注册 MCP,例如 Claude Code:

claude mcp add byob -s user -- /path/to/tsx /path/to/byob-mcp.ts

或安装 Claude Code 插件:

claude plugin marketplace add wxtsky/byob
claude plugin install byob@byob --scope user

如何使用这个 Agent?

安装并确认 bridge 在线后,在新开的 AI 会话里直接用自然语言提出任务,例如“use byob to read my Twitter timeline and summarize the top 5 posts”。

安全配置可按站点设置允许/拒绝清单(仅由你设置,agent 不能改):

bun run policy --deny "**.chase.com" "mail.proton.me"
bun run policy --allow "**.github.com"
bun run policy --clear-allow --clear-deny
bun run policy --allow-file on

如需让 agent 运行页面 JavaScript,在 MCP 配置中启用(仅在你信任的场景下):

# Claude Code 手动注册时追加
claude mcp add byob -s user -e BYOB_ALLOW_EVAL=1 -- /path/to/tsx /path/to/byob-mcp.ts
{
  "mcpServers": {
    "byob": {
      "command": "/path/to/tsx",
      "args": ["/path/to/byob-mcp.ts"],
      "env": { "BYOB_ALLOW_EVAL": "1" }
    }
  }
}

日常维护命令均在仓库根目录运行:

bun run doctor     # 检查哪一步没通
bun run bridges    # 列出运行中的 bridge 进程
bun run logs       # 跟踪 bridge 日志
bun run unsetup    # 卸载清理

常见报错对照:No live bridge(Chrome 未运行或扩展被禁用)、cdp_attach_failed(该标签页开着 DevTools)、url_forbidden(被站点策略拦截)、stale_ref(页面已跳转,需重新快照)、element_covered(有弹层遮挡,可关闭或 force:true)。

这个 Agent 有哪些优点和局限?

优点
  • 直接复用你已登录的 Chrome,无需复制 Cookie 或重新登录,也能以真实人类浏览器身份通过较多机器人检测
  • 采用扩展 + Native Messaging,而不是开放远程调试端口,因此没有“允许远程调试”弹窗,其他本机程序也无法通过该端口劫持浏览器
  • 安全设计具体:browser_evaluate 默认关闭并逐次审计、密码/OTP/卡号/邮箱字段值以 [redacted] 回传、chrome:// 与 file:// 及 Google/MS/Apple 登录页默认拦截、套接字 0600 与目录 0700、零出站流量
  • 动作会自动等待元素可见/稳定/可点击,并主动回报导航、新标签页和对话框,agent 不必轮询;Ctrl+C 可端到端取消
  • 25 个工具覆盖面广,从无障碍快照 ref 定位到网络 HAR 导出、请求拦截、设备模拟、截图/PDF,基本覆盖真实页面调试与自动化
局限
  • 安装链路偏长:需 Node.js ≥ 20、bun、构建扩展、chrome://extensions 加载解压扩展,并且必须完全退出重启 Chrome,Claude Code 插件用户还需注意不要重复注册第二个 MCP 服务
  • 操作期间 Chrome 会在活动标签页显示“byob is debugging this browser”提示条,这是浏览器安全特性,无法关闭
  • 标签页若开着 DevTools 就无法 attach(cdp_attach_failed),页面跳转后旧 ref 会失效需重新快照,存在明确的操作约束
  • 升级破坏性:0.5 版本工具名称相比 0.4 有变化,已有脚本或提示词需要同步修改
  • 项目仍标注 v0.5,README 自述“拥有对浏览器的广泛访问权限”,只应在自有设备和账号上使用;无可审计的第三方安全评估或托管版本

这个 Agent 与同类方案有什么区别?

README 明确对比了三类替代方案:WebFetch(看不到登录态页面、难过机器人检测)、Headless Puppeteer(需手工搬运 Cookie、setup 耗时以小时计、可能有云成本)、以及通过 Chrome 远程调试端口附加的工具(DevTools MCP、agent-browser、Playwright --cdp)——后者需要开放调试端口,并且每次连接都会弹出“允许远程调试?”提示,本机其他程序也可能借该端口劫持你已登录的浏览器。byob 以扩展方式规避了调试端口问题,代价是需要手动加载扩展并重启 Chrome。

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 形态 / 费用 Star 最近更新 主语言 完整支持的平台
byob(Bring Your Own Browser) 当前 48 · 缺口较多 MCP 服务器免费 ★ 145 1 个月前 JavaScript Codex · Claude Code
BrowserTools MCP 81 · 表现良好 — ★ 7.3k 9 天前 TypeScript Claude Code
Interceptor 57 · 缺口较多 命令行工具免费 ★ 603 今天 TypeScript Codex · Claude Code · Claude.ai
OpenTabs 49 · 缺口较多 命令行工具免费 + 模型费 ★ 1k 3 个月前 TypeScript Claude Code

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
缺口较多
48/ 100 五分制 2.4 / 5
信任安全 11/29
可靠稳定 8/14
适用触发 10/18
规范维护 9/18
有效结果 7/13
证据核验 3/8
查看各维度的扣分理由
信任安全11 / 29 · 1.9/5

README 明确说明 browser_evaluate 默认关闭、chrome:// 与登录页默认拦截、按站点 allow/deny 由用户设定、密码/OTP/卡号字段脱敏、socket 0600、零外联流量,这些是实质性的最小权限与敏感数据处理证据,故 least_privilege 与 sensitive_data_handling 给 1-2 分。但扣分点明确:安装脚本以 curl | bash 方式执行远程代码,属于高权限默认路径;工具集包含 browser_storage 读取 cookie、browser_clipboard、browser_upload_file、browser_network 拦截改写等强能力,README 自身也承认“broad access to your browser”,且未提供逐次操作的用户确认机制(user_confirmation 仅 1 分)。依赖安全方面,仓库仅给出根 package.json(sharp 0.34.5 为 devDependency),无 lockfile、无依赖审计或 SBOM 证据,故 dependency_security 记 0。外部副作用(提交表单、点击、下载)无 dry-run 或影响预览,rollback 仅靠 unsetup 与 policy 重置,缺少操作级撤销,均记 1。来源归属仅 README 与 LICENSE 署名 wxt,发布者未经校验,记 1。

可靠稳定8 / 14 · 2.9/5

README 对自动等待、动作效果回报、对话框不挂起、端到端取消、睡眠唤醒恢复等行为描述具体,且与工具表一致,self_consistency 给 2。失败信息有专门 troubleshooting 表与 doctor 命令,错误码(stale_ref、element_covered、url_forbidden 等)明确,failure_messages 给 2。但依赖可用性证据薄弱:要求 Node ≥20 与 bun,安装脚本会代为安装 bun,仓库内无 lockfile 固定版本,跨平台仅以表格声明,故 dependency_availability 记 1。

适用触发10 / 18 · 2.8/5

面向 Claude Code、Cursor、Cline、Windsurf、Codex 等多客户端给出分别的配置示例,场景覆盖读取、点击、截图、表单填写,audience_and_scenarios 给 2。能力边界写得清楚(eval 默认关闭、站点策略、登录页拦截、Chrome 调试横幅不可抑制),capability_boundaries 给 2。但触发精度不足:工具以自然语言由模型选择调用,无显式确认门槛或危险动作分级,trigger_precision 记 1。环境适配覆盖 macOS/Windows/Linux 与 Chrome/Edge/Brave,但 Windows 需 Git Bash/MSYS2,属部分适配,environment_fit 给 2。

规范维护9 / 18 · 2.5/5

README 结构清晰,含安装、工具表、架构图、命令、安全、排障、平台说明,information_architecture 与 install_notes 均给 2(安装步骤分步且含手动路径)。examples_and_faq 有示例语句与排障表,给 2。license 为完整 MIT 文本,给 2。但命名稳定性扣分:README 自述 0.4 升级到 0.5 工具名变更,naming_stability 记 1。known_limitations 仅零散提及(调试横幅、需完全重启 Chrome),无集中限制清单,记 1。versioning_changelog 仅徽章与链接指向 CHANGELOG.md,文件本身未在证据中,记 1。maintenance_responsibility 仅有单一作者署名,无治理、安全披露渠道或维护承诺,记 1。

有效结果7 / 13 · 2.7/5

输出可用性较好:快照带 ref、截图回传模型、读取支持 markdown/表格,output_usability 给 2。相对 WebFetch 与 headless 的对比表说明其边际价值(复用已登录真实浏览器、免调试端口),marginal_value 给 2。但成本收益扣分:需 bun、需加载未打包扩展、需完全重启 Chrome、Chrome 会显示调试横幅,安装与维护成本高于 README 宣称的“~5 分钟”,且强权限带来的风险成本未量化,cost_benefit 记 1。

证据核验3 / 8 · 1.9/5

claim_traceability 仅部分可追溯:工具 schema 指向 shared/src/tools.ts,但该文件不在证据中;性能与安全声明多为 README 自述,记 1。cross_source_corroboration 仅有 README、LICENSE、package.json 三份文件,package.json 可佐证版本 0.5.0 与脚本存在,但无测试或代码佐证安全声明,记 1。fact_inference_separation 方面 README 将“已测试端到端”等结论与描述混排,未区分已验证事实与设计意图,记 1。

风险与缓解建议
  • 源码中未见:依赖安全审查安装前固定版本并做一次依赖扫描(如 npm audit、pip-audit);优先放在容器里运行。
  • 推荐安装方式为 curl | bash 执行远程脚本,属于高权限默认路径;建议先审阅 install.sh 再执行,或改用 git clone 手动安装。
  • 工具集包含读取 cookie/存储、剪贴板读写、文件上传、网络拦截改写等强能力,README 自述对浏览器有广泛访问权,仅应在自有设备与账号上使用。
  • 缺少逐次操作的用户确认机制,模型可自主提交表单、点击与下载;建议配合站点 allow/deny 策略收紧范围。
  • 仓库证据中无 lockfile 与依赖审计信息,依赖安全无法静态确认。
  • 发布者身份未经校验,维护责任与安全披露渠道不明确。
证据充分度:低 评估于 2026年11月5日 审查版本 f674a76beac7
查看完整评分方法 →

常见问题

它会把我的浏览数据传到云端吗?
不会。README 声明所有通信都在本机进行,零出站网络流量,没有分析、心跳或崩溃上报;Chrome 关闭时所有 byob 进程自动退出。但请注意 agent 读取到的页面内容会作为工具返回交给你的 AI 模型,这部分按你所用的模型服务条款处理。
为什么装完后工具完全没反应?
最常见原因是 Chrome 没有完全重启。Chrome 只在启动时读取 Native Messaging 配置,仅关闭标签页或窗口不够,需要 macOS 上 ⌘Q 或 Windows 上关闭全部窗口后重开。仍不通时运行 bun run doctor,它会在每个 ✗ 下给出可执行的修复建议(如扩展 ID 不匹配)。
agent 能读到我输入的密码或银行卡号吗?
不能。README 说明 password / OTP / 卡号 / 邮箱输入框中的值会以 [redacted] 回传,不会发送给模型。同时 chrome://、file:// 以及 Google/MS/Apple 登录页默认被拦截,JS 确认框也不会被自动接受。
我能否限制它只访问某些网站?
可以,通过 bun run policy 设置按站点的 allow/deny 清单,模式支持 example.com、*.example.com、**.example.com 和 *,deny 优先于 allow,且一旦设置非空 allow 清单即变为仅允许白名单。该策略在 attach 到标签页时强制执行,因此对所有工具生效。
支持哪些浏览器和平台?
README 列出 Chrome、Edge、Brave;macOS、Windows、Linux 均支持,Windows 上会自动把 Native Messaging host 写入注册表。browser_evaluate 需要显式设置 BYOB_ALLOW_EVAL=1 才会启用。
在 GitHub 查看 ↗ 安装 ↓

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents