nicobailon/surf-cli

The CLI for AI agents to control Chrome. Zero config, agent-agnostic, battle-tested.

What it solves

Surf は、AI エージェントが Web ブラウザ (Chrome やその他) を操作するための、簡素化されたエージェント非依存型の CLI を提供します。Unix socket を介して標準的な CLI コマンドでブラウザとやり取りすることで、複雑な設定、MCP servers、または独自の API キーが必要な環境を消去えます。

How it works

Surf は CLI ツールのとして機能し、ブラウザ拡張機能と native host と通信します。アクセシビリティツリー (accessibility tree) からの安定した要素識別子 (element refs) を使用することで、操作が DOM 変更に強い構成を実現しています。また、Tailscale を介したリモート制御もサポートしており、mutual Ed25519 challenge-response 認証を使用して、あるマシン-上の CLI から別のマシン上のブラウザを操作することが可能です。

Who it’s for

特定の AI プロバイダーやブラウザ自動化フレームワークに縛られることなく、信頼できる設定不要の方法で、エージェントに Web ブラウジング、ページ操作、タスク遂行を行わせたい 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: CSS selectors ではなく、ARIA role, text, または label を用いて要素を特定し、操作します。

  • Window Isolation: エージェントが別々のウィンドウで動作するようにし、人間のユーザーの active tabs と干渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉ング渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉渉

  • Network Capture: ネットワークリクエストを自動的にログ記録し、API コールをフィルタリングおよびリプレイ可能です。

  • Remote Access: Tailscale を使用して Tailnet 上のリモートアクセスを安全に制御可能です。