Help us improve
Share bugs, ideas, or general feedback.
Browser automation for web testing, form filling, screenshots, and data extraction. Ref-based workflow with best practices for reliable automation.
npx claudepluginhub jagreehal/jagreehal-claude-skills --plugin code-reviewHow this skill is triggered — by the user, by Claude, or both
Slash command
/jagreehal-claude-skills:agent-browserThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Automate browser interactions using a ref-based workflow. Navigate, snapshot, interact, repeat.
Provides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Guides systematic root-cause debugging when tests fail, builds break, or unexpected errors occur. Provides a structured triage checklist to preserve evidence, localize, and fix issues instead of guessing.
Share bugs, ideas, or general feedback.
Automate browser interactions using a ref-based workflow. Navigate, snapshot, interact, repeat.
npm install -g agent-browser
agent-browser install # Download Chromium
agent-browser install --with-deps # Linux: install system deps
agent-browser open <url> # Navigate to page
agent-browser snapshot -i # Get interactive elements with refs
agent-browser click @e1 # Click element by ref
agent-browser fill @e2 "text" # Fill input by ref
agent-browser close # Close browser
agent-browser open <url>agent-browser snapshot -i (returns elements with refs like @e1, @e2)agent-browser open <url> # Navigate to URL
agent-browser back # Go back
agent-browser forward # Go forward
agent-browser reload # Reload page
agent-browser close # Close browser
agent-browser snapshot # Full accessibility tree
agent-browser snapshot -i # Interactive elements only (recommended)
agent-browser snapshot -c # Compact output
agent-browser snapshot -d 3 # Limit depth to 3
agent-browser snapshot -s "#main" # Scope to selector (large pages)
agent-browser click @e1 # Click
agent-browser dblclick @e1 # Double-click
agent-browser fill @e2 "text" # Clear and type
agent-browser type @e2 "text" # Type without clearing
agent-browser press Enter # Press key
agent-browser press Control+a # Key combination
agent-browser hover @e1 # Hover
agent-browser check @e1 # Check checkbox
agent-browser uncheck @e1 # Uncheck checkbox
agent-browser select @e1 "value" # Select dropdown option
agent-browser scroll down 500 # Scroll page
agent-browser scrollintoview @e1 # Scroll element into view
agent-browser drag @e1 @e2 # Drag from source to target
agent-browser upload @e1 file.pdf # Upload file to input
agent-browser get text @e1 # Get element text
agent-browser get value @e1 # Get input value
agent-browser get html @e1 # Get element HTML
agent-browser get attr @e1 href # Get attribute value
agent-browser get title # Get page title
agent-browser get url # Get current URL
agent-browser is visible @e1 # Check if visible
agent-browser is enabled @e1 # Check if enabled
agent-browser is checked @e1 # Check if checked
agent-browser screenshot # Screenshot to stdout
agent-browser screenshot path.png # Save to file
agent-browser screenshot --full # Full page screenshot
agent-browser wait @e1 # Wait for element
agent-browser wait 2000 # Wait milliseconds (avoid)
agent-browser wait --text "Done" # Wait for text to appear
agent-browser wait --load networkidle # Wait for network idle
agent-browser find role button click --name "Submit"
agent-browser find text "Sign In" click
agent-browser find label "Email" fill "user@test.com"
agent-browser --session test1 open site-a.com
agent-browser --session test2 open site-b.com
agent-browser session list
agent-browser state save auth.json # Save auth/cookies
agent-browser state load auth.json # Restore state
agent-browser open example.com --headed # Show browser window
agent-browser console # View console messages
agent-browser errors # View page errors
agent-browser set viewport 1920 1080 # Set viewport size
agent-browser set device "iPhone 14" # Emulate device
agent-browser set media dark # Emulate dark mode
agent-browser set geo 37.7749 -122.4194 # Set geolocation
agent-browser set offline on # Enable offline mode
agent-browser set offline off # Disable offline mode
agent-browser cookies # List all cookies
agent-browser cookies set name value # Set cookie
agent-browser cookies clear # Clear all cookies
agent-browser storage local # List localStorage
agent-browser storage local get key # Get localStorage item
agent-browser storage local set key val # Set localStorage item
agent-browser storage session # List sessionStorage
agent-browser network requests # List network requests
agent-browser network route "**/api/*" # Intercept matching URLs
agent-browser network route "**/api/*" --abort # Block requests
agent-browser network route "**/api/*" --body '{"mock":true}' # Mock response
agent-browser open api.example.com --headers '{"Authorization": "Bearer token"}'
agent-browser set headers '{"X-Custom": "value"}'
agent-browser snapshot -i --json # Machine-readable output
agent-browser get text @e1 --json # For programmatic parsing
snapshot -i (interactive only) to reduce noise@refs from snapshot over semantic locatorsfind role + --name for buttons/links when refs failnetworkidle after form submissionswait --text "..." or wait @ref for dynamic contentwait 2000—flaky and slowfill (clears first) for inputs, not typewait --text or wait --urlstate save)screenshot --full for pages with scrollerrors output when interactions fail silentlyconsole to debug JavaScript issues--headed mode when debugging complex flowsclose)snapshot -c (compact) for large pagessnapshot -s "#scope" to limit snapshot to relevant DOMis visible before interacting with dynamic elementsis enabled before clicking buttons that may be disabledis visible + wait for elements that appear asyncnetwork route --abort to test offline behaviornetwork route --body to mock API responses in testscookies clear between test scenariosstorage local when debugging auth issuesagent-browser open https://example.com/form
agent-browser snapshot -i
# Output: textbox "Email" [ref=e1], textbox "Password" [ref=e2], button "Submit" [ref=e3]
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 # Verify result
# First time: login and save
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
# Later: load state and skip login
agent-browser state load auth.json
agent-browser open https://app.example.com/dashboard
# Already authenticated
agent-browser open https://example.com/wizard
# Step 1
agent-browser snapshot -i
agent-browser fill @e1 "John Doe"
agent-browser click @e2 # Next button
agent-browser wait --text "Step 2"
# Step 2 - MUST re-snapshot after navigation
agent-browser snapshot -i
agent-browser select @e1 "Option B"
agent-browser click @e2 # Next button
agent-browser wait --text "Step 3"
# Step 3
agent-browser snapshot -i
agent-browser check @e1 # Terms checkbox
agent-browser click @e2 # Submit
agent-browser wait --text "Success"
agent-browser open https://example.com
agent-browser screenshot before.png --full
# ... make changes ...
agent-browser screenshot after.png --full
# Test mobile viewport
agent-browser set device "iPhone 14"
agent-browser open https://example.com
agent-browser snapshot -i
agent-browser screenshot mobile.png --full
# Test desktop
agent-browser set viewport 1920 1080
agent-browser reload
agent-browser snapshot -i # Re-snapshot after viewport change
agent-browser screenshot desktop.png --full
# Set up mock before navigation
agent-browser network route "**/api/users" --body '[{"id":1,"name":"Test User"}]'
agent-browser open https://example.com/dashboard
agent-browser snapshot -i
# Page shows mocked data
# Test error handling
agent-browser network route "**/api/users" --abort
agent-browser reload
agent-browser wait --text "Failed to load"
agent-browser open https://example.com/upload
agent-browser snapshot -i
# Output: file input [ref=e1], button "Upload" [ref=e2]
agent-browser upload @e1 /path/to/document.pdf
agent-browser click @e2
agent-browser wait --text "Upload complete"
| Skill | Relationship |
|---|---|
testing-strategy | E2E test patterns |
react-development | Testing React UIs |
storybook-journeys | Visual testing workflows |