nicobailon/surf-cli
The CLI for AI agents to control Chrome. Zero config, agent-agnostic, battle-tested.
What it solves
Surf 提供了一个简化的、与代理程序 (agent) 无关的 CLI,用于 AI 代理程序控制 Web 浏览器 (Chrome 及其他)。它通过允许代理程序通过 Unix socket 使用标准 CLI 命令与浏览器进行交互,消除了对复杂配置、MCP servers 或专有 API keys 的需求。
How it works
Surf 作为一个 CLI 工具运行,与浏览器扩展程序和原生宿主 (native host) 进行通信。它使用来自可访问性树 (accessibility tree) 的稳定元素标识符 (element refs) 来确保交互的对 DOM 变化的韧性。它还支持通过 Tailscale 进行远程控制,允许一台机器上的 CLI 控制另一台机器上的浏览器,使用 mutual Ed25519 challenge-response 认证。
Who it’s for
需要可靠、无需配置的方式让其代理程序浏览 Web,交互式操作页面,并执行任务,且不希望被被绑定到特定的 AI 提供商或浏览器自动化框架的 AI 代理程序开发者。
Highlights
- Agent-Agnostic: 适用于任何可以运行 shell 命令的工具 (e.g., Claude Code, GPT, Gemini, Cursor)。
- Zero Config: 仅需安装扩展程序并设置 native host。
- AI without API Keys: 利用现有的浏览器登录状态来查询 ChatGPT, Gemini, Perplexity, 和 Grok。
- Semantic Locators: 通过 ARIA role, text, 或 label 而不是脆弱的 CSS selectors 来查找和交互元素。
- Window Isolation: 允许代理程序在单独的窗口中工作,以避免干扰人类用户的 active tabs。
- Network Capture: 自动记录网络请求,用于过滤和重放 API 调用。
- Remote Access: 通过 Tailscale 在 Tailnet 上安全地控制浏览器。