.claude/skills/agent-browser/SKILL.md
Headless browser automation CLI for AI agents. Use for web scraping, testing, form filling, screenshots, and any browser interaction. Triggers: "browse", "open website", "click button", "fill form", "screenshot", "scrape", "test login flow", "automate browser", "web automation".
npx skillsauth add kivo360/omoios agent-browserInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
CLI browser automation optimized for AI. Use refs from snapshots for reliable element selection. 93% less context than Playwright MCP, 95% first-try success rate.
agent-browser open <url> # Navigate
agent-browser snapshot -i # Get interactive elements with refs
agent-browser click @e2 # Click by ref
agent-browser fill @e3 "text" # Fill by ref
agent-browser snapshot -i # Re-snapshot after changes
agent-browser close # Close browser
Get accessibility tree with element refs for deterministic selection:
agent-browser snapshot # Full tree
agent-browser snapshot -i # Interactive only (buttons, inputs, links)
agent-browser snapshot -c # Compact (no empty elements)
agent-browser snapshot -d 3 # Limit depth
agent-browser snapshot -i -c --json # Combine for AI parsing
Output example:
- heading "Example Domain" [ref=e1]
- button "Submit" [ref=e2]
- textbox "Email" [ref=e3]
Use refs with @ prefix: agent-browser click @e2
agent-browser open <url> # Go to URL
agent-browser back # Go back
agent-browser forward # Go forward
agent-browser reload # Reload page
agent-browser click @ref # Click element
agent-browser fill @ref "text" # Clear and fill input
agent-browser type @ref "text" # Type into element
agent-browser press Enter # Press key
agent-browser select @ref "value" # Select dropdown option
agent-browser check @ref # Check checkbox
agent-browser hover @ref # Hover element
agent-browser scroll down 500 # Scroll (up/down/left/right)
agent-browser get text @ref # Get text content
agent-browser get value @ref # Get input value
agent-browser get title # Page title
agent-browser get url # Current URL
agent-browser is visible @ref # Check visibility
agent-browser is enabled @ref # Check if enabled
agent-browser is checked @ref # Check if checked
agent-browser wait @ref # Wait for element visible
agent-browser wait 2000 # Wait milliseconds
agent-browser wait --text "Welcome" # Wait for text
agent-browser wait --load networkidle # Wait for network idle
agent-browser screenshot # Base64 to stdout
agent-browser screenshot page.png # Save to file
agent-browser screenshot --full # Full page
agent-browser pdf output.pdf # Save as PDF
agent-browser open https://app.example.com/login
agent-browser snapshot -i
# Identify: textbox "Email" [ref=e1], textbox "Password" [ref=e2], button "Sign In" [ref=e3]
agent-browser fill @e1 "[email protected]"
agent-browser fill @e2 "password123"
agent-browser click @e3
agent-browser wait --url "**/dashboard"
agent-browser snapshot -i # Verify dashboard loaded
agent-browser get text @e1 # Verify welcome message
agent-browser open https://app.example.com/contact
agent-browser snapshot -i
agent-browser fill @e1 "John Doe" # Name field
agent-browser fill @e2 "[email protected]" # Email field
agent-browser fill @e3 "Hello world" # Message field
agent-browser click @e4 # Submit button
agent-browser wait --text "Thank you" # Verify success message
agent-browser snapshot -i # Confirm state
# Save auth after login
agent-browser open https://app.example.com/login
agent-browser snapshot -i && agent-browser fill @e1 "[email protected]"
agent-browser fill @e2 "password" && agent-browser click @e3
agent-browser wait --load networkidle
agent-browser state save auth.json # Save cookies/storage
# Reuse in later tests
agent-browser state load auth.json # Load saved state
agent-browser open https://app.example.com/dashboard # Already logged in
# Test complete user journey
agent-browser open https://shop.example.com
agent-browser snapshot -i
# Search for product
agent-browser fill @e1 "laptop" # Search box
agent-browser click @e2 # Search button
agent-browser wait --load networkidle
agent-browser snapshot -i
# Add to cart
agent-browser click @e5 # First product
agent-browser wait --load networkidle
agent-browser snapshot -i
agent-browser click @e3 # Add to cart button
agent-browser wait --text "Added to cart"
# Checkout
agent-browser click @e4 # Cart icon
agent-browser snapshot -i
agent-browser click @e2 # Checkout button
agent-browser wait --url "**/checkout"
agent-browser open https://app.example.com/component
agent-browser wait --load networkidle
agent-browser screenshot baseline.png --full
# Make changes, then compare
agent-browser screenshot current.png --full
agent-browser open https://app.example.com/form
agent-browser snapshot -i
agent-browser click @e5 # Submit without filling required fields
agent-browser wait 500
agent-browser snapshot -i # Capture error states
agent-browser get text @e1 # Verify error message text
# Run tests in isolated sessions
agent-browser --session test1 open https://app.example.com/feature-a
agent-browser --session test2 open https://app.example.com/feature-b
# Each session has separate cookies/storage
agent-browser --session test1 snapshot -i
agent-browser --session test2 snapshot -i
# List active sessions
agent-browser session list
agent-browser open url --headed # See browser window
agent-browser console # View console messages
agent-browser errors # View page errors
agent-browser highlight @e3 # Highlight element visually
agent-browser trace start # Record trace
# ... run test steps ...
agent-browser trace stop trace.zip # Save for analysis
When refs aren't available:
agent-browser click "#submit"
agent-browser click ".btn-primary"
agent-browser click "text=Sign In"
agent-browser find role button click --name "Submit"
| Flag | Description |
|------|-------------|
| --session <name> | Use isolated session |
| --json | JSON output (for parsing) |
| --headed | Show browser window |
| --full | Full page screenshot |
wait after actions - Ensure page state settles--json for assertions - Parse structured output--headed for debugging - See what's happeningdevelopment
Spec-driven development workflow for turning feature ideas into structured PRDs, requirements, designs, tickets, and tasks. Uses a state machine approach with EXPLORE → REQUIREMENTS → DESIGN → TASKS → SYNC phases. Each phase has validation gates, checkpointing, and session transcript support for cross-sandbox resumption.
development
Generate comprehensive tests including unit, integration, and property-based tests
development
Spec-driven development workflow for turning feature ideas into structured PRDs, requirements, designs, tickets, and tasks. Uses a state machine approach with EXPLORE → REQUIREMENTS → DESIGN → TASKS → SYNC phases. Each phase has validation gates, checkpointing, and session transcript support for cross-sandbox resumption.
development
Plan safe refactoring with dependency analysis, impact assessment, and rollback strategies