anomalyco/browser-control
Local browser driver for trusted agents: control your existing Chromium browser through a small extension and local relay
Browser Control – 一个让 AI 代理通过 Playwright 控制您真实 Chromium 浏览器的桥梁
它是什么
- 一个轻量级的 Node.js 驱动程序,运行一个本地 relay 和一个浏览器扩展程序。中继接收来自 AI 编码代理(或 CLI)的 Playwright 代码片段,并在用户现有的浏览器配置文件中执行它们——保留已登录的会话、Cookie、扩展程序等。
- 该项目不包含 LLM;它仅提供管道,以便外部代理可以安全地发出浏览器命令。
核心概念
| 概念 | 功能 |
|---|---|
| Relay | 一个微型本地服务器 (127.0.0.1:19989),通过 Chrome DevTools Protocol (CDP) 与扩展程序通信,并按需运行 Playwright 代码。 |
| Extension | npm 包中附带的未打包 Chrome/Brave/Edge/Arc 扩展程序。它授予中继控制标签页、捕获媒体和读取 Cookie 所需的权限。 |
| Session | 一个持久化沙箱,包含单个标签页、JavaScript 状态 (window) 和一个微型日志 (~/.browser-control/sessions/<id>/journal.jsonl)。会话在 CLI 调用之间保持存活;您可以接管已打开的用户标签页。 |
| Skill / MCP | 可选的包装器,将驱动程序作为一种 工具 暴露给理解 OpenAI 风格“技能”或 Multi-Client-Protocol (MCP) 的代理。 |
| Effect client | 一个 TypeScript 库 (BrowserControlClient),允许程序通过浏览器进行经过身份验证的 fetch 调用,而无需运行任意 Playwright 脚本。 |
主要功能
- 运行任意 Playwright 代码片段 (
browser-control execute …)。 - 安全地检查页面,使用
snapshot()、ariaSnapshot()、screenshotWithLabels()以及在 DOM 变更后依然有效的元素引用等辅助工具。 - 人工介入 (
handoff(),demonstrate()),用于处理验证码、双重验证 (2FA) 或任何需要人工参与的步骤。 - 只读会话,在阻止输入命令的同时允许导航和截图。
- 录制 – 捕获标签页的 WebM/MP4 视频,或用于调试的轻量级“飞行记录器”缓冲区。
- 网络捕获 – 启动 HAR 风格的捕获 (
browser-control network start …),该功能会屏蔽敏感信息并写入安全的 HAR 文件。 - 密钥处理 –
secrets子命令将屏蔽后的值存储在受保护的配置文件中,并允许下游 CLI 工具在从不查看原始令牌的情况下运行。
安装与首次运行
- Node ≥ 22.19 和 Chromium 系列浏览器。
- 全局安装:
npm install -g @opencode-ai/browser-control(添加browser-control和browser-control-mcp)。 - 通过
chrome://extensions→ 开发者模式 → 加载已解压的扩展程序,加载位于$(npm root -g)/@opencode-ai/browser-control/extension/dist的未打包扩展程序。 - 使用简单命令测试,例如:
CLI 会打印一个会话 ID 和一个您可以重复使用的延续命令。browser-control execute 'await page.goto("https://example.com"); return {title: await page.title(), url: page.url()}'
代理集成
- OpenCode 插件 –
opencode plugin add @opencode-ai/browser-control注册一个@browser技能,自动连接该技能、MCP 入口点和扩展目录。 - 手动技能 –
npx skills add anomalyco/browser-control --skill browser-control -g使相同的工作流可供任何使用 skills CLI 的代理使用。 - MCP – 如果您的代理偏好 MCP 协议,请将本地 MCP 条目 (
browser-control-mcp) 添加到其工具列表中。
典型工作流
- 创建/接管会话 (
browser-control session new myapp或session adopt …)。 - 执行 Playwright (
browser-control execute …)。 - 检查 (
snapshot(),ref(),ariaSnapshot())。 - 人工步骤 (
await handoff("Solve CAPTCHA"))。 - 可选录制 或 捕获网络 以供后续回放。
- 关闭 (
browser-control session delete myapp)。
安全与限制
- 该扩展程序需要广泛的权限 (
debugger,tabCapture等),并以用户的完整浏览器配置文件运行 – 它仅供受信任的本地使用。 - 破坏性的 CDP 命令(清除 Cookie、关闭整个浏览器)被中继拦截。
- 该扩展程序目前以未打包形式分发;计划发布 Chrome Web Store 版本,但目前尚不可用。
- 不捆绑 Playwright 二进制文件 – 中继要求宿主浏览器已安装。
- 视频录制需要在 PATH 中安装
ffmpeg,且在 CDP 模式下无法捕获音频。 - 该驱动程序不提供远程、经过身份验证的中继;它必须与浏览器在同一台机器上运行。
常用命令
browser-control doctor– 检查安装状态。browser-control status– 显示扩展程序是否已连接。browser-control serve– 在前台运行中继以进行调试。browser-control journal --session <id>– 查看 JSON 行格式的活动日志。browser-control secrets …– 管理用于生成客户端的屏蔽密钥值。
总结 Browser Control 是一个实用的开源桥梁,允许 AI 编码代理(或任何自动化脚本)通过 Playwright 与真实用户配置文件的浏览器进行交互,同时为开发人员提供用于检查、人工介入、录制和安全网络捕获的细粒度控制。它是 AI 代理自动化领域中一个真正的工具,而不仅仅是一个教程或精选列表。
相关
- 项目
- 项目
- 项目
- 项目
- 项目