
Agent Browser
- 1 installs
- 404 repo stars
- Updated August 5, 2026
- aiskillstore/marketplace
agent-browser is a Claude Code skill wrapping a Rust-based headless browser CLI that lets AI agents navigate, click, type, and snapshot web pages via structured commands.
About
agent-browser is a command-line headless browser that AI agents drive to open pages, click, type, snapshot, and extract structured data. A developer uses it when an agent needs to automate web interactions, fill forms, or test a web UI from the terminal. It exposes a snapshot-then-act loop with stable element refs and JSON output for machine parsing.
- Rust-based headless browser CLI (Node.js fallback) driven by structured commands
- Snapshot + @ref workflow lets agents observe then act deterministically
- Reuses a real Chrome profile via CDP for OAuth/logged-in sessions
Agent Browser by the numbers
- 1 all-time installs (skills.sh)
- Ranked #1,983 of 2,715 Automation & Workflows skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
agent-browser capabilities & compatibility
Free; installs a local browser binary via npm, no API key required.
- Capabilities
- browser automation · web scraping · form filling · screenshot capture · ui testing
- Works with
- chrome
- Use cases
- web scraping · testing · web search
- Platforms
- Linux · macOS
- Runs
- Runs locally
- Pricing
- Free
What agent-browser says it does
A fast Rust-based headless browser automation CLI with Node.js fallback that enables AI agents to navigate, click, type, and snapshot pages via structured commands.
Refs provide deterministic element selection from snapshots. Use the @ref syntax.
Use fill instead of type for input fields to ensure existing text is cleared.
npx skills add https://github.com/aiskillstore/marketplace --skill agent-browserAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 1 |
|---|---|
| repo stars | ★ 404 |
| Last updated | August 5, 2026 |
| Repository | aiskillstore/marketplace ↗ |
What it does
Let an AI agent navigate a website, fill forms, and extract page data from the command line.
Who is it for?
Agents that must interact with real web pages, including logged-in sessions, from the terminal.
Skip if: Building or styling web UI components; it automates browsers, it does not create front-end code.
When should I use this skill?
An agent needs to automate web interactions, extract structured page data, fill forms, or test a web UI.
What you get
An agent can open a URL, snapshot it, act on stable element refs, and verify the result.
- Automated browser navigation and interaction
- Page snapshots, screenshots, PDFs, and extracted text/HTML
By the numbers
- Snapshot filtering flags -i, -c, -d, -s to reduce output size
Files
Agent Browser
A fast Rust-based headless browser automation CLI with Node.js fallback that enables AI agents to navigate, click, type, and snapshot pages via structured commands.
Installation
npm recommended
npm install -g agent-browser
agent-browser install
agent-browser install --with-depsFrom Source
git clone https://github.com/vercel-labs/agent-browser
cd agent-browser
pnpm install
pnpm build
agent-browser installQuick Start
agent-browser open example.com
agent-browser snapshot
agent-browser click @e2
agent-browser fill @e3 "test@example.com"
agent-browser get text @e1
agent-browser screenshot page.png
agent-browser closeUsing Real Chrome Profile (for OAuth/Logged-in Sessions)
For sites requiring Google/Discord/etc login (like star-swap.com):
Method 1: Launch Chrome with custom profile, connect via CDP
# Terminal 1: Launch Chrome with your real profile and remote debugging
google-chrome --remote-debugging-port=9222 --user-data-dir=/home/willr/.config/google-chrome/Default &
# Terminal 2: Connect agent-browser to that Chrome instance
agent-browser --cdp 9222 open "https://star-swap.com"
agent-browser --cdp 9222 snapshot -i
agent-browser --cdp 9222 click e2
# This reuses your existing Google session - no re-login needed!
# Works for: Google OAuth, Discord OAuth, any site you're logged into in ChromeMethod 2: Session persistence (first-time manual login)
# First time: headed mode, login manually
agent-browser --headed --session starswap open "https://star-swap.com"
# Complete Google OAuth manually in the browser window
# Close when done
# Future runs: cookies persist!
agent-browser --session starswap open "https://star-swap.com"
# Already logged in automaticallyam.will.ryan Chrome profile: /home/willr/.config/google-chrome/Default
Core Commands
Navigation
agent-browser open <url>
agent-browser back
agent-browser forward
agent-browser reloadInteraction
agent-browser click <sel>
agent-browser dblclick <sel>
agent-browser focus <sel>
agent-browser type <sel> <text>
agent-browser fill <sel> <text>
agent-browser clear <sel>
agent-browser press <key>
agent-browser keydown <key>
agent-browser keyup <key>
agent-browser hover <sel>
agent-browser select <sel> <val>
agent-browser check <sel>
agent-browser uncheck <sel>
agent-browser drag <src> <tgt>
agent-browser upload <sel> <files>Extraction and Info
agent-browser snapshot
agent-browser get text <sel>
agent-browser get html <sel>
agent-browser get value <sel>
agent-browser get attr <sel> <attr>
agent-browser get title
agent-browser get url
agent-browser get count <sel>
agent-browser get box <sel>
agent-browser screenshot [path]
agent-browser pdf <path>Check State
agent-browser is visible <sel>
agent-browser is enabled <sel>
agent-browser is checked <sel>Find Elements
- agent-browser find role <role> <action> [value]
- agent-browser find text <text> <action>
- agent-browser find label <label> <action> [value]
- agent-browser find placeholder <ph> <action> [value]
- agent-browser find alt <text> <action>
- agent-browser find title <text> <action>
- agent-browser find testid <id> <action> [value]
Actions include click, fill, check, hover, and text.
Wait and Timing
agent-browser wait <selector>
agent-browser wait <ms>
agent-browser wait --text "Welcome"
agent-browser wait --url "**/dash"
agent-browser wait --load networkidleAdvanced Control
agent-browser scroll <dir> [px]
agent-browser scrollintoview <sel>
agent-browser eval <js>
agent-browser mouse move <x> <y>
agent-browser cookies
agent-browser storage local
agent-browser tab new [url]
agent-browser frame <sel>
agent-browser dialog accept [text]Sessions
Run multiple isolated browser instances.
agent-browser --session agent1 open site-a.com
agent-browser --session agent2 open site-b.comSnapshot Options
The snapshot command supports filtering to reduce output size.
- agent-browser snapshot -i
- agent-browser snapshot -c
- agent-browser snapshot -d 3
- agent-browser snapshot -s "#main"
Selectors and Refs
Refs provide deterministic element selection from snapshots. Use the @ref syntax.
agent-browser snapshot
agent-browser click @e2Agent Mode
Use --json for machine readable output.
agent-browser snapshot --jsonOptimal AI Workflow
- Navigate with agent-browser open <url>
- Observe with agent-browser snapshot -i --json
- Act with @ref from the snapshot
- Verify with agent-browser snapshot
Troubleshooting
- If the command is not found on Linux ARM64, use the full path in the bin folder.
- If an element is not found, use snapshot to find the correct ref.
- If the page is not loaded, add a wait command after navigation.
- Use --headed to see the browser window for debugging.
Options
- --session <name> uses an isolated session.
- --json provides JSON output.
- --full takes a full page screenshot.
- --headed shows the browser window.
- --timeout sets the command timeout in milliseconds.
Notes
- Refs are stable per page load but change on navigation.
- Always snapshot after navigation to get new refs.
- Use fill instead of type for input fields to ensure existing text is cleared.
{
"schema_version": "2.0",
"meta": {
"generated_at": "2026-03-04T08:50:22.215Z",
"slug": "am-will-agent-browser",
"source_url": "https://github.com/am-will/codex-skills/tree/main/skills/agent-browser/",
"source_ref": "main",
"model": "claude",
"analysis_version": "3.0.0",
"source_type": "community",
"content_hash": "23e4b387d1ca80075752fee131a4edb711335109118f0560f07acb6a9321b29d",
"tree_hash": "7ab63d1df70c6bc4d63f6b6bfdc84e4bf1a37b888c92cb0a996ce448d04a450c"
},
"skill": {
"name": "Agent Browser",
"description": "A fast Rust-based headless browser automation CLI with Node.js fallback that enables AI agents to navigate, click, type, and snapshot pages via structured commands.",
"summary": "Headless browser automation CLI for AI agents to interact with websites, fill forms, extract data, and manage sessions.",
"icon": "🌐",
"version": "1.0.0",
"author": "am-will",
"license": "MIT",
"category": "devops",
"tags": [
"browser-automation",
"headless-browser",
"web-scraping",
"ai-agents",
"claude-code"
],
"supported_tools": [
"claude",
"codex",
"claude-code"
],
"risk_factors": [
"network",
"external_commands",
"filesystem"
]
},
"security_audit": {
"risk_level": "safe",
"is_blocked": false,
"safe_to_publish": true,
"summary": "All static findings are false positives. The skill is a legitimate browser automation tool (agent-browser by Vercel Labs). Network URLs point to the tool's GitHub repo and example sites. External command detections are standard npm/pnpm/package manager invocations. Filesystem access to Chrome profiles is for session reuse (OAuth), which is an intended feature. No malicious behavior detected.",
"risk_factor_evidence": [
{
"factor": "network",
"evidence": [
{
"file": ".clawdhub/origin.json",
"line_start": 3,
"line_end": 3
},
{
"file": "SKILL.md",
"line_start": 29,
"line_end": 29
},
{
"file": "SKILL.md",
"line_start": 59,
"line_end": 59
},
{
"file": "SKILL.md",
"line_start": 71,
"line_end": 71
},
{
"file": "SKILL.md",
"line_start": 76,
"line_end": 76
}
]
},
{
"factor": "external_commands",
"evidence": [
{
"file": "SKILL.md",
"line_start": 20,
"line_end": 24
},
{
"file": "SKILL.md",
"line_start": 24,
"line_end": 28
},
{
"file": "SKILL.md",
"line_start": 28,
"line_end": 34
},
{
"file": "SKILL.md",
"line_start": 34,
"line_end": 38
},
{
"file": "SKILL.md",
"line_start": 38,
"line_end": 46
},
{
"file": "SKILL.md",
"line_start": 46,
"line_end": 54
},
{
"file": "SKILL.md",
"line_start": 54,
"line_end": 65
},
{
"file": "SKILL.md",
"line_start": 65,
"line_end": 69
},
{
"file": "SKILL.md",
"line_start": 69,
"line_end": 78
},
{
"file": "SKILL.md",
"line_start": 78,
"line_end": 80
},
{
"file": "SKILL.md",
"line_start": 80,
"line_end": 86
},
{
"file": "SKILL.md",
"line_start": 86,
"line_end": 91
},
{
"file": "SKILL.md",
"line_start": 91,
"line_end": 95
},
{
"file": "SKILL.md",
"line_start": 95,
"line_end": 111
},
{
"file": "SKILL.md",
"line_start": 111,
"line_end": 115
},
{
"file": "SKILL.md",
"line_start": 115,
"line_end": 127
},
{
"file": "SKILL.md",
"line_start": 127,
"line_end": 131
},
{
"file": "SKILL.md",
"line_start": 131,
"line_end": 135
},
{
"file": "SKILL.md",
"line_start": 135,
"line_end": 151
},
{
"file": "SKILL.md",
"line_start": 151,
"line_end": 157
},
{
"file": "SKILL.md",
"line_start": 157,
"line_end": 161
},
{
"file": "SKILL.md",
"line_start": 161,
"line_end": 171
},
{
"file": "SKILL.md",
"line_start": 171,
"line_end": 177
},
{
"file": "SKILL.md",
"line_start": 177,
"line_end": 180
},
{
"file": "SKILL.md",
"line_start": 180,
"line_end": 195
},
{
"file": "SKILL.md",
"line_start": 195,
"line_end": 198
},
{
"file": "SKILL.md",
"line_start": 198,
"line_end": 204
},
{
"file": "SKILL.md",
"line_start": 204,
"line_end": 206
}
]
},
{
"factor": "filesystem",
"evidence": [
{
"file": "SKILL.md",
"line_start": 56,
"line_end": 56
},
{
"file": "SKILL.md",
"line_start": 80,
"line_end": 80
}
]
}
],
"critical_findings": [],
"high_findings": [],
"medium_findings": [],
"low_findings": [],
"dangerous_patterns": [],
"files_scanned": 2,
"total_lines": 242,
"audit_model": "claude",
"audited_at": "2026-03-04T08:50:22.215Z",
"risk_factors": [
"network",
"external_commands",
"filesystem"
]
},
"content": {
"user_title": "Automate browser interactions with AI",
"value_statement": "AI agents struggle to interact with dynamic web pages. Agent Browser provides a structured CLI to navigate, click, fill forms, and extract data from any website using headless Chrome.",
"seo_keywords": [
"Claude browser automation",
"Codex browser automation",
"Claude Code web automation",
"headless browser CLI",
"AI agent web scraping",
"automate web forms",
"browser automation tool",
"headless Chrome CLI",
"web testing automation",
"AI web interaction"
],
"actual_capabilities": [
"Navigate to URLs and manage browser history (back, forward, reload)",
"Click, type, fill, and interact with web page elements using selectors",
"Extract text, HTML, attributes, and values from page elements",
"Take screenshots and PDFs of pages or specific elements",
"Manage browser sessions for persistent login states (OAuth reuse)",
"Find elements by role, text, label, placeholder, alt text, title, or test ID"
],
"limitations": [
"Requires Node.js and npm to be installed on the system",
"Cannot handle CAPTCHAs or complex authentication flows without session reuse",
"Element refs change on page navigation - requires fresh snapshots",
"Some complex SPAs may require additional wait commands for full loading"
],
"use_cases": [
{
"title": "Automated web testing",
"description": "Use Claude to test web applications by navigating pages, clicking buttons, filling forms, and verifying expected behavior without manual testing.",
"target_user": "QA engineers and developers testing web apps"
},
{
"title": "Web data extraction",
"description": "Extract structured data from websites by navigating to pages, finding elements by various selectors, and capturing text or attribute values.",
"target_user": "Data engineers and researchers gathering web data"
},
{
"title": "Form automation",
"description": "Automate filling and submitting web forms repeatedly. Useful for filling repetitive data entry tasks or automating multi-step workflows.",
"target_user": "Business users automating repetitive form tasks"
}
],
"prompt_templates": [
{
"title": "Basic page navigation",
"prompt": "Use agent-browser to open https://example.com and take a snapshot to see what elements are available on the page.",
"scenario": "When you need to explore a website and understand its structure"
},
{
"title": "Form filling",
"prompt": "Navigate to the login page, take a snapshot to find the username and password fields, then fill them with test credentials and click the submit button.",
"scenario": "When you need to automate form submission"
},
{
"title": "Data extraction",
"prompt": "Open the product listing page, use agent-browser to extract all product titles and prices from the page, then return the results as a list.",
"scenario": "When you need to scrape structured data from a website"
},
{
"title": "OAuth session reuse",
"prompt": "Connect to my existing Chrome profile at the default location to access my logged-in session on example-site.com. Navigate to the dashboard and check if I am already authenticated.",
"scenario": "When you need to work with authenticated sessions"
}
],
"output_examples": [
{
"input": "agent-browser open example.com && agent-browser snapshot",
"output": "Page loaded successfully. Found 15 clickable elements, 5 input fields, and 3 buttons. Elements are referenced by @e1 through @e15."
},
{
"input": "agent-browser click @e3 && agent-browser get text @e5",
"output": "Clicked element @e3. Text content of element @e5: 'Welcome, User!'"
}
],
"best_practices": [
"Always take a snapshot after page navigation to refresh element refs",
"Use the --json flag for machine-readable output when scripting",
"Add wait commands after navigation for single-page applications"
],
"anti_patterns": [
"Do not assume element refs remain stable across page navigations",
"Avoid using complex CSS selectors when simpler options like role or label are available",
"Do not skip snapshot before interacting - always verify element exists first"
],
"faq": [
{
"question": "What is Agent Browser?",
"answer": "Agent Browser is a headless browser automation CLI tool built by Vercel Labs. It enables AI agents to interact with websites through a simple command-line interface for navigation, form filling, data extraction, and testing."
},
{
"question": "Does this work with Claude Code and Codex?",
"answer": "Yes. This skill is designed for Claude, Codex, and Claude Code. The skill provides the commands and patterns needed for AI agents to control the browser."
},
{
"question": "Can I use this for web scraping?",
"answer": "Yes, Agent Browser can extract text, HTML, attributes, and values from web pages. However, respect website terms of service and rate limits when scraping."
},
{
"question": "How do I handle login-required sites?",
"answer": "Use the session persistence feature (--session flag) to log in once manually, then future runs will reuse the saved cookies. Alternatively, connect to an existing Chrome profile via CDP."
},
{
"question": "What are element refs?",
"answer": "Refs are stable identifiers (like @e1, @e2) assigned to elements in a snapshot. They provide deterministic element selection without relying on fragile CSS selectors."
},
{
"question": "Does this require Chrome to be installed?",
"answer": "Agent Browser uses its own browser automation engine (Rod by Vercel). It may fall back to using system Chrome if needed. The --headed flag shows the browser window for debugging."
}
]
},
"file_structure": [
{
"name": "SKILL.md",
"type": "file",
"path": "SKILL.md",
"lines": 234
}
]
}
Related skills
FAQ
How does an agent select elements reliably?
Run snapshot to get @refs, then act on a ref like 'click @e2'; refs are stable per page load and change on navigation.
Can it use my existing logged-in browser session?
Yes, launch Chrome with remote debugging and connect with --cdp 9222, or persist cookies with a named --session.