SawyerHood/dev-browser · 上手攻略
- 仓库:SawyerHood/dev-browser
- 链接:https://github.com/SawyerHood/dev-browser
- 分类:academic-writing
- 作者:Tom
- 更新:2026-08-09
是什么
dev-browser 是一个让 AI Agent(如 Claude Code、Codex)直接控制浏览器的 Claude Skill。它通过在 QuickJS WASM 沙箱中执行 JavaScript 脚本,实现浏览器自动化操作,同时保证宿主系统安全——脚本没有文件系统或网络访问权限。
核心定位:在 AI Coding 场景下,提供比传统 Playwright MCP / Playwright Skill 更低成本、更高成功率的浏览器控制方案。
解决什么问题
日常 AI Agent 任务中经常遇到"需要访问网页"的场景,例如:
- AI 需要抓取页面内容来回答用户问题
- 需要点击按钮、填写表单完成自动化操作
- 需要截图记录网页状态
传统方案各有缺陷:
| 方案 | 成本 | 耗时 | 成功率 | 沙箱安全 |
|---|---|---|---|---|
| Playwright MCP | $1.45 | 4m31s | 100% | ✅ |
| Playwright Skill | $1.45 | 8m07s | 67% | ⚠️ |
| Claude Chrome Extension | $2.81 | 12m54s | 100% | ❌ |
| dev-browser | $0.88 | 3m53s | 100% | ✅ |
dev-browser 在官方 benchmark 中以最低成本($0.88)和最快速度(3m53s)实现 100% 成功率,同时沙箱级别安全。
快速安装
# 全局安装 CLI
npm install -g dev-browser
# 安装 Playwright + Chromium(只需一次)
dev-browser install
# macOS/Linux 快速验证
dev-browser --headless <<'EOF'
const page = await browser.getPage("main");
await page.goto("https://example.com", { waitUntil: "domcontentloaded" });
console.log(await page.title());
EOF
Windows 用户需先以管理员权限启动 PowerShell,完成安装后用 chrome.exe --remote-debugging-port=9222 开启 Chrome 远程调试,再 dev-browser --connect 连接。
核心用法
基础操作
// 获取或创建命名页面
const page = await browser.getPage("main");
// 导航
await page.goto("https://example.com", { waitUntil: "domcontentloaded" });
// 截图
await page.screenshot({ path: "screenshot.png" });
// 点击 / 填表
await page.click("#submit-button");
await page.fill("input[name='q']", "search term");
// 执行 JS
const result = await page.evaluate(() => document.title);
连接已有 Chrome(不新开浏览器)
# 1. 在 Chrome 地址栏打开 chrome://inspect/#remote-debugging
# 2. 确认 "Discover network targets" 已勾选
# 3. 运行脚本
dev-browser --connect <<'EOF'
const tabs = await browser.listPages();
console.log(JSON.stringify(tabs, null, 2));
EOF
AI 友好快照(computer-use 工具集)
dev-browser 在 Playwright Page 对象上扩展了两个工具集:
// pixel/vision 级别(像素坐标操作)
const { path, width, height } = await page.cua.screenshot();
await page.cua.click({ x: 100, y: 200 });
// DOM-id 级别(更稳定的元素定位)
const dom = await page.domCua.getVisibleDom();
await page.domCua.click({ nodeId: 42 });
Claude Code 免审批配置
在项目 .claude/settings.json 或用户级 ~/.claude/settings.json 中加入:
{
"permissions": {
"allow": ["Bash(dev-browser *)"]
}
}
即可在 Claude Code 中直接运行 dev-browser 命令而无需每次确认。
AI Skill 自动安装
# 安装到 Codex / Claude / Agents 三种 AI 环境
dev-browser install-skill --codex
dev-browser install-skill --claude
dev-browser install-skill --agents
# 非交互环境(CI/CD)自动安装全部
dev-browser install-skill
典型适用场景
- 网页内容抓取:让 AI 分析页面信息而无需手动复制粘贴
- 自动化表单填写:批量操作多步骤网页流程
- AI 编程辅助:Agent 需要登录网站获取信息或完成开发者工作流
- 持续集成测试:headless 模式下做 UI 自动化回归测试
- 需要登录态的操作:复用已有 Chrome 的登录状态,避免二次认证
坑与注意
-
沙箱限制:脚本无法访问宿主文件系统(只能操作
~/.dev-browser/tmp/目录)和网络,依赖网络的操作(如 API 调用)需通过page.evaluate在页面上下文中执行。 -
Windows Chromium 下载:npm 安装时若网络问题导致 Chromium 下载失败,可手动从 GitHub Releases 下载
dev-browser-windows-x64.exe放入正确路径,或使用--connect复用已安装的 Chrome。 -
idle-timeout 默认无限:长期运行任务时,daemon 不会自动关闭 Chromium;在
~/.dev-browser/config.json中配置"idleTimeout": "5m"或显式传--idle-timeout 5m防止资源泄漏。 -
脚本环境是 QuickJS 而非 Node.js:不要使用 Node.js 特有 API(如
require()、__dirname);标准浏览器 Web API 均可使用。 -
--connect 需要 Chrome 开启调试端口:Windows 上若连接失败,先确认
chrome.exe --remote-debugging-port=9222已运行。
与同类对比
| 特性 | dev-browser | browser-use | Playwright MCP | @playwright/test |
|---|---|---|---|---|
| 沙箱安全 | ✅ QuickJS WASM | ⚠️ Python sandbox | ❌ 无 | ❌ 无 |
| AI Agent 集成 | ✅ 原生 | ✅ | ✅ | ❌ |
| 连接已有浏览器 | ✅ | ❌ | ❌ | ❌ |
| 成本(benchmark) | $0.88 | — | $1.45 | — |
| 速度(benchmark) | 3m53s | — | 4m31s | — |
| 安装复杂度 | 低(npm) | 中 | 高 | 高 |
browser-use 更适合 Python 生态的 AI Agent;Playwright MCP 需要额外服务进程;dev-browser 是最轻量的选择,尤其适合 Claude Code / Codex 环境。
一句话推荐结论
AI 编程场景下需要控制浏览器时,dev-browser 是性价比最高(成本 $0.88、速度最快)且安全性最好(QuickJS 沙箱)的选择,安装一行 npm 命令,值得优先尝试。
最小可跑命令(核验路径)
# 环境:Node.js ≥ 18,Linux/macOS/Windows
npm install -g dev-browser # 需要网络下载约 80MB Chromium
dev-browser install # 安装 Playwright + Chromium(约 200MB)
dev-browser --headless <<'EOF'
const page = await browser.getPage("test");
await page.goto("https://example.com");
console.log(await page.title());
EOF
# 预期输出:Example Domain
# 硬件要求:无特殊,2GB RAM + 500MB 磁盘
⚠️ 若
dev-browser install卡在 Chromium 下载,可手动从 https://github.com/SawyerHood/dev-browser/releases 下载对应平台二进制文件,或改用--connect连接已安装 Chrome。
原始 commit:https://github.com/SawyerHood/dev-browser/commit/main · MIT License · 作者 Sawyer Hood