Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Headless browser automation CLI optimized for AI agents with accessibility tree snapshots and ref-based element selection
Headless browser automation CLI optimized for AI agents with accessibility tree snapshots and ref-based element selection
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
Fast browser automation using accessibility tree snapshots with refs for deterministic element selection.
Use agent-browser when: Automating multi-step workflows Need deterministic element selection Performance is critical Working with complex SPAs Need session isolation Use built-in browser tool when: Need screenshots/PDFs for analysis Visual inspection required Browser extension integration needed
# 1. Navigate and snapshot agent-browser open https://example.com agent-browser snapshot -i --json # 2. Parse refs from JSON, then interact agent-browser click @e2 agent-browser fill @e3 "text" # 3. Re-snapshot after page changes agent-browser snapshot -i --json
agent-browser open <url> agent-browser back | forward | reload | close
agent-browser snapshot -i --json # Interactive elements, JSON output agent-browser snapshot -i -c -d 5 --json # + compact, depth limit agent-browser snapshot -s "#main" -i # Scope to selector
agent-browser click @e2 agent-browser fill @e3 "text" agent-browser type @e3 "text" agent-browser hover @e4 agent-browser check @e5 | uncheck @e5 agent-browser select @e6 "value" agent-browser press "Enter" agent-browser scroll down 500 agent-browser drag @e7 @e8
agent-browser get text @e1 --json agent-browser get html @e2 --json agent-browser get value @e3 --json agent-browser get attr @e4 "href" --json agent-browser get title --json agent-browser get url --json agent-browser get count ".item" --json
agent-browser is visible @e2 --json agent-browser is enabled @e3 --json agent-browser is checked @e4 --json
agent-browser wait @e2 # Wait for element agent-browser wait 1000 # Wait ms agent-browser wait --text "Welcome" # Wait for text agent-browser wait --url "**/dashboard" # Wait for URL agent-browser wait --load networkidle # Wait for network agent-browser wait --fn "window.ready === true"
agent-browser --session admin open site.com agent-browser --session user open site.com agent-browser session list # Or via env: AGENT_BROWSER_SESSION=admin agent-browser ...
agent-browser state save auth.json # Save cookies/storage agent-browser state load auth.json # Load (skip login)
agent-browser screenshot page.png agent-browser screenshot --full page.png agent-browser pdf page.pdf
agent-browser network route "**/ads/*" --abort # Block agent-browser network route "**/api/*" --body '{"x":1}' # Mock agent-browser network requests --filter api # View
agent-browser cookies # Get all agent-browser cookies set name value agent-browser storage local key # Get localStorage agent-browser storage local set key val
agent-browser tab new https://example.com agent-browser tab 2 # Switch to tab agent-browser frame @e5 # Switch to iframe agent-browser frame main # Back to main
{ "success": true, "data": { "snapshot": "...", "refs": { "e1": {"role": "heading", "name": "Example Domain"}, "e2": {"role": "button", "name": "Submit"}, "e3": {"role": "textbox", "name": "Email"} } } }
Always use -i flag - Focus on interactive elements Always use --json - Easier to parse Wait for stability - agent-browser wait --load networkidle Save auth state - Skip login flows with state save/load Use sessions - Isolate different browser contexts Use --headed for debugging - See what's happening
agent-browser open https://www.google.com agent-browser snapshot -i --json # AI identifies search box @e1 agent-browser fill @e1 "AI agents" agent-browser press Enter agent-browser wait --load networkidle agent-browser snapshot -i --json # AI identifies result refs agent-browser get text @e3 --json agent-browser get attr @e4 "href" --json
# Admin session agent-browser --session admin open app.com agent-browser --session admin state load admin-auth.json agent-browser --session admin snapshot -i --json # User session (simultaneous) agent-browser --session user open app.com agent-browser --session user state load user-auth.json agent-browser --session user snapshot -i --json
npm install -g agent-browser agent-browser install # Download Chromium agent-browser install --with-deps # Linux: + system deps
Skill created by Yossi Elkrief (@MaTriXy) agent-browser CLI by Vercel Labs
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.