brow
Standalone Playwright CLI for agent browser automation
Why brow?
Most browser automation tools are designed for test suites: verbose configuration, assertion libraries, test runners. brow is designed for agents: terse commands, structured output, minimal surface area, persistent profiles.
- Session-based: each session is a real Chromium profile — log in once, reuse forever
- Structured output: snapshots return accessibility trees, not raw HTML — easy for LLMs to parse
- API-first: all commands go through a local HTTP daemon — call it from any language
- Action recording: every interaction is logged and can be replayed or exported as a script
Install
pip install brow-cliplaywright install chromiumbrew tap detrin/tapbrew install brownpx -y skills add detrin/browQuick start
brow session new --headed # → 1brow navigate -s 1 "https://news.ycombinator.com"brow snapshot -s 1brow click -s 1 "text=Ask HN"brow session delete 1Architecture
Claude Code / your script │ ▼ CLI (brow) BrowClient (httpx) │ ▼ HTTP localhost:19987 FastAPI daemon (auto-starts on first command) │ ▼ Playwright Chromium browserThe daemon starts automatically the first time you run a command that needs it. It keeps sessions alive across multiple CLI invocations — you don’t need to pass credentials or re-login between commands.