[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6G08QKF6RVCAG7ZMT7PE609":3,"skill-same:01M6G08QKF6RVCAG7ZMT7PE609":60},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":22,"publishedAt":34,"linkOnly":35,"markdownContent":36,"markdownBody":37,"frontMatter":38,"refName":39,"commitSha":40,"skillDirectory":41,"forksCount":42,"repositoryHtmlUrl":43,"repositoryHomepageUrl":6,"ownerHtmlUrl":44,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":45,"install":46,"resources":59},"01M6G08QKF6RVCAG7ZMT7PE609","browserbase-browser-automation",null,"Automate web browser interactions using the stagehand CLI for AI agents","kbarbel640-del\u002Fskills","kbarbel640-del","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F255315490?v=4","01M6CJPPQGCCESXMG3K7BBGQ5J","01M6CJPPX2PB2BCZERFVM2C2B3",1,"MIT","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fpkiv\u002Fbrowse\u002Fskills\u002Fbrowser-automation\u002FSKILL.md",[17],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[23,24,25,26,27,28,29,30,31,32,33],"browser automation","automation","browser","browserbase","browserbase browser automation","cli","ai agents","web","web browser","automate","stagehand","2026-11-10 10:12:30",false,"---\nname: browserbase-browser-automation\ndescription: Automate web browser interactions using the stagehand CLI for AI agents\n---\n\n# Browser Automation Skill\n\nAutomate web browser interactions using the `stagehand` CLI for AI agents.\n\n**? CRITICAL - READ THIS FIRST ?**\n\nA Browserbase session with stealth\u002Fproxy\u002Fcaptcha has been pre-created for you.\n\n**YOU MUST USE `stagehand --ws $BROWSERBASE_CONNECT_URL` FOR EVERY COMMAND.**\n\n**DO NOT use `stagehand open` without `--ws` - it will launch a LOCAL browser!**\n\n## When to Use\n\nUse this skill when the user asks to:\n- Browse websites or navigate to URLs\n- Extract data from web pages\n- Fill forms or click buttons\n- Take screenshots of web pages\n- Interact with web applications\n- Automate multi-step web workflows\n\n## Core Concepts\n\nThe `stagehand` CLI provides:\n- **Element references** - Snapshot creates refs like `@0-5` for easy clicking\u002Ffilling\n- **Browserbase support** - Connect to pre-created cloud browser sessions with `--ws`\n\n## Environment Selection\n\n**CRITICAL: A Browserbase session with stealth\u002Fproxy\u002Fcaptcha has been pre-created for you.**\n\nThe session URL is in the `BROWSERBASE_CONNECT_URL` environment variable.\n\n**YOU MUST ALWAYS use `stagehand --ws $BROWSERBASE_CONNECT_URL` for EVERY command:**\n\n```bash\nstagehand --ws $BROWSERBASE_CONNECT_URL open https:\u002F\u002Fexample.com\n```\n\n**WHY:**\n- ✅ Browser runs in Browserbase cloud (NOT locally)\n- ✅ Advanced stealth mode enabled (bypasses Cloudflare)\n- ✅ Residential proxies enabled\n- ✅ CAPTCHA solving enabled\n- ✅ Session recordings at: $BROWSERBASE_DEBUG_URL\n\n**IF YOU FORGET `--ws $BROWSERBASE_CONNECT_URL`:**\n- ❌ Will launch LOCAL Chrome browser\n- ❌ Will NOT use stealth\u002Fproxy\u002Fcaptcha\n- ❌ Will fail the evaluation\n\n## Quick Start Workflow\n\n```bash\n# 1. Navigate to page (connects to pre-created Browserbase session)\nstagehand --ws $BROWSERBASE_CONNECT_URL open https:\u002F\u002Fexample.com\n\n# 2. Get page structure with element refs\nstagehand --ws $BROWSERBASE_CONNECT_URL snapshot -c\n\n# Output includes refs like [0-5], [1-2]:\n# RootWebArea \"Example\" url=\"https:\u002F\u002Fexample.com\"\n#   [0-0] link \"Home\"\n#   [0-1] link \"About\"\n#   [0-2] button \"Sign In\"\n\n# 3. Interact using refs\nstagehand --ws $BROWSERBASE_CONNECT_URL click @0-2\nstagehand --ws $BROWSERBASE_CONNECT_URL fill @0-5 \"search query\"\n\n# 4. Re-snapshot to verify changes\nstagehand --ws $BROWSERBASE_CONNECT_URL snapshot -c\n\n# 5. Stop when done (optional, session persists)\nstagehand --ws $BROWSERBASE_CONNECT_URL stop\n```\n\n## Navigation Commands\n\n**REMEMBER:** Use `stagehand --ws $BROWSERBASE_CONNECT_URL` for ALL commands below.\n\n```bash\n# Navigate to URL\nstagehand --ws $BROWSERBASE_CONNECT_URL open \u003Curl>\n\n# With custom timeout for slow pages\nstagehand --ws $BROWSERBASE_CONNECT_URL open \u003Curl> --timeout 60000\n\n# Page navigation\nstagehand --ws $BROWSERBASE_CONNECT_URL reload\nstagehand --ws $BROWSERBASE_CONNECT_URL back\nstagehand --ws $BROWSERBASE_CONNECT_URL forward\n```\n\n## Element Interaction\n\n### Get Page Structure\n\n```bash\n# Get accessibility tree with element refs\nstagehand --ws $BROWSERBASE_CONNECT_URL snapshot -c\n\n# Get full snapshot with XPath\u002FCSS mappings\nstagehand --ws $BROWSERBASE_CONNECT_URL snapshot --json\n```\n\n### Click Elements\n\n```bash\n# Click by ref (from snapshot)\nstagehand --ws $BROWSERBASE_CONNECT_URL click @0-5\nstagehand --ws $BROWSERBASE_CONNECT_URL click 0-5       # @ prefix optional\n\n# Click with options\nstagehand --ws $BROWSERBASE_CONNECT_URL click @0-5 -b right -c 2  # Right-click twice\n\n# Click at coordinates\nstagehand --ws $BROWSERBASE_CONNECT_URL click_xy 100 200\n```\n\n### Form Filling\n\n```bash\n# Fill input (auto-presses Enter by default)\nstagehand --ws $BROWSERBASE_CONNECT_URL fill @0-5 \"my value\"\n\n# Fill without pressing Enter\nstagehand --ws $BROWSERBASE_CONNECT_URL fill @0-5 \"my value\" --no-press-enter\n\n# Select dropdown options\nstagehand --ws $BROWSERBASE_CONNECT_URL select @0-8 \"Option 1\" \"Option 2\"\n```\n\n### Typing\n\n```bash\n# Type text naturally\nstagehand --ws $BROWSERBASE_CONNECT_URL type \"Hello, world!\"\n\n# Type with delay between characters\nstagehand --ws $BROWSERBASE_CONNECT_URL type \"slow typing\" -d 100\n\n# Press special keys\nstagehand --ws $BROWSERBASE_CONNECT_URL press Enter\nstagehand --ws $BROWSERBASE_CONNECT_URL press Tab\nstagehand --ws $BROWSERBASE_CONNECT_URL press \"Cmd+A\"\n```\n\n## Data Extraction\n\n```bash\n# Get page info\nstagehand --ws $BROWSERBASE_CONNECT_URL get url\nstagehand --ws $BROWSERBASE_CONNECT_URL get title\nstagehand --ws $BROWSERBASE_CONNECT_URL get text body\nstagehand --ws $BROWSERBASE_CONNECT_URL get html @0-5\n\n# Take screenshot\nstagehand --ws $BROWSERBASE_CONNECT_URL screenshot page.png\nstagehand --ws $BROWSERBASE_CONNECT_URL screenshot -f        # Full page\nstagehand --ws $BROWSERBASE_CONNECT_URL screenshot --type jpeg\n\n# Get element coordinates\nstagehand --ws $BROWSERBASE_CONNECT_URL get box @0-5  # Returns center x,y\n```\n\n## Waiting\n\n```bash\n# Wait for page load\nstagehand --ws $BROWSERBASE_CONNECT_URL wait load\nstagehand --ws $BROWSERBASE_CONNECT_URL wait load networkidle\n\n# Wait for element\nstagehand --ws $BROWSERBASE_CONNECT_URL wait selector \".my-class\"\nstagehand --ws $BROWSERBASE_CONNECT_URL wait selector \".my-class\" -t 10000 -s visible\n\n# Wait for time\nstagehand --ws $BROWSERBASE_CONNECT_URL wait timeout 2000\n```\n\n## Multi-Tab Support\n\n```bash\n# List all tabs\nstagehand --ws $BROWSERBASE_CONNECT_URL pages\n\n# Open new tab\nstagehand --ws $BROWSERBASE_CONNECT_URL newpage https:\u002F\u002Fexample.com\n\n# Switch tabs\nstagehand --ws $BROWSERBASE_CONNECT_URL tab_switch 1\n\n# Close tab\nstagehand --ws $BROWSERBASE_CONNECT_URL tab_close 2\n```\n\n## Network Capture\n\nCapture HTTP requests for inspection:\n\n```bash\n# Start capturing\nstagehand --ws $BROWSERBASE_CONNECT_URL network on\n\n# Get capture directory\nstagehand --ws $BROWSERBASE_CONNECT_URL network path\n\n# Stop capturing\nstagehand --ws $BROWSERBASE_CONNECT_URL network off\n\n# Clear captures\nstagehand --ws $BROWSERBASE_CONNECT_URL network clear\n```\n\nCaptured requests are saved as directories with `request.json` and `response.json`.\n\n## Daemon Control\n\n```bash\n# Check status\nstagehand --ws $BROWSERBASE_CONNECT_URL status\n\n# Stop browser\nstagehand --ws $BROWSERBASE_CONNECT_URL stop\n\n# Force stop\nstagehand --ws $BROWSERBASE_CONNECT_URL stop --force\n```\n\n## Element References\n\nAfter `snapshot`, elements have refs you can use:\n\n```\nRootWebArea \"Login Page\"\n  [0-0] heading \"Welcome\"\n  [0-1] textbox \"Email\" name=\"email\"\n  [0-2] textbox \"Password\" name=\"password\"\n  [0-3] button \"Sign In\"\n```\n\nUse these refs directly:\n```bash\nstagehand --ws $BROWSERBASE_CONNECT_URL fill @0-1 \"user@example.com\"\nstagehand --ws $BROWSERBASE_CONNECT_URL fill @0-2 \"mypassword\"\nstagehand --ws $BROWSERBASE_CONNECT_URL click @0-3\n```\n\n## Best Practices\n\n### 1. Always snapshot after navigation\n```bash\nstagehand --ws $BROWSERBASE_CONNECT_URL open https:\u002F\u002Fexample.com\nstagehand --ws $BROWSERBASE_CONNECT_URL snapshot -c  # Get refs\n```\n\n### 2. Re-snapshot after actions that change the page\n```bash\nstagehand --ws $BROWSERBASE_CONNECT_URL click @0-5\nstagehand --ws $BROWSERBASE_CONNECT_URL snapshot -c  # Get new state\n```\n\n### 3. Use refs instead of selectors\n```bash\n# ✅ Good: Use refs from snapshot\nstagehand --ws $BROWSERBASE_CONNECT_URL click @0-5\n\n# ❌ Avoid: Manual selectors (refs are more reliable)\nstagehand --ws $BROWSERBASE_CONNECT_URL click \"#submit-button\"\n```\n\n### 4. Wait for elements when needed\n```bash\nstagehand --ws $BROWSERBASE_CONNECT_URL open https:\u002F\u002Fslow-site.com\nstagehand --ws $BROWSERBASE_CONNECT_URL wait selector \".content\" -s visible\nstagehand --ws $BROWSERBASE_CONNECT_URL snapshot -c\n```\n\n### 5. Always use --ws $BROWSERBASE_CONNECT_URL\n```bash\n# ✅ Correct: Remote browser (connects to pre-created Browserbase session)\nstagehand --ws $BROWSERBASE_CONNECT_URL open https:\u002F\u002Fexample.com\n\n# ❌ Wrong: Local browser (will fail in evals, launches Chrome locally)\nstagehand open https:\u002F\u002Fexample.com\n```\n\n## Common Patterns\n\n### Login Flow\n```bash\nstagehand --ws $BROWSERBASE_CONNECT_URL open https:\u002F\u002Fexample.com\u002Flogin\nstagehand --ws $BROWSERBASE_CONNECT_URL snapshot -c\n# [0-5] textbox \"Email\"\n# [0-6] textbox \"Password\"\n# [0-7] button \"Sign In\"\nstagehand --ws $BROWSERBASE_CONNECT_URL fill @0-5 \"user@example.com\"\nstagehand --ws $BROWSERBASE_CONNECT_URL fill @0-6 \"password123\"\nstagehand --ws $BROWSERBASE_CONNECT_URL click @0-7\nstagehand --ws $BROWSERBASE_CONNECT_URL wait load\nstagehand --ws $BROWSERBASE_CONNECT_URL snapshot -c  # Verify logged in\n```\n\n### Search and Extract\n```bash\nstagehand --ws $BROWSERBASE_CONNECT_URL open https:\u002F\u002Fexample.com\nstagehand --ws $BROWSERBASE_CONNECT_URL snapshot -c\n# [0-3] textbox \"Search\"\nstagehand --ws $BROWSERBASE_CONNECT_URL fill @0-3 \"my query\"\nstagehand --ws $BROWSERBASE_CONNECT_URL wait selector \".results\"\nstagehand --ws $BROWSERBASE_CONNECT_URL snapshot -c\n# [1-0] text \"Result 1\"\n# [1-1] text \"Result 2\"\nstagehand --ws $BROWSERBASE_CONNECT_URL get text @1-0\nstagehand --ws $BROWSERBASE_CONNECT_URL get text @1-1\n```\n\n### Multi-Page Navigation\n```bash\nstagehand --ws $BROWSERBASE_CONNECT_URL open https:\u002F\u002Fexample.com\nstagehand --ws $BROWSERBASE_CONNECT_URL snapshot -c\n# [0-5] link \"Next Page\"\nstagehand --ws $BROWSERBASE_CONNECT_URL click @0-5\nstagehand --ws $BROWSERBASE_CONNECT_URL wait load\nstagehand --ws $BROWSERBASE_CONNECT_URL snapshot -c  # Get new page structure\n```\n\n## Troubleshooting\n\n### Browser won't start\n- Check that `stagehand` is installed: `which stagehand`\n- Check status: `stagehand --ws $BROWSERBASE_CONNECT_URL status`\n- Force stop and retry: `stagehand --ws $BROWSERBASE_CONNECT_URL stop`\n\n### Element not found\n- Take a snapshot to verify refs: `stagehand --ws $BROWSERBASE_CONNECT_URL snapshot -c`\n- Wait for element to appear: `stagehand --ws $BROWSERBASE_CONNECT_URL wait selector ...`\n- Check if ref changed after page update\n\n### Page not loading\n- Increase timeout: `stagehand --ws $BROWSERBASE_CONNECT_URL open \u003Curl> --timeout 60000`\n- Wait for load state: `stagehand --ws $BROWSERBASE_CONNECT_URL wait load networkidle`\n\n### Commands failing with \"session not found\"\n- The daemon auto-recovers from crashes\n- If issues persist: `stagehand --ws $BROWSERBASE_CONNECT_URL stop --force && stagehand --ws $BROWSERBASE_CONNECT_URL open \u003Curl>`\n\n## Performance Tips\n\n1. **Use compact snapshots** (`-c`) for faster parsing\n2. **Wait strategically** - only wait when needed\n3. **Stop browser when done** to free resources\n4. **Use refs over selectors** - faster and more reliable\n\n## Important Notes\n\n- Browser state persists between commands (cookies, refs, etc.)\n- Refs are invalidated when the page changes significantly\n- Always take a new snapshot after navigation or major DOM changes\n- The daemon auto-starts on first command\n- Multiple sessions supported via `--session` flag or `BROWSE_SESSION` env var\n","# Browser Automation Skill\n\nAutomate web browser interactions using the `stagehand` CLI for AI agents.\n\n**? CRITICAL - READ THIS FIRST ?**\n\nA Browserbase session with stealth\u002Fproxy\u002Fcaptcha has been pre-created for you.\n\n**YOU MUST USE `stagehand --ws $BROWSERBASE_CONNECT_URL` FOR EVERY COMMAND.**\n\n**DO NOT use `stagehand open` without `--ws` - it will launch a LOCAL browser!**\n\n## When to Use\n\nUse this skill when the user asks to:\n- Browse websites or navigate to URLs\n- Extract data from web pages\n- Fill forms or click buttons\n- Take screenshots of web pages\n- Interact with web applications\n- Automate multi-step web workflows\n\n## Core Concepts\n\nThe `stagehand` CLI provides:\n- **Element references** - Snapshot creates refs like `@0-5` for easy clicking\u002Ffilling\n- **Browserbase support** - Connect to pre-created cloud browser sessions with `--ws`\n\n## Environment Selection\n\n**CRITICAL: A Browserbase session with stealth\u002Fproxy\u002Fcaptcha has been pre-created for you.**\n\nThe session URL is in the `BROWSERBASE_CONNECT_URL` environment variable.\n\n**YOU MUST ALWAYS use `stagehand --ws $BROWSERBASE_CONNECT_URL` for EVERY command:**\n\n```bash\nstagehand --ws $BROWSERBASE_CONNECT_URL open https:\u002F\u002Fexample.com\n```\n\n**WHY:**\n- ✅ Browser runs in Browserbase cloud (NOT locally)\n- ✅ Advanced stealth mode enabled (bypasses Cloudflare)\n- ✅ Residential proxies enabled\n- ✅ CAPTCHA solving enabled\n- ✅ Session recordings at: $BROWSERBASE_DEBUG_URL\n\n**IF YOU FORGET `--ws $BROWSERBASE_CONNECT_URL`:**\n- ❌ Will launch LOCAL Chrome browser\n- ❌ Will NOT use stealth\u002Fproxy\u002Fcaptcha\n- ❌ Will fail the evaluation\n\n## Quick Start Workflow\n\n```bash\n# 1. Navigate to page (connects to pre-created Browserbase session)\nstagehand --ws $BROWSERBASE_CONNECT_URL open https:\u002F\u002Fexample.com\n\n# 2. Get page structure with element refs\nstagehand --ws $BROWSERBASE_CONNECT_URL snapshot -c\n\n# Output includes refs like [0-5], [1-2]:\n# RootWebArea \"Example\" url=\"https:\u002F\u002Fexample.com\"\n#   [0-0] link \"Home\"\n#   [0-1] link \"About\"\n#   [0-2] button \"Sign In\"\n\n# 3. Interact using refs\nstagehand --ws $BROWSERBASE_CONNECT_URL click @0-2\nstagehand --ws $BROWSERBASE_CONNECT_URL fill @0-5 \"search query\"\n\n# 4. Re-snapshot to verify changes\nstagehand --ws $BROWSERBASE_CONNECT_URL snapshot -c\n\n# 5. Stop when done (optional, session persists)\nstagehand --ws $BROWSERBASE_CONNECT_URL stop\n```\n\n## Navigation Commands\n\n**REMEMBER:** Use `stagehand --ws $BROWSERBASE_CONNECT_URL` for ALL commands below.\n\n```bash\n# Navigate to URL\nstagehand --ws $BROWSERBASE_CONNECT_URL open \u003Curl>\n\n# With custom timeout for slow pages\nstagehand --ws $BROWSERBASE_CONNECT_URL open \u003Curl> --timeout 60000\n\n# Page navigation\nstagehand --ws $BROWSERBASE_CONNECT_URL reload\nstagehand --ws $BROWSERBASE_CONNECT_URL back\nstagehand --ws $BROWSERBASE_CONNECT_URL forward\n```\n\n## Element Interaction\n\n### Get Page Structure\n\n```bash\n# Get accessibility tree with element refs\nstagehand --ws $BROWSERBASE_CONNECT_URL snapshot -c\n\n# Get full snapshot with XPath\u002FCSS mappings\nstagehand --ws $BROWSERBASE_CONNECT_URL snapshot --json\n```\n\n### Click Elements\n\n```bash\n# Click by ref (from snapshot)\nstagehand --ws $BROWSERBASE_CONNECT_URL click @0-5\nstagehand --ws $BROWSERBASE_CONNECT_URL click 0-5       # @ prefix optional\n\n# Click with options\nstagehand --ws $BROWSERBASE_CONNECT_URL click @0-5 -b right -c 2  # Right-click twice\n\n# Click at coordinates\nstagehand --ws $BROWSERBASE_CONNECT_URL click_xy 100 200\n```\n\n### Form Filling\n\n```bash\n# Fill input (auto-presses Enter by default)\nstagehand --ws $BROWSERBASE_CONNECT_URL fill @0-5 \"my value\"\n\n# Fill without pressing Enter\nstagehand --ws $BROWSERBASE_CONNECT_URL fill @0-5 \"my value\" --no-press-enter\n\n# Select dropdown options\nstagehand --ws $BROWSERBASE_CONNECT_URL select @0-8 \"Option 1\" \"Option 2\"\n```\n\n### Typing\n\n```bash\n# Type text naturally\nstagehand --ws $BROWSERBASE_CONNECT_URL type \"Hello, world!\"\n\n# Type with delay between characters\nstagehand --ws $BROWSERBASE_CONNECT_URL type \"slow typing\" -d 100\n\n# Press special keys\nstagehand --ws $BROWSERBASE_CONNECT_URL press Enter\nstagehand --ws $BROWSERBASE_CONNECT_URL press Tab\nstagehand --ws $BROWSERBASE_CONNECT_URL press \"Cmd+A\"\n```\n\n## Data Extraction\n\n```bash\n# Get page info\nstagehand --ws $BROWSERBASE_CONNECT_URL get url\nstagehand --ws $BROWSERBASE_CONNECT_URL get title\nstagehand --ws $BROWSERBASE_CONNECT_URL get text body\nstagehand --ws $BROWSERBASE_CONNECT_URL get html @0-5\n\n# Take screenshot\nstagehand --ws $BROWSERBASE_CONNECT_URL screenshot page.png\nstagehand --ws $BROWSERBASE_CONNECT_URL screenshot -f        # Full page\nstagehand --ws $BROWSERBASE_CONNECT_URL screenshot --type jpeg\n\n# Get element coordinates\nstagehand --ws $BROWSERBASE_CONNECT_URL get box @0-5  # Returns center x,y\n```\n\n## Waiting\n\n```bash\n# Wait for page load\nstagehand --ws $BROWSERBASE_CONNECT_URL wait load\nstagehand --ws $BROWSERBASE_CONNECT_URL wait load networkidle\n\n# Wait for element\nstagehand --ws $BROWSERBASE_CONNECT_URL wait selector \".my-class\"\nstagehand --ws $BROWSERBASE_CONNECT_URL wait selector \".my-class\" -t 10000 -s visible\n\n# Wait for time\nstagehand --ws $BROWSERBASE_CONNECT_URL wait timeout 2000\n```\n\n## Multi-Tab Support\n\n```bash\n# List all tabs\nstagehand --ws $BROWSERBASE_CONNECT_URL pages\n\n# Open new tab\nstagehand --ws $BROWSERBASE_CONNECT_URL newpage https:\u002F\u002Fexample.com\n\n# Switch tabs\nstagehand --ws $BROWSERBASE_CONNECT_URL tab_switch 1\n\n# Close tab\nstagehand --ws $BROWSERBASE_CONNECT_URL tab_close 2\n```\n\n## Network Capture\n\nCapture HTTP requests for inspection:\n\n```bash\n# Start capturing\nstagehand --ws $BROWSERBASE_CONNECT_URL network on\n\n# Get capture directory\nstagehand --ws $BROWSERBASE_CONNECT_URL network path\n\n# Stop capturing\nstagehand --ws $BROWSERBASE_CONNECT_URL network off\n\n# Clear captures\nstagehand --ws $BROWSERBASE_CONNECT_URL network clear\n```\n\nCaptured requests are saved as directories with `request.json` and `response.json`.\n\n## Daemon Control\n\n```bash\n# Check status\nstagehand --ws $BROWSERBASE_CONNECT_URL status\n\n# Stop browser\nstagehand --ws $BROWSERBASE_CONNECT_URL stop\n\n# Force stop\nstagehand --ws $BROWSERBASE_CONNECT_URL stop --force\n```\n\n## Element References\n\nAfter `snapshot`, elements have refs you can use:\n\n```\nRootWebArea \"Login Page\"\n  [0-0] heading \"Welcome\"\n  [0-1] textbox \"Email\" name=\"email\"\n  [0-2] textbox \"Password\" name=\"password\"\n  [0-3] button \"Sign In\"\n```\n\nUse these refs directly:\n```bash\nstagehand --ws $BROWSERBASE_CONNECT_URL fill @0-1 \"user@example.com\"\nstagehand --ws $BROWSERBASE_CONNECT_URL fill @0-2 \"mypassword\"\nstagehand --ws $BROWSERBASE_CONNECT_URL click @0-3\n```\n\n## Best Practices\n\n### 1. Always snapshot after navigation\n```bash\nstagehand --ws $BROWSERBASE_CONNECT_URL open https:\u002F\u002Fexample.com\nstagehand --ws $BROWSERBASE_CONNECT_URL snapshot -c  # Get refs\n```\n\n### 2. Re-snapshot after actions that change the page\n```bash\nstagehand --ws $BROWSERBASE_CONNECT_URL click @0-5\nstagehand --ws $BROWSERBASE_CONNECT_URL snapshot -c  # Get new state\n```\n\n### 3. Use refs instead of selectors\n```bash\n# ✅ Good: Use refs from snapshot\nstagehand --ws $BROWSERBASE_CONNECT_URL click @0-5\n\n# ❌ Avoid: Manual selectors (refs are more reliable)\nstagehand --ws $BROWSERBASE_CONNECT_URL click \"#submit-button\"\n```\n\n### 4. Wait for elements when needed\n```bash\nstagehand --ws $BROWSERBASE_CONNECT_URL open https:\u002F\u002Fslow-site.com\nstagehand --ws $BROWSERBASE_CONNECT_URL wait selector \".content\" -s visible\nstagehand --ws $BROWSERBASE_CONNECT_URL snapshot -c\n```\n\n### 5. Always use --ws $BROWSERBASE_CONNECT_URL\n```bash\n# ✅ Correct: Remote browser (connects to pre-created Browserbase session)\nstagehand --ws $BROWSERBASE_CONNECT_URL open https:\u002F\u002Fexample.com\n\n# ❌ Wrong: Local browser (will fail in evals, launches Chrome locally)\nstagehand open https:\u002F\u002Fexample.com\n```\n\n## Common Patterns\n\n### Login Flow\n```bash\nstagehand --ws $BROWSERBASE_CONNECT_URL open https:\u002F\u002Fexample.com\u002Flogin\nstagehand --ws $BROWSERBASE_CONNECT_URL snapshot -c\n# [0-5] textbox \"Email\"\n# [0-6] textbox \"Password\"\n# [0-7] button \"Sign In\"\nstagehand --ws $BROWSERBASE_CONNECT_URL fill @0-5 \"user@example.com\"\nstagehand --ws $BROWSERBASE_CONNECT_URL fill @0-6 \"password123\"\nstagehand --ws $BROWSERBASE_CONNECT_URL click @0-7\nstagehand --ws $BROWSERBASE_CONNECT_URL wait load\nstagehand --ws $BROWSERBASE_CONNECT_URL snapshot -c  # Verify logged in\n```\n\n### Search and Extract\n```bash\nstagehand --ws $BROWSERBASE_CONNECT_URL open https:\u002F\u002Fexample.com\nstagehand --ws $BROWSERBASE_CONNECT_URL snapshot -c\n# [0-3] textbox \"Search\"\nstagehand --ws $BROWSERBASE_CONNECT_URL fill @0-3 \"my query\"\nstagehand --ws $BROWSERBASE_CONNECT_URL wait selector \".results\"\nstagehand --ws $BROWSERBASE_CONNECT_URL snapshot -c\n# [1-0] text \"Result 1\"\n# [1-1] text \"Result 2\"\nstagehand --ws $BROWSERBASE_CONNECT_URL get text @1-0\nstagehand --ws $BROWSERBASE_CONNECT_URL get text @1-1\n```\n\n### Multi-Page Navigation\n```bash\nstagehand --ws $BROWSERBASE_CONNECT_URL open https:\u002F\u002Fexample.com\nstagehand --ws $BROWSERBASE_CONNECT_URL snapshot -c\n# [0-5] link \"Next Page\"\nstagehand --ws $BROWSERBASE_CONNECT_URL click @0-5\nstagehand --ws $BROWSERBASE_CONNECT_URL wait load\nstagehand --ws $BROWSERBASE_CONNECT_URL snapshot -c  # Get new page structure\n```\n\n## Troubleshooting\n\n### Browser won't start\n- Check that `stagehand` is installed: `which stagehand`\n- Check status: `stagehand --ws $BROWSERBASE_CONNECT_URL status`\n- Force stop and retry: `stagehand --ws $BROWSERBASE_CONNECT_URL stop`\n\n### Element not found\n- Take a snapshot to verify refs: `stagehand --ws $BROWSERBASE_CONNECT_URL snapshot -c`\n- Wait for element to appear: `stagehand --ws $BROWSERBASE_CONNECT_URL wait selector ...`\n- Check if ref changed after page update\n\n### Page not loading\n- Increase timeout: `stagehand --ws $BROWSERBASE_CONNECT_URL open \u003Curl> --timeout 60000`\n- Wait for load state: `stagehand --ws $BROWSERBASE_CONNECT_URL wait load networkidle`\n\n### Commands failing with \"session not found\"\n- The daemon auto-recovers from crashes\n- If issues persist: `stagehand --ws $BROWSERBASE_CONNECT_URL stop --force && stagehand --ws $BROWSERBASE_CONNECT_URL open \u003Curl>`\n\n## Performance Tips\n\n1. **Use compact snapshots** (`-c`) for faster parsing\n2. **Wait strategically** - only wait when needed\n3. **Stop browser when done** to free resources\n4. **Use refs over selectors** - faster and more reliable\n\n## Important Notes\n\n- Browser state persists between commands (cookies, refs, etc.)\n- Refs are invalidated when the page changes significantly\n- Always take a new snapshot after navigation or major DOM changes\n- The daemon auto-starts on first command\n- Multiple sessions supported via `--session` flag or `BROWSE_SESSION` env var\n",{"name":5,"description":7},"main","e7e336ac628c3e3bd771aff1aaa469c93778f94a","skills\u002Fpkiv\u002Fbrowse\u002Fskills\u002Fbrowser-automation",0,"https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del","2026-08-23 22:39:37",{"source":8,"skillName":5,"commands":47,"prompt":57,"zipAvailable":58},[48,51,54],{"tool":49,"command":50},"npx","npx skills add kbarbel640-del\u002Fskills --skill browserbase-browser-automation",{"tool":52,"command":53},"bunx","bunx skills add kbarbel640-del\u002Fskills --skill browserbase-browser-automation",{"tool":55,"command":56},"pnpm","pnpm dlx skills add kbarbel640-del\u002Fskills --skill browserbase-browser-automation","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fpkiv\u002Fbrowse\u002Fskills\u002Fbrowser-automation\u002FSKILL.md",true,[],[61,91,113,134,140,160],{"skillNo":62,"name":63,"nameZh":6,"description":64,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":65,"categories":66,"keywords":72,"publishedAt":34},"01M6G8J55967D6281ACMKAKTEQ","crowd-prompting","A marketplace where AI agents improve prompts, system instructions, tool descriptions, and other text-based content with domain expertise from real-world operations — and earn tokens for valuable contributions.","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzzadrian\u002Fcrowd-prompting\u002FSKILL.md",[67],{"categoryNo":68,"categoryName":69,"taxonomyType":70,"taxonomyTypeDesc":71},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,29],"crowd prompting","prompting","api","with","tokens","domain","world","prompts","operations","instructions","text","tool","system","improve","productivity","marketplace","https","content",{"skillNo":92,"name":93,"nameZh":6,"description":94,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":95,"categories":96,"keywords":98,"publishedAt":34},"01M6G8J0PKPAYVET6BWE8W4C26","dilemm-ai","Compete in DilemmAI, the prisoner's dilemma AI arena at dilemm.ai. Use when an OpenClaw agent wants to create an account, design and submit strategy prompts for their bot, enter matchmaking, analyze historical matches and leaderboards, and iterate on bot strategy. Requires headless browser automation (no API available yet).","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzyori\u002Fdilemm-ai\u002FSKILL.md",[97],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},[99,75,100,101,25,102,103,24,23,104,105,106,107,108,109,110,111,80,112],"dilemm ai","arena","analyze","openclaw agent","create","bot","openclaw","design","strategy","headless","compete","submit","matchmaking","use",{"skillNo":114,"name":115,"nameZh":6,"description":116,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":117,"categories":118,"keywords":122,"publishedAt":34},"01M6G8HWAF3K9SW7NP3Z83CPJ6","arxiv-paper-reviews","Interact with arXiv Crawler API to fetch papers, read reviews, and submit comments. Use when working with arXiv papers, fetching paper lists by date\u002Fcategory\u002Finterest, viewing paper details with comments, or submitting paper reviews via API at http:\u002F\u002F150.158.152.82:8000.","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzxrys\u002Fweak-accept\u002FSKILL.md",[119],{"categoryNo":120,"categoryName":121,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000021","资料检索与研究",[123,124,125,126,127,128,129,76,130,110,112,131,75,132,133],"arxiv paper reviews","reviews","arxiv","paper","crawler","papers","comments","fetch","read","http","via",{"skillNo":135,"name":115,"nameZh":6,"description":116,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":136,"categories":137,"keywords":139,"publishedAt":34},"01M6G8HQJ7N7WMY6YV7D7SSJ16","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzxrys\u002Farxiv-paper-reviews\u002FSKILL.md",[138],{"categoryNo":120,"categoryName":121,"taxonomyType":20,"taxonomyTypeDesc":21},[126,125,124,123,133,128,129,76,127,110,112,130,131,75,132],{"skillNo":141,"name":142,"nameZh":6,"description":143,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":144,"categories":145,"keywords":146,"publishedAt":34},"01M6G8HM95Y64JNVFC2HN4E2BG","git-summary","Get a quick summary of the current Git repository including status, recent commits, branches, and contributors.","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzweack\u002Fgit-summary\u002FSKILL.md",[],[147,148,149,150,151,152,153,154,155,156,157,158,159],"git","summary","git summary","commits","repository","win32","status","linux","contributors","true","quick","get","branches",{"skillNo":161,"name":162,"nameZh":6,"description":163,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":164,"categories":165,"keywords":170,"publishedAt":34},"01M6G8HGEGF05CNEJCGVYFSC4R","agent-constitution","Interact with AgentConstitution governance contracts on Base Sepolia. Check compliance, read rules, log actions, query governance state.","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fztsalexey\u002Fagent-constitution\u002FSKILL.md",[166,167],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":168,"categoryName":169,"taxonomyType":70,"taxonomyTypeDesc":71},"01JBSEEDCAT000000000000037","律师与法务",[171,172,173,174,76,175,176,39,177,131,178,179,180,181,182,89,183,184,185],"agent constitution","constitution","contracts","tree","query","base","log","check","Rules","projects","compliance","actions","state","governance","github"]