[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6D31N1ZP9MG12CV1CHW38GS":3,"skill-same:01M6D31N1ZP9MG12CV1CHW38GS":75},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":26,"publishedAt":47,"linkOnly":48,"markdownContent":49,"markdownBody":50,"frontMatter":51,"refName":52,"commitSha":53,"skillDirectory":54,"forksCount":55,"repositoryHtmlUrl":56,"repositoryHomepageUrl":6,"ownerHtmlUrl":57,"ownerBlogUrl":58,"ownerDescription":59,"updatedAt":60,"install":61,"resources":74},"01M6D31N1ZP9MG12CV1CHW38GS","agent-browser",null,"Browser automation using Vercel's agent-browser CLI. Use when you need to interact with web pages, fill forms, take screenshots, or scrape data. Alternative to Playwright MCP - uses Bash commands with ref-based element selection. Triggers on \"browse website\", \"fill form\", \"click button\", \"take screenshot\", \"scrape page\", \"web automation\".","hemory\u002Famp-legacy-do-not-use","hemory","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F21179881?v=4","01M6D31HFJ391DN8N0JP8AQGFE","Hemory Phifer","01M6D31HKXVTEN27AT6R4PP2ZJ",3,"MIT","https:\u002F\u002Fgithub.com\u002Fhemory\u002Famp-legacy-do-not-use\u002Fblob\u002Fmain\u002F.claude\u002Fplugins\u002Fcompound-engineering\u002Fskills\u002Fagent-browser\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],"agent browser","browser","browse","triggers","pages","commands","scrape page","selection","vercel","use","page","Bash","MCP","scrape","website","web","playwright","automation","browser automation","cli","2026-11-10 10:12:30",false,"---\nname: agent-browser\ndescription: Browser automation using Vercel's agent-browser CLI. Use when you need to interact with web pages, fill forms, take screenshots, or scrape data. Alternative to Playwright MCP - uses Bash commands with ref-based element selection. Triggers on \"browse website\", \"fill form\", \"click button\", \"take screenshot\", \"scrape page\", \"web automation\".\n---\n\n# agent-browser: CLI Browser Automation\n\nVercel's headless browser automation CLI designed for AI agents. Uses ref-based selection (@e1, @e2) from accessibility snapshots.\n\n## Setup Check\n\n```bash\n# Check installation\ncommand -v agent-browser >\u002Fdev\u002Fnull 2>&1 && echo \"Installed\" || echo \"NOT INSTALLED - run: npm install -g agent-browser && agent-browser install\"\n```\n\n### Install if needed\n\n```bash\nnpm install -g agent-browser\nagent-browser install  # Downloads Chromium\n```\n\n## Core Workflow\n\n**The snapshot + ref pattern is optimal for LLMs:**\n\n1. **Navigate** to URL\n2. **Snapshot** to get interactive elements with refs\n3. **Interact** using refs (@e1, @e2, etc.)\n4. **Re-snapshot** after navigation or DOM changes\n\n```bash\n# Step 1: Open URL\nagent-browser open https:\u002F\u002Fexample.com\n\n# Step 2: Get interactive elements with refs\nagent-browser snapshot -i --json\n\n# Step 3: Interact using refs\nagent-browser click @e1\nagent-browser fill @e2 \"search query\"\n\n# Step 4: Re-snapshot after changes\nagent-browser snapshot -i\n```\n\n## Key Commands\n\n### Navigation\n\n```bash\nagent-browser open \u003Curl>       # Navigate to URL\nagent-browser back             # Go back\nagent-browser forward          # Go forward\nagent-browser reload           # Reload page\nagent-browser close            # Close browser\n```\n\n### Snapshots (Essential for AI)\n\n```bash\nagent-browser snapshot              # Full accessibility tree\nagent-browser snapshot -i           # Interactive elements only (recommended)\nagent-browser snapshot -i --json    # JSON output for parsing\nagent-browser snapshot -c           # Compact (remove empty elements)\nagent-browser snapshot -d 3         # Limit depth\n```\n\n### Interactions\n\n```bash\nagent-browser click @e1                    # Click element\nagent-browser dblclick @e1                 # Double-click\nagent-browser fill @e1 \"text\"              # Clear and fill input\nagent-browser type @e1 \"text\"              # Type without clearing\nagent-browser press Enter                  # Press key\nagent-browser hover @e1                    # Hover element\nagent-browser check @e1                    # Check checkbox\nagent-browser uncheck @e1                  # Uncheck checkbox\nagent-browser select @e1 \"option\"          # Select dropdown option\nagent-browser scroll down 500              # Scroll (up\u002Fdown\u002Fleft\u002Fright)\nagent-browser scrollintoview @e1           # Scroll element into view\n```\n\n### Get Information\n\n```bash\nagent-browser get text @e1          # Get element text\nagent-browser get html @e1          # Get element HTML\nagent-browser get value @e1         # Get input value\nagent-browser get attr href @e1     # Get attribute\nagent-browser get title             # Get page title\nagent-browser get url               # Get current URL\nagent-browser get count \"button\"    # Count matching elements\n```\n\n### Screenshots & PDFs\n\n```bash\nagent-browser screenshot                      # Viewport screenshot\nagent-browser screenshot --full               # Full page\nagent-browser screenshot output.png           # Save to file\nagent-browser screenshot --full output.png    # Full page to file\nagent-browser pdf output.pdf                  # Save as PDF\n```\n\n### Wait\n\n```bash\nagent-browser wait @e1              # Wait for element\nagent-browser wait 2000             # Wait milliseconds\nagent-browser wait \"text\"           # Wait for text to appear\n```\n\n## Semantic Locators (Alternative to Refs)\n\n```bash\nagent-browser find role button click --name \"Submit\"\nagent-browser find text \"Sign up\" click\nagent-browser find label \"Email\" fill \"user@example.com\"\nagent-browser find placeholder \"Search...\" fill \"query\"\n```\n\n## Sessions (Parallel Browsers)\n\n```bash\n# Run multiple independent browser sessions\nagent-browser --session browser1 open https:\u002F\u002Fsite1.com\nagent-browser --session browser2 open https:\u002F\u002Fsite2.com\n\n# List active sessions\nagent-browser session list\n```\n\n## Examples\n\n### Login Flow\n\n```bash\nagent-browser open https:\u002F\u002Fapp.example.com\u002Flogin\nagent-browser snapshot -i\n# Output shows: textbox \"Email\" [ref=e1], textbox \"Password\" [ref=e2], button \"Sign in\" [ref=e3]\nagent-browser fill @e1 \"user@example.com\"\nagent-browser fill @e2 \"password123\"\nagent-browser click @e3\nagent-browser wait 2000\nagent-browser snapshot -i  # Verify logged in\n```\n\n### Search and Extract\n\n```bash\nagent-browser open https:\u002F\u002Fnews.ycombinator.com\nagent-browser snapshot -i --json\n# Parse JSON to find story links\nagent-browser get text @e12  # Get headline text\nagent-browser click @e12     # Click to open story\n```\n\n### Form Filling\n\n```bash\nagent-browser open https:\u002F\u002Fforms.example.com\nagent-browser snapshot -i\nagent-browser fill @e1 \"John Doe\"\nagent-browser fill @e2 \"john@example.com\"\nagent-browser select @e3 \"United States\"\nagent-browser check @e4  # Agree to terms\nagent-browser click @e5  # Submit button\nagent-browser screenshot confirmation.png\n```\n\n### Debug Mode\n\n```bash\n# Run with visible browser window\nagent-browser --headed open https:\u002F\u002Fexample.com\nagent-browser --headed snapshot -i\nagent-browser --headed click @e1\n```\n\n## JSON Output\n\nAdd `--json` for structured output:\n\n```bash\nagent-browser snapshot -i --json\n```\n\nReturns:\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"refs\": {\n      \"e1\": {\"name\": \"Submit\", \"role\": \"button\"},\n      \"e2\": {\"name\": \"Email\", \"role\": \"textbox\"}\n    },\n    \"snapshot\": \"- button \\\"Submit\\\" [ref=e1]\\n- textbox \\\"Email\\\" [ref=e2]\"\n  }\n}\n```\n\n## vs Playwright MCP\n\n| Feature | agent-browser (CLI) | Playwright MCP |\n|---------|---------------------|----------------|\n| Interface | Bash commands | MCP tools |\n| Selection | Refs (@e1) | Refs (e1) |\n| Output | Text\u002FJSON | Tool responses |\n| Parallel | Sessions | Tabs |\n| Best for | Quick automation | Tool integration |\n\nUse agent-browser when:\n- You prefer Bash-based workflows\n- You want simpler CLI commands\n- You need quick one-off automation\n\nUse Playwright MCP when:\n- You need deep MCP tool integration\n- You want tool-based responses\n- You're building complex automation\n","# agent-browser: CLI Browser Automation\n\nVercel's headless browser automation CLI designed for AI agents. Uses ref-based selection (@e1, @e2) from accessibility snapshots.\n\n## Setup Check\n\n```bash\n# Check installation\ncommand -v agent-browser >\u002Fdev\u002Fnull 2>&1 && echo \"Installed\" || echo \"NOT INSTALLED - run: npm install -g agent-browser && agent-browser install\"\n```\n\n### Install if needed\n\n```bash\nnpm install -g agent-browser\nagent-browser install  # Downloads Chromium\n```\n\n## Core Workflow\n\n**The snapshot + ref pattern is optimal for LLMs:**\n\n1. **Navigate** to URL\n2. **Snapshot** to get interactive elements with refs\n3. **Interact** using refs (@e1, @e2, etc.)\n4. **Re-snapshot** after navigation or DOM changes\n\n```bash\n# Step 1: Open URL\nagent-browser open https:\u002F\u002Fexample.com\n\n# Step 2: Get interactive elements with refs\nagent-browser snapshot -i --json\n\n# Step 3: Interact using refs\nagent-browser click @e1\nagent-browser fill @e2 \"search query\"\n\n# Step 4: Re-snapshot after changes\nagent-browser snapshot -i\n```\n\n## Key Commands\n\n### Navigation\n\n```bash\nagent-browser open \u003Curl>       # Navigate to URL\nagent-browser back             # Go back\nagent-browser forward          # Go forward\nagent-browser reload           # Reload page\nagent-browser close            # Close browser\n```\n\n### Snapshots (Essential for AI)\n\n```bash\nagent-browser snapshot              # Full accessibility tree\nagent-browser snapshot -i           # Interactive elements only (recommended)\nagent-browser snapshot -i --json    # JSON output for parsing\nagent-browser snapshot -c           # Compact (remove empty elements)\nagent-browser snapshot -d 3         # Limit depth\n```\n\n### Interactions\n\n```bash\nagent-browser click @e1                    # Click element\nagent-browser dblclick @e1                 # Double-click\nagent-browser fill @e1 \"text\"              # Clear and fill input\nagent-browser type @e1 \"text\"              # Type without clearing\nagent-browser press Enter                  # Press key\nagent-browser hover @e1                    # Hover element\nagent-browser check @e1                    # Check checkbox\nagent-browser uncheck @e1                  # Uncheck checkbox\nagent-browser select @e1 \"option\"          # Select dropdown option\nagent-browser scroll down 500              # Scroll (up\u002Fdown\u002Fleft\u002Fright)\nagent-browser scrollintoview @e1           # Scroll element into view\n```\n\n### Get Information\n\n```bash\nagent-browser get text @e1          # Get element text\nagent-browser get html @e1          # Get element HTML\nagent-browser get value @e1         # Get input value\nagent-browser get attr href @e1     # Get attribute\nagent-browser get title             # Get page title\nagent-browser get url               # Get current URL\nagent-browser get count \"button\"    # Count matching elements\n```\n\n### Screenshots & PDFs\n\n```bash\nagent-browser screenshot                      # Viewport screenshot\nagent-browser screenshot --full               # Full page\nagent-browser screenshot output.png           # Save to file\nagent-browser screenshot --full output.png    # Full page to file\nagent-browser pdf output.pdf                  # Save as PDF\n```\n\n### Wait\n\n```bash\nagent-browser wait @e1              # Wait for element\nagent-browser wait 2000             # Wait milliseconds\nagent-browser wait \"text\"           # Wait for text to appear\n```\n\n## Semantic Locators (Alternative to Refs)\n\n```bash\nagent-browser find role button click --name \"Submit\"\nagent-browser find text \"Sign up\" click\nagent-browser find label \"Email\" fill \"user@example.com\"\nagent-browser find placeholder \"Search...\" fill \"query\"\n```\n\n## Sessions (Parallel Browsers)\n\n```bash\n# Run multiple independent browser sessions\nagent-browser --session browser1 open https:\u002F\u002Fsite1.com\nagent-browser --session browser2 open https:\u002F\u002Fsite2.com\n\n# List active sessions\nagent-browser session list\n```\n\n## Examples\n\n### Login Flow\n\n```bash\nagent-browser open https:\u002F\u002Fapp.example.com\u002Flogin\nagent-browser snapshot -i\n# Output shows: textbox \"Email\" [ref=e1], textbox \"Password\" [ref=e2], button \"Sign in\" [ref=e3]\nagent-browser fill @e1 \"user@example.com\"\nagent-browser fill @e2 \"password123\"\nagent-browser click @e3\nagent-browser wait 2000\nagent-browser snapshot -i  # Verify logged in\n```\n\n### Search and Extract\n\n```bash\nagent-browser open https:\u002F\u002Fnews.ycombinator.com\nagent-browser snapshot -i --json\n# Parse JSON to find story links\nagent-browser get text @e12  # Get headline text\nagent-browser click @e12     # Click to open story\n```\n\n### Form Filling\n\n```bash\nagent-browser open https:\u002F\u002Fforms.example.com\nagent-browser snapshot -i\nagent-browser fill @e1 \"John Doe\"\nagent-browser fill @e2 \"john@example.com\"\nagent-browser select @e3 \"United States\"\nagent-browser check @e4  # Agree to terms\nagent-browser click @e5  # Submit button\nagent-browser screenshot confirmation.png\n```\n\n### Debug Mode\n\n```bash\n# Run with visible browser window\nagent-browser --headed open https:\u002F\u002Fexample.com\nagent-browser --headed snapshot -i\nagent-browser --headed click @e1\n```\n\n## JSON Output\n\nAdd `--json` for structured output:\n\n```bash\nagent-browser snapshot -i --json\n```\n\nReturns:\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"refs\": {\n      \"e1\": {\"name\": \"Submit\", \"role\": \"button\"},\n      \"e2\": {\"name\": \"Email\", \"role\": \"textbox\"}\n    },\n    \"snapshot\": \"- button \\\"Submit\\\" [ref=e1]\\n- textbox \\\"Email\\\" [ref=e2]\"\n  }\n}\n```\n\n## vs Playwright MCP\n\n| Feature | agent-browser (CLI) | Playwright MCP |\n|---------|---------------------|----------------|\n| Interface | Bash commands | MCP tools |\n| Selection | Refs (@e1) | Refs (e1) |\n| Output | Text\u002FJSON | Tool responses |\n| Parallel | Sessions | Tabs |\n| Best for | Quick automation | Tool integration |\n\nUse agent-browser when:\n- You prefer Bash-based workflows\n- You want simpler CLI commands\n- You need quick one-off automation\n\nUse Playwright MCP when:\n- You need deep MCP tool integration\n- You want tool-based responses\n- You're building complex automation\n",{"name":5,"description":7},"main","5417cad9215b767627c7c947dcb3a0bbe3ebe52d",".claude\u002Fplugins\u002Fcompound-engineering\u002Fskills\u002Fagent-browser",0,"https:\u002F\u002Fgithub.com\u002Fhemory\u002Famp-legacy-do-not-use","https:\u002F\u002Fgithub.com\u002Fhemory","https:\u002F\u002Fwww.heminthehat.com\u002F","The People Developer | L&D Program Manager | Software Engineer","2026-06-04 23:46:30",{"source":8,"skillName":5,"commands":62,"prompt":72,"zipAvailable":73},[63,66,69],{"tool":64,"command":65},"npx","npx skills add hemory\u002Famp-legacy-do-not-use --skill agent-browser",{"tool":67,"command":68},"bunx","bunx skills add hemory\u002Famp-legacy-do-not-use --skill agent-browser",{"tool":70,"command":71},"pnpm","pnpm dlx skills add hemory\u002Famp-legacy-do-not-use --skill agent-browser","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fhemory\u002Famp-legacy-do-not-use\u002Fblob\u002Fmain\u002F.claude\u002Fplugins\u002Fcompound-engineering\u002Fskills\u002Fagent-browser\u002FSKILL.md",true,[],[76,108,117,131,146,158],{"skillNo":77,"name":78,"nameZh":6,"description":79,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":80,"categories":81,"keywords":88,"publishedAt":47},"01M6D3DVEAHJTTK4W21B15ZZKK","zoom-setup","Connect Zoom to Amp for meeting recordings, scheduling, and transcript context","https:\u002F\u002Fgithub.com\u002Fhemory\u002Famp-legacy-do-not-use\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fzoom-setup\u002FSKILL.md",[82,83],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":84,"categoryName":85,"taxonomyType":86,"taxonomyTypeDesc":87},"01JBSEEDCAT000000000000034","行政与办公人员","PROFESSION","适用职业",[89,90,91,39,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107],"zoom setup","setup","schedule","review","connect","transcript","search","stats","oauth2","confirmation","context","meetings","process","recordings","surfaces","scheduling","granola","time","distribution",{"skillNo":109,"name":110,"nameZh":6,"description":111,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":112,"categories":113,"keywords":114,"publishedAt":47},"01M6D3DRAK8VWESYDZDF8JJDSH","xray","Understand what just happened under the hood - learn AI by seeing it in action","https:\u002F\u002Fgithub.com\u002Fhemory\u002Famp-legacy-do-not-use\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fxray\u002FSKILL.md",[],[110,115,116],"learn","just",{"skillNo":118,"name":119,"nameZh":6,"description":120,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":121,"categories":122,"keywords":124,"publishedAt":47},"01M6D3DN7BZQDY6143A2QSDP9A","week-review","Review week's progress with concrete accomplishments (not fake percentages), pattern detection, and goal tracking.","https:\u002F\u002Fgithub.com\u002Fhemory\u002Famp-legacy-do-not-use\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fweek-review\u002FSKILL.md",[123],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[125,92,126,127,128,129,130],"week review","pattern detection","detection","tracking","goal","pattern",{"skillNo":132,"name":133,"nameZh":6,"description":134,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":135,"categories":136,"keywords":137,"publishedAt":47},"01M6D3DJ7F1TCFXBBSTQW82WE7","week-plan","Set weekly priorities and plan the week ahead with intelligent suggestions based on goals, calendar shape, and task effort.","https:\u002F\u002Fgithub.com\u002Fhemory\u002Famp-legacy-do-not-use\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fweek-plan\u002FSKILL.md",[],[138,139,140,141,142,143,144,145],"week plan","plan","calendar","SET","shape","goals","task","priorities",{"skillNo":147,"name":148,"nameZh":6,"description":149,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":150,"categories":151,"keywords":152,"publishedAt":47},"01M6D3DF90D7RC8ZJE4AW2P9VC","triage","Strategically route orphaned files and extract scattered tasks","https:\u002F\u002Fgithub.com\u002Fhemory\u002Famp-legacy-do-not-use\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Ftriage\u002FSKILL.md",[],[148,153,154,155,156,157],"tasks","fast","extract","files","route",{"skillNo":159,"name":160,"nameZh":6,"description":161,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":162,"categories":163,"keywords":168,"publishedAt":47},"01M6D3DC9BBHK5TASE34SQYXSQ","trello-setup","Connect Trello to Amp for visual Kanban task sync","https:\u002F\u002Fgithub.com\u002Fhemory\u002Famp-legacy-do-not-use\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Ftrello-setup\u002FSKILL.md",[164,167],{"categoryNo":165,"categoryName":166,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[169,170,90,171,93,39,172,144,173,174,175,176,177],"trello","trello setup","sync","token","kanban","bun","visual","api","server"]