Skill v1.0.0
currentAutomated scan100/100name: browser-use description: "MUST load BEFORE running any browser-use command. This is the only bridge between the agent and the browser — contains all CLI syntax (open, click, hover, scroll, input, state, eval, etc.), wrapper rules, session management, and store-task restrictions. Without this skill, browser-use commands will fail or use wrong syntax." allowed-tools: Bash(browser-use:*) metadata: version: "1.0.0"
<!-- VIBE-SELLER CUSTOMIZATIONS: If syncing from upstream browser-use, re-apply: (1) this Store Tasks warning banner, (2) the Browser Modes section replacement (removed --profile/--cdp-url/--connect examples), (3) removed Authenticated Browsing and Connecting to Existing Chrome workflow sections, (4) "(blocked in store tasks)" notes in Global Options table. See git blame for original changes. -->
Store Tasks: When running inside a store task,browser-useis wrappedby a per-store script that auto-injects--sessionand--cdp-url.The flags--profile,--cdp-url, and--connectare blocked by thewrapper — do not use them. Use the default session for the store's sellercenter, or--session <slug>-auxfor non-seller-center sites.No-store (orchestrator) Tasks:browser-useis wrapped by the store-lesswebbrowser script (bin/_web). Use it only for neutral public web work(search, tracking/logistics, research) — NEVER for a store's seller center orto log into store/platform accounts (create a store sub-task for those). Thesame flags are blocked here.These flags only work in the workspace assistant (rawbrowser-use, no wrapper).
Browser Automation with browser-use CLI
The browser-use command provides fast, persistent browser automation. A background daemon keeps the browser open across commands, giving ~50ms latency per call.
Prerequisites
browser-use doctor # Verify installation
For setup details, see https://github.com/browser-use/browser-use/blob/main/browser_use/skill_cli/README.md
Core Workflow
- Navigate:
browser-use open <url>— starts browser if needed - Inspect:
browser-use state— returns clickable elements with indices - Interact: use indices from state (
browser-use click 5,browser-use input 3 "text") - Verify:
browser-use stateorbrowser-use screenshotto confirm - Repeat: browser stays open between commands
- Cleanup:
browser-use closewhen done
Browser Modes
browser-use open <url> # Default: headless Chromiumbrowser-use --headed open <url> # Visible windowbrowser-use --session <name> open <url> # Target a named session
Store tasks only:--profile,--cdp-url, and--connectare blockedby the store wrapper. The wrapper auto-injects the correct session and CDPURL. Use--session <slug>-auxfor non-seller-center browsing.
Commands
# Navigationbrowser-use open <url> # Navigate to URLbrowser-use back # Go back in historybrowser-use scroll down # Scroll down (--amount N for pixels)browser-use scroll up # Scroll upbrowser-use switch <tab> # Switch to tab by indexbrowser-use close-tab [tab] # Close tab (current if no index)# Page State — always run state first to get element indicesbrowser-use state # URL, title, clickable elements with indicesbrowser-use screenshot [path.png] # Screenshot (base64 if no path, --full for full page)# Interactions — use indices from statebrowser-use click <index> # Click element by indexbrowser-use click <x> <y> # Click at pixel coordinatesbrowser-use type "text" # Type into focused elementbrowser-use input <index> "text" # Click element, then typebrowser-use keys "Enter" # Send keyboard keys (also "Control+a", etc.)browser-use select <index> "option" # Select dropdown optionbrowser-use upload <index> <path> # Upload file to file inputbrowser-use hover <index> # Hover over elementbrowser-use dblclick <index> # Double-click elementbrowser-use rightclick <index> # Right-click element# Data Extractionbrowser-use eval "js code" # Execute JavaScript, return resultbrowser-use get title # Page titlebrowser-use get html [--selector "h1"] # Page HTML (or scoped to selector)browser-use get text <index> # Element text contentbrowser-use get value <index> # Input/textarea valuebrowser-use get attributes <index> # Element attributesbrowser-use get bbox <index> # Bounding box (x, y, width, height)# Waitbrowser-use wait selector "css" # Wait for element (--state visible|hidden|attached|detached, --timeout ms)browser-use wait text "text" # Wait for text to appear# Cookiesbrowser-use cookies get [--url <url>] # Get cookies (optionally filtered)browser-use cookies set <name> <value> # Set cookie (--domain, --secure, --http-only, --same-site, --expires)browser-use cookies clear [--url <url>] # Clear cookiesbrowser-use cookies export <file> # Export to JSONbrowser-use cookies import <file> # Import from JSON# Python — persistent session with browser accessbrowser-use python "code" # Execute Python (variables persist across calls)browser-use python --file script.py # Run filebrowser-use python --vars # Show defined variablesbrowser-use python --reset # Clear namespace# Sessionbrowser-use close # Close browser and stop daemonbrowser-use sessions # List active sessionsbrowser-use close --all # Close all sessions
The Python browser object provides: browser.url, browser.title, browser.html, browser.goto(url), browser.back(), browser.click(index), browser.type(text), browser.input(index, text), browser.keys(keys), browser.upload(index, path), browser.screenshot(path), browser.scroll(direction, amount), browser.wait(seconds).
Cloud API
browser-use cloud connect # Provision cloud browser and connectbrowser-use cloud connect --timeout 120 --proxy-country US # With optionsbrowser-use cloud login <api-key> # Save API key (or set BROWSER_USE_API_KEY)browser-use cloud logout # Remove API keybrowser-use cloud v2 GET /browsers # REST passthrough (v2 or v3)browser-use cloud v2 POST /tasks '{"task":"...","url":"..."}'browser-use cloud v2 poll <task-id> # Poll task until donebrowser-use cloud v2 --help # Show API endpoints
cloud connect provisions a cloud browser, connects via CDP, and prints a live URL. browser-use close disconnects AND stops the cloud browser.
Tunnels
browser-use tunnel <port> # Start Cloudflare tunnel (idempotent)browser-use tunnel list # Show active tunnelsbrowser-use tunnel stop <port> # Stop tunnelbrowser-use tunnel stop --all # Stop all tunnels
Profile Management
browser-use profile list # List detected browsers and profilesbrowser-use profile sync --all # Sync profiles to cloudbrowser-use profile update # Download/update profile-use binary
Command Chaining
Commands can be chained with &&. The browser persists via the daemon, so chaining is safe and efficient.
browser-use open https://example.com && browser-use statebrowser-use input 5 "user@example.com" && browser-use input 6 "password" && browser-use click 7
Chain when you don't need intermediate output. Run separately when you need to parse state to discover indices first.
Common Workflows
Exposing Local Dev Servers
browser-use tunnel 3000 # → https://abc.trycloudflare.combrowser-use open https://abc.trycloudflare.com # Browse the tunnel
Global Options
| Option | Description | |
|---|---|---|
--headed | Show browser window | |
--session NAME | Target a named session (default: "default") | |
--json | Output as JSON | |
--profile [NAME] | Use real Chrome profile (blocked in store tasks) | |
--connect | Auto-discover running Chrome (blocked in store tasks) | |
--cdp-url <url> | Connect via CDP URL (blocked in store tasks) | |
--mcp | Run as MCP server (blocked in store tasks) |
Tips
- Always run `state` first to see available elements and their indices
- Use `--headed` for debugging to see what the browser is doing
- Sessions persist — browser stays open between commands
- CLI aliases:
bu,browser, andbrowseruseall work
Troubleshooting
- Browser won't start?
browser-use closethenbrowser-use --headed open <url> - Element not found?
browser-use scroll downthenbrowser-use state - Run diagnostics:
browser-use doctor
Cleanup
browser-use close # Close browser sessionbrowser-use tunnel stop --all # Stop tunnels (if any)