nicobailon/surf-cli
The CLI for AI agents to control Chrome. Zero config, agent-agnostic, battle-tested.
What it solves
Surf 提供了一個簡化的、與代理程式無關的 CLI,讓 AI 代理程式能控制網頁瀏覽器(Chrome 及其他)。它透過讓代理程式經由 Unix socket 進行標準 CLI 命令的互動,消除了對複雜配置、MCP server 或專有 API key 的需求。
How it works
Surf 作為一個 CLI 工具運作,與瀏覽器擴充功能和原生主機(native host)進行通訊。它使用來自可訪問性樹(accessibility tree)的穩定元素識別碼(element refs)來確保互動對 DOM 變動具有韌性。它也支援透過 Tailscale 進行遠端控制,允許一台機器上的 CLI 控制另一台機器上的瀏覽器,並使用 Ed25519 挑戰-回應驗證進行雙向驗證。
Who it’s for
需要可靠、無需配置的方式讓其代理程式瀏覽網頁、與頁面互動並執行任務,且不希望被綁定在特定 AI 提供商或瀏覽器自動化框架的 AI 代理程式開發者。
Highlights
- Agent-Agnostic: 與任何可以執行 Shell 命令的工具(例如 Claude Code, GPT, Gemini, Cursor)都能運作。
- Zero Config: 僅需安裝擴充功能並設定原生主機。
- AI without API Keys: 利用現有的瀏覽器登入狀態來查詢 ChatGPT, Gemini, Perplexity, 和 Grok。
- Semantic Locators: 透過 ARIA role, text, 或 label 而非脆弱的 CSS selector 進行元素定位與互動。
- Window Isolation: 允許代理程式在獨立的視窗中工作,以避免干擾人類使用者的帳戶分頁。n* Network Capture: 自動記錄網路請求,以便進行 API 呼叫的過濾與重放。
- Remote Access: n* Remote Access: 透過 Tailscale 在 Tailnet 上安全地控制瀏覽器。