Agent-Browser – Browser Automation for AI Agent-Browser, a browser automation CLI designed for AI agents, has been released with 100% native Rust implementation and compact text output to minimize context usage. The tool offers 50+ commands, ref-based element selection, and cross-platform support for macOS, Linux, and Windows, and works with Claude Code, Cursor, GitHub Copilot, OpenAI Codex, Google Gemini, and opencode. agent-browser agent-browser Browser automation CLI designed for AI agents. Compact text output minimizes context usage. 100% native Rust. npm install -g agent-browser all platforms brew install agent-browser macOS agent-browser install Download Chrome first time or try without installing npx agent-browser open example.com Features features Agent-first : Compact text output uses fewer tokens than JSON, designed for AI context efficiency Ref-based : Snapshot returns accessibility tree with refs for deterministic element selection Complete : 50+ commands for navigation, forms, screenshots, network, storage, files, tabs, frames, and debugging Observable : Video recording /recording , streaming /streaming , debugging /debugging , profiler /profiler , and diffing /diffing tools are built in Modern apps : Network control /network , React & Web Vitals /react , init scripts /init-scripts , Next.js + Vercel /next , and eve Extension /eve workflows have first-class docs Stateful : Sessions /sessions , profiles, auth state, cookies, storage, proxy, and security controls support long-running agents Cross-platform : macOS, Linux, Windows with native binaries Works with works-with Claude Code, Cursor, GitHub Copilot, OpenAI Codex, Google Gemini, opencode, and any agent that can run shell commands. Example example Navigate and get snapshot agent-browser open example.com agent-browser snapshot -i Output: - heading "Example Domain" ref=e1 - link "More information..." ref=e2 Interact using refs agent-browser click @e2 agent-browser screenshot page.png agent-browser close Why refs? why-refs The snapshot command returns a compact accessibility tree where each element has a unique ref like @e1 , @e2 . This provides: Context-efficient : Text output uses ~200-400 tokens vs ~3000-5000 for full DOM Deterministic : Ref points to exact element from snapshot Fast : No DOM re-query needed AI-friendly : LLMs parse text output naturally Architecture architecture Client-daemon architecture for optimal performance: Rust CLI : Parses commands, communicates with daemon Native Daemon : Pure Rust daemon using direct CDP, manages Chrome via Chrome DevTools Protocol The daemon starts automatically and persists between commands. By default, it saves configured restore state, closes its headless browser, and exits after one hour without commands or dashboard input. Without --restore or another restore key, shutdown discards transient browser state and open tabs. Headed browsers, Safari and iOS WebDriver sessions, and user-attached browsers are exempt from the default timeout; provider-owned cloud browsers are not. Use --idle-timeout