| name | agent-browser |
| description | Automates browser interactions for web testing, form filling, screenshots, and data extraction. Use when the user needs to navigate websites, interact with web pages, fill forms, take screenshots, test web applications, or extract information from web pages. |
| allowed-tools | Bash(pnpx agent-browser:*) |
Browser Automation with pnpx agent-browser
Quick start
pnpx agent-browser open <url>
pnpx agent-browser snapshot -i
pnpx agent-browser click @e1
pnpx agent-browser fill @e2 "text"
pnpx agent-browser close
Core workflow
- Navigate:
pnpx agent-browser open <url>
- Snapshot:
pnpx 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
pnpx agent-browser open <url>
pnpx agent-browser back
pnpx agent-browser forward
pnpx agent-browser reload
pnpx agent-browser close
Snapshot (page analysis)
pnpx agent-browser snapshot
pnpx agent-browser snapshot -i
pnpx agent-browser snapshot -c
pnpx agent-browser snapshot -d 3
pnpx agent-browser snapshot -s "#main"
Interactions (use @refs from snapshot)
pnpx agent-browser click @e1
pnpx agent-browser dblclick @e1
pnpx agent-browser focus @e1
pnpx agent-browser fill @e2 "text"
pnpx agent-browser type @e2 "text"
pnpx agent-browser press Enter
pnpx agent-browser press Control+a
pnpx agent-browser keydown Shift
pnpx agent-browser keyup Shift
pnpx agent-browser hover @e1
pnpx agent-browser check @e1
pnpx agent-browser uncheck @e1
pnpx agent-browser select @e1 "value"
pnpx agent-browser scroll down 500
pnpx agent-browser scrollintoview @e1
pnpx agent-browser drag @e1 @e2
pnpx agent-browser upload @e1 file.pdf
Get information
pnpx agent-browser get text @e1
pnpx agent-browser get html @e1
pnpx agent-browser get value @e1
pnpx agent-browser get attr @e1 href
pnpx agent-browser get title
pnpx agent-browser get url
pnpx agent-browser get count ".item"
pnpx agent-browser get box @e1
Check state
pnpx agent-browser is visible @e1
pnpx agent-browser is enabled @e1
pnpx agent-browser is checked @e1
Screenshots & PDF
pnpx agent-browser screenshot
pnpx agent-browser screenshot path.png
pnpx agent-browser screenshot --full
pnpx agent-browser pdf output.pdf
Video recording
pnpx agent-browser record start ./demo.webm
pnpx agent-browser click @e1
pnpx agent-browser record stop
pnpx agent-browser record restart ./take2.webm
Recording creates a fresh context but preserves cookies/storage from your session. If no URL is provided, it automatically returns to your current page. For smooth demos, explore first, then start recording.
Wait
pnpx agent-browser wait @e1
pnpx agent-browser wait 2000
pnpx agent-browser wait --text "Success"
pnpx agent-browser wait --url "**/dashboard"
pnpx agent-browser wait --load networkidle
pnpx agent-browser wait --fn "window.ready"
Mouse control
pnpx agent-browser mouse move 100 200
pnpx agent-browser mouse down left
pnpx agent-browser mouse up left
pnpx agent-browser mouse wheel 100
Semantic locators (alternative to refs)
pnpx agent-browser find role button click --name "Submit"
pnpx agent-browser find text "Sign In" click
pnpx agent-browser find label "Email" fill "user@test.com"
pnpx agent-browser find first ".item" click
pnpx agent-browser find nth 2 "a" text
Browser settings
pnpx agent-browser set viewport 1920 1080
pnpx agent-browser set device "iPhone 14"
pnpx agent-browser set geo 37.7749 -122.4194
pnpx agent-browser set offline on
pnpx agent-browser set headers '{"X-Key":"v"}'
pnpx agent-browser set credentials user pass
pnpx agent-browser set media dark
Cookies & Storage
pnpx agent-browser cookies
pnpx agent-browser cookies set name value
pnpx agent-browser cookies clear
pnpx agent-browser storage local
pnpx agent-browser storage local key
pnpx agent-browser storage local set k v
pnpx agent-browser storage local clear
Network
pnpx agent-browser network route <url>
pnpx agent-browser network route <url> --abort
pnpx agent-browser network route <url> --body '{}'
pnpx agent-browser network unroute [url]
pnpx agent-browser network requests
pnpx agent-browser network requests --filter api
Tabs & Windows
pnpx agent-browser tab
pnpx agent-browser tab new [url]
pnpx agent-browser tab 2
pnpx agent-browser tab close
pnpx agent-browser window new
Frames
pnpx agent-browser frame "#iframe"
pnpx agent-browser frame main
Dialogs
pnpx agent-browser dialog accept [text]
pnpx agent-browser dialog dismiss
JavaScript
pnpx agent-browser eval "document.title"
Example: Form submission
pnpx agent-browser open https://example.com/form
pnpx agent-browser snapshot -i
pnpx agent-browser fill @e1 "user@example.com"
pnpx agent-browser fill @e2 "password123"
pnpx agent-browser click @e3
pnpx agent-browser wait --load networkidle
pnpx agent-browser snapshot -i
Example: Authentication with saved state
pnpx agent-browser open https://app.example.com/login
pnpx agent-browser snapshot -i
pnpx agent-browser fill @e1 "username"
pnpx agent-browser fill @e2 "password"
pnpx agent-browser click @e3
pnpx agent-browser wait --url "**/dashboard"
pnpx agent-browser state save auth.json
pnpx agent-browser state load auth.json
pnpx agent-browser open https://app.example.com/dashboard
Sessions (parallel browsers)
pnpx agent-browser --session test1 open site-a.com
pnpx agent-browser --session test2 open site-b.com
pnpx agent-browser session list
JSON output (for parsing)
Add --json for machine-readable output:
pnpx agent-browser snapshot -i --json
pnpx agent-browser get text @e1 --json
Debugging
pnpx agent-browser open example.com --headed
pnpx agent-browser console
pnpx agent-browser errors
pnpx agent-browser record start ./debug.webm
pnpx agent-browser record stop
pnpx agent-browser open example.com --headed
pnpx agent-browser --cdp 9222 snapshot
pnpx agent-browser console
pnpx agent-browser console --clear
pnpx agent-browser errors
pnpx agent-browser errors --clear
pnpx agent-browser highlight @e1
pnpx agent-browser trace start
pnpx agent-browser trace stop trace.zip