agent-browser
Fast browser automation CLI for AI agents. Chrome/Chromium via CDP with accessibility-tree snapshots and compact @eN element refs.
Install: npm i -g agent-browser && agent-browser install
Start here
This file is a discovery stub, not the usage guide. Before running any agent-browser command, load the actual workflow content from the CLI:
agent-browser skills get core # start here — workflows, common patterns, troubleshooting
agent-browser skills get core --full # include full command reference and templates
The CLI serves skill content that always matches the installed version, so instructions never go stale. The content in this stub cannot change between releases, which is why it just points at skills get core.
Visible browser inside herdr
Render the browser in a herdr pane so the user can watch it. Run these in order.
Resolve the official.browser plugin root and substitute the printed path literally into the bun run commands below. Read it from the CLI rather than hardcoding it, because the directory name carries a content hash that changes when the plugin updates. A shell variable does not survive between commands, so do not try to carry it in one:
herdr plugin list --plugin official.browser --json | jq -r '.result.plugins[0].plugin_root'
Open the pane and keep pane_id from the response (--placement also takes tab, zoomed, overlay):
herdr plugin pane open --plugin official.browser --entrypoint browser --placement split --direction right --no-focus
List the views and pick the one whose pane_id matches. Never guess when several are listed:
bun run <plugin_root>/src/cli.ts views
Attach to that view, then pass --session herdr on every later command. Re-running connect returns the same endpoint:
bun run <plugin_root>/src/cli.ts connect --view <view_id>
agent-browser connect <cdp_http_url> --session herdr
When done, detach before closing the pane:
agent-browser --session herdr close
herdr plugin pane close <pane_id>
If a herdr command reports protocol_mismatch, the running server is older than the installed CLI. Tell the user and stop — restarting the server kills every pane process, including this session, so it is their call.
Specialized skills
Load a specialized skill when the task falls outside browser web pages:
agent-browser skills get electron # Electron desktop apps (VS Code, Slack, Discord, Figma, ...)
agent-browser skills get slack # Slack workspace automation
agent-browser skills get dogfood # Exploratory testing / QA / bug hunts
agent-browser skills get derive-client # Record a HAR, derive a standalone API client for a site
agent-browser skills get vercel-sandbox # agent-browser inside Vercel Sandbox microVMs
agent-browser skills get protected-vercel-deployments # Access protected Vercel deployments
agent-browser skills get agentcore # AWS Bedrock AgentCore cloud browsers
Run agent-browser skills list to see everything available on the installed version.
Why agent-browser
- Fast native Rust CLI, not a Node.js wrapper
- Works with any AI agent (Cursor, Claude Code, Codex, Continue, Windsurf, etc.)
- Chrome/Chromium via CDP with no Playwright or Puppeteer dependency
- Accessibility-tree snapshots with element refs for reliable interaction
- Sessions, authentication vault, state persistence, video recording
- Specialized skills for Electron apps, Slack, exploratory testing, cloud providers
Observability Dashboard
The dashboard runs independently of browser sessions on port 4848 and can also be opened through a proxied or forwarded URL such as https://dashboard.agent-browser.localhost. Agents should stay on the dashboard origin: session tabs, status, and stream traffic are proxied internally, so session ports do not need to be exposed.