agent-browser
专为 AI 代理设计的浏览器自动化 CLI 工具。紧凑的文本输出可最大限度减少上下文使用量。采用快速的 Rust CLI,同时提供 Node.js 回退方案。
npm install -g agent-browser # 所有平台(最快,原生 Rust CLI)
brew install agent-browser # macOS
# 或尝试无需安装
npx agent-browser open example.com特性
- 以代理为中心 - 紧凑的文本输出所用标记数少于 JSON,专为提升 AI 上下文效率而设计
- 基于引用 - 快照返回带有引用的可访问性树,支持确定性元素选择
- 快速 - 原生 Rust CLI 实现即时命令解析
- 功能完整 - 提供 50 多个命令,涵盖导航、表单、截图、网络、存储等功能
- 会话管理 - 支持多个隔离的浏览器实例,拥有独立的身份认证
- 跨平台 - 支持 macOS、Linux、Windows,提供原生二进制文件
兼容性
支持 Claude Code、Cursor、GitHub Copilot、OpenAI Codex、Google Gemini、opencode,以及任何能够执行 shell 命令的代理。
示例
# 导航并获取快照
agent-browser open example.com
agent-browser snapshot -i
# 输出:
# - 标题 "Example Domain" [ref=e1]
# - 链接 "更多资讯..." [ref=e2]
# 使用引用进行交互
agent-browser click @e2
agent-browser screenshot page.png
agent-browser close为何使用引用?
snapshot 命令返回一个紧凑的可访问性树,其中每个元素都具有唯一的引用,如 @e1、@e2。这带来了以下优势:
- 上下文高效 - 文本输出仅需约 200–400 个标记,远低于完整 DOM 的 3000–5000 个标记
- 确定性 - 引用指向快照中确切的元素
- 快速 - 无需重新查询 DOM
- 适合大模型 - 大语言模型可自然解析文本输出
架构
采用客户端-守护进程架构,以实现最佳性能:
- Rust CLI - 解析命令,并与守护进程通信
- Node.js 守护进程(默认) - 管理 Playwright 浏览器实例
- 原生守护进程(实验性,
--native) - 使用直接 CDP 协议的纯 Rust 守护进程,无需依赖 Node.js
守护进程会自动启动并在命令间持续运行。
平台支持
为 macOS(ARM64、x64)、Linux(ARM64、x64)和 Windows(x64)提供原生 Rust 二进制文件。