The fastest, most token-efficient way for AI agents to control Chrome.
Benchmarks in progress: Early testing shows 3x faster than agent-browser for a variety of usecases, but does not yet support as wide of a feature set.




Experimental: Commands are stable, but their output format is subject to change as we optimize for AI agent effectiveness.
Platform Support: Confirmed working on macOS. Linux and Windows support is untested—please open an issue if you encounter problems.
curl -fsSL https://raw.githubusercontent.com/camhahu/browser/main/packages/cli/install.sh | bash
Point your agent to the skill file to get started, or install it directly:
browser add-skill opencode # Add to current project
browser add-skill --global opencode # Add globally
browser add-skill amp # Amp
browser add-skill codex # OpenAI Codex
browser add-skill claude # Claude Code
browser add-skill cursor # Cursor
browser add-skill goose # Goose
browser add-skill github # GitHub Copilot
browser add-skill vscode # VS Code
browser open https://example.com # Opens page, shows outline
browser click "Products"&& browser text ".product-list"
browser stop
| Command | Description |
|---|
start [--headed|--headless] [--software-rendering] [--chrome-arg <arg>]... | Start browser (default: headed) |
stop | Stop the browser |
| Command | Description |
|---|
open <url> | Open URL in new tab (auto-starts headless browser) |
navigate <url> | Navigate active tab to URL |
back | Go back in history |
forward | Go forward in history |
refresh | Reload active tab |
| Command | Description |
|---|
tabs | List all open tabs |
active | Print active tab ID |
use <tab-id> | Switch to specific tab |
close [tab-id] | Close tab (default: active) |
| Command | Description |
|---|
click <selector> | Click element (label, text, or CSS) |
type <text> [selector] | Type text or send keys (e.g. Enter, ctrl+c) |
hover <selector> | Move mouse to element |
drag <source> <target> | Drag element to another element |
select <selector> <value> | Select dropdown option |
scroll <target> | Scroll to top, bottom, or CSS selector |
wait <selector> | Wait for element (15s timeout) |
Content Extraction
| Command | Description |
|---|
outline [-a [depth]] | Show interactive elements (or all with -a) |
text [-l chars] [selector] | Get text content (default: 2000 chars) |
html [-l chars] [selector] | Get HTML content |
find <selector> | Find elements matching selector |
url | Print active tab URL |
title | Print active tab title |
| Command | Description |
|---|
screenshot [-f format] [-o path] [name] | Capture screenshot (png/jpeg/webp) |
| Command | Description |
|---|
console [-l count] [-t types] | Show console output |
network [-f pattern] [-t types] [id] | List/inspect network requests |
eval <js> | Evaluate JavaScript |
| Command | Description |
|---|
cookies [name] | List cookies or get specific value |
storage [key] | List localStorage or get specific value |
| Command | Description |
|---|
viewport desktop|tablet|mobile | Set viewport preset |
viewport set <width> <height> | Set custom viewport |
useragent macos|windows|iphone|android | Set user agent preset |
useragent custom <string> | Set custom user agent |
| Command | Description |
|---|
config | Show all config |
config set <key> <value> | Set config value |
config unset <key> | Remove config value |
config clear-profile | Clear browser profile (cookies, logins) |
| Command | Description |
|---|
add-skill <target> | Install skill file for AI agent |
update | Update to latest version |
browser click l3 # Label from outline (fastest)
browser click "Sign up"# Text match (exact first, then partial)
browser click ".btn-primary"# CSS selector
See packages/cli/skill/SKILL.md for the AI agent skill file with usage patterns.
We collect anonymous usage data to improve the tool. See docs/TELEMETRY.md for details on what we collect and how to opt out.
See docs/TODO.md for planned features and docs/BUGS.md for known issues.
bun install
bun run build
bun run test
The build outputs to ./dist/browser. You can symlink it for local testing:
sudo ln -s $(pwd)/dist/browser /usr/local/bin/browser
MIT