| name | agent-browser |
| description | Browser automation skill for Chrome/Chromium using agent-browser. Use when the user needs to open sites, click elements, fill forms, take screenshots, extract page data, test web apps, log in, or automate browser flows in Chrome/Chromium. Triggers include requests to open a website, submit a form, click a button, take a screenshot, scrape a JS-rendered page, or interact with a site programmatically. Do not use for Chrome DevTools-first debugging of a live Chrome session, selected-element inspection, console/network/Lighthouse/performance/memory analysis (use chrome-devtools-mcp), Firefox/WebKit/Edge or cross-browser verification (use playwright-mcp), API-only testing without a browser, direct HTTP requests, or static scraping that does not need JavaScript rendering. |
| allowed-tools | Bash(npx agent-browser:*), Bash(agent-browser:*) |
| context | fork |
| compatibility | OpenCode, Codex CLI, GitHub Copilot. Requires npx and agent-browser CLI. |
Browser Automation with agent-browser
The CLI uses Chrome/Chromium via CDP directly. Install via npm i -g agent-browser, brew install agent-browser, or cargo install agent-browser. Run agent-browser install to download Chrome. Update with agent-browser upgrade.
When to Defer
Use chrome-devtools-mcp instead when the request is specifically about:
- a live logged-in Chrome session the user already has open
- the currently selected element in Chrome DevTools
- Chrome console, network, Lighthouse, performance, or memory investigation
AI Chat Mode
Natural language browser control — useful for quick one-off tasks:
agent-browser chat "go to example.com and screenshot the homepage"
agent-browser chat
Core Workflow
Every browser automation follows this pattern:
- Navigate:
agent-browser open <url>
- Snapshot:
agent-browser snapshot -i (get element refs like @e1, @e2)
- Interact: Use refs to click, fill, select
- Re-snapshot: After navigation or DOM changes, get fresh refs
agent-browser open https://example.com/form
agent-browser snapshot -i
agent-browser fill @e1 "user@example.com"
agent-browser fill @e2 "password123"
agent-browser click @e3
agent-browser wait --load networkidle
agent-browser snapshot -i
Command Chaining
Commands can be chained with && in a single shell invocation. The browser persists between commands via a background daemon, so chaining is safe and more efficient than separate calls.
agent-browser open https://example.com && agent-browser wait --load networkidle && agent-browser snapshot -i
agent-browser fill @e1 "user@example.com" && agent-browser fill @e2 "password123" && agent-browser click @e3
agent-browser open https://example.com && agent-browser wait --load networkidle && agent-browser screenshot page.png
When to chain: Use && when you don't need to read the output of an intermediate command before proceeding (e.g., open + wait + screenshot). Run commands separately when you need to parse the output first (e.g., snapshot to discover refs, then interact using those refs).
Batch Execution
Execute multiple commands in a single invocation — avoids per-command process startup overhead:
agent-browser batch "open https://example.com" "snapshot -i" "screenshot"
agent-browser batch --bail "open https://example.com" "click @e1" "screenshot"
echo '[["open", "https://example.com"], ["snapshot", "-i"], ["click", "@e1"]]' | agent-browser batch --json
When to use batch vs chaining: Batch is faster (single process) and supports --bail for error handling. Use && chaining when you need shell features between commands.
Handling Authentication
For automation that needs saved auth, prefer a persistent profile (--profile), saved state, or session names. Use --auto-connect only to import auth state into agent-browser when that is the quickest setup.
If the user wants validation in their current live Chrome tab or existing Chrome DevTools context, defer to chrome-devtools-mcp.
Read references/auth-patterns.md first when the target site requires authentication or login. It covers state files, profiles, session names, and auth-vault workflows.
Read references/authentication.md only for OAuth, 2FA, cookie-based auth, and token refresh patterns.
Essential Commands
agent-browser open <url>
agent-browser close
agent-browser snapshot -i
agent-browser snapshot -i -C
agent-browser snapshot -s "#selector"
agent-browser click @e1
agent-browser click @e1 --new-tab
agent-browser fill @e2 "text"
agent-browser type @e2 "text"
agent-browser select @e1 "option"
agent-browser check @e1
agent-browser press Enter
agent-browser keyboard type "text"
agent-browser keyboard inserttext "text"
agent-browser scroll down 500
agent-browser scroll down 500 --selector "div.content"
agent-browser get text @e1
agent-browser get url
agent-browser get title
agent-browser get cdp-url
agent-browser wait @e1
agent-browser wait --load networkidle
agent-browser wait --url "**/page"
agent-browser wait 2000
agent-browser wait --text "Welcome"
agent-browser wait --fn "!document.body.innerText.includes('Loading...')"
agent-browser wait "#spinner" --state hidden
agent-browser download @e1 ./file.pdf
agent-browser wait --download ./output.zip
agent-browser --download-path ./downloads open <url>
agent-browser set viewport 1920 1080
agent-browser set viewport 1920 1080 2
agent-browser set device "iPhone 14"
agent-browser set useragent "Mozilla/5.0..."
agent-browser set timezone "America/New_York"
agent-browser set locale "fr-FR"
agent-browser set cookie "name=val" "https://example.com"
agent-browser set storage '{"key":"val"}' "https://example.com"
agent-browser set geo 37.7749 -122.4194
agent-browser set offline on
agent-browser stream enable
agent-browser stream enable --port 9223
agent-browser stream status
agent-browser stream disable
agent-browser screenshot
agent-browser screenshot --full
agent-browser screenshot --annotate
agent-browser screenshot --screenshot-dir ./shots
agent-browser screenshot --screenshot-format jpeg --screenshot-quality 80
agent-browser pdf output.pdf
agent-browser clipboard read
agent-browser clipboard write "Hello, World!"
agent-browser clipboard copy
agent-browser clipboard paste
agent-browser diff snapshot
agent-browser diff snapshot --baseline before.txt
agent-browser diff screenshot --baseline before.png
agent-browser diff url <url1> <url2>
agent-browser diff url <url1> <url2> --wait-until networkidle
agent-browser diff url <url1> <url2> --selector "#main"
Common Patterns
Form Submission
agent-browser open https://example.com/signup
agent-browser snapshot -i
agent-browser fill @e1 "Jane Doe"
agent-browser fill @e2 "jane@example.com"
agent-browser select @e3 "California"
agent-browser check @e4
agent-browser click @e5
agent-browser wait --load networkidle
Data Extraction
agent-browser open https://example.com/products
agent-browser snapshot -i
agent-browser get text @e5
agent-browser get text body > page.txt
agent-browser snapshot -i --json
agent-browser get text @e1 --json
Basic Auth Flow
agent-browser open https://app.example.com/login
agent-browser snapshot -i
agent-browser fill @e1 "$USERNAME"
agent-browser fill @e2 "$PASSWORD"
agent-browser click @e3
agent-browser wait --url "**/dashboard"
agent-browser state save auth.json
agent-browser state load auth.json
agent-browser open https://app.example.com/dashboard
Read references/advanced.md for session persistence, parallel sessions, connecting to existing Chrome, viewport/responsive testing, visual debugging, local file access, iOS simulator, and more patterns.
Timeouts and Slow Pages
The default timeout is 25 seconds. Override with AGENT_BROWSER_DEFAULT_TIMEOUT (milliseconds). For slow pages, use explicit waits:
agent-browser wait --load networkidle
agent-browser wait "#content"
agent-browser wait --url "**/dashboard"
agent-browser wait --fn "document.readyState === 'complete'"
agent-browser wait 5000
Use wait --load networkidle after open for consistently slow sites. Wait for specific elements with wait <selector> or wait @ref.
Ref Lifecycle
Refs (@e1, @e2, etc.) are invalidated when the page changes. Always re-snapshot after clicking links/buttons that navigate, form submissions, or dynamic content loading (dropdowns, modals).
agent-browser click @e5
agent-browser snapshot -i
agent-browser click @e1
Additional UI-testing Features
Read references/advanced.md for diffing, session management, annotated screenshots, semantic locators, JavaScript evaluation, configuration files, browser engine selection, and more.
Core UI-testing References
Start with these when the quickstart is not enough:
Specialized / Non-default Workflows
Open these only when the task explicitly needs them:
Ready-to-Use Templates
./templates/form-automation.sh https://example.com/form
./templates/authenticated-session.sh https://app.example.com/login
./templates/capture-workflow.sh https://example.com ./output