| name | agent-browser |
| description | Browser automation for web testing, form filling, screenshots, and data extraction. Use when navigating websites, interacting with web pages, filling forms, taking screenshots, testing web applications, or extracting information from web pages. |
| license | Apache-2.0 |
| compatibility | ["claude-code","claude-desktop","gemini-cli","aider"] |
| metadata | {"version":"1.0.0","author":"bentossell","repository":"https://github.com/bentossell/skill-agent-browser"} |
| allowed-tools | ["bash","computer"] |
Browser Automation with agent-browser
Headless browser automation CLI for AI agents. Fast Rust CLI with Node.js fallback.
Installation
npm install -g agent-browser
agent-browser install
Quick Start
agent-browser open <url>
agent-browser snapshot -i
agent-browser click @e1
agent-browser fill @e2 "text"
agent-browser close
Core Workflow
- Navigate:
agent-browser open <url>
- Snapshot:
agent-browser snapshot -i (returns elements with refs like @e1, @e2)
- Interact using refs from the snapshot
- Re-snapshot after navigation or significant DOM changes
Commands
Navigation
agent-browser open <url>
agent-browser back
agent-browser forward
agent-browser reload
agent-browser close
Snapshot (Page Analysis)
agent-browser snapshot
agent-browser snapshot -i
agent-browser snapshot -c
agent-browser snapshot -d 3
Interactions (Use @refs from Snapshot)
agent-browser click @e1
agent-browser dblclick @e1
agent-browser fill @e1 "text"
agent-browser type @e1 "text"
agent-browser select @e1 "option"
agent-browser check @e1
agent-browser uncheck @e1
agent-browser hover @e1
agent-browser focus @e1
agent-browser press Enter
agent-browser scroll @e1 down 200
Screenshots & Media
agent-browser screenshot page.png
agent-browser screenshot @e1 element.png
agent-browser pdf output.pdf
Getting Data
agent-browser get text @e1
agent-browser get value @e1
agent-browser get attr @e1 href
agent-browser get html @e1
agent-browser eval "document.title"
Waiting
agent-browser wait --load networkidle
agent-browser wait --url "**/dashboard"
agent-browser wait --text "Success"
agent-browser wait @e1
agent-browser wait @e1 --hidden
Sessions (Parallel Browsers)
agent-browser --session test1 open site-a.com
agent-browser --session test2 open site-b.com
agent-browser session list
Authentication State
agent-browser state save auth.json
agent-browser state load auth.json
Example: Form Submission
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
Example: Login and Save State
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
Example: Content Review
Review a web page by taking snapshots and interacting:
agent-browser open http://localhost:3456/cookbook/what-is-cli/
agent-browser snapshot -i
agent-browser click @e75
agent-browser screenshot review.png
agent-browser snapshot -i
Alternative Selectors
When refs aren't available, use CSS selectors or semantic search:
agent-browser click "#submit"
agent-browser fill "#email" "test@example.com"
agent-browser find role button click --name "Submit"
agent-browser find text "Sign In" click
agent-browser find label "Email" fill "user@test.com"
JSON Output
Add --json for machine-readable output:
agent-browser snapshot -i --json
agent-browser get text @e1 --json
Debugging
agent-browser open example.com --headed
agent-browser console
agent-browser errors
Tips
- Always snapshot first - Get refs before interacting
- Re-snapshot after navigation - Refs change when page updates
- Use
-i flag - Interactive-only snapshots are cleaner
- Save auth state - Avoid re-logging in for each session
- Use
--json - When parsing output programmatically