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
  • 适合大模型 - 大语言模型可自然解析文本输出

架构

采用客户端-守护进程架构,以实现最佳性能:

  1. Rust CLI - 解析命令,并与守护进程通信
  2. Node.js 守护进程(默认) - 管理 Playwright 浏览器实例
  3. 原生守护进程(实验性,--native) - 使用直接 CDP 协议的纯 Rust 守护进程,无需依赖 Node.js

守护进程会自动启动并在命令间持续运行。

平台支持

为 macOS(ARM64、x64)、Linux(ARM64、x64)和 Windows(x64)提供原生 Rust 二进制文件。