技能/ #research/ #自动化/ #Browser Automation

Agent Browser

Headless browser automation CLI optimized for AI agents with accessibility tree snapshots and ref-based element selection

MaTriXy@matrixy

安装

针对本地咔咔镜像运行此命令。

请从本地咔咔镜像安装 agent-browser-clawdbot,注册表地址为 http://localhost:13001。安装后先检查 README、清单和权限,再在当前工作区使用。下载

说明

--- name: agent-browser description: Headless browser automation CLI optimized for AI agents with accessibility tree snapshots and ref-based element selection metadata: {"clawdbot":{"emoji":"🌐","requires":{"commands":["agent-browser"]},"homepage":"https://github.com/vercel-labs/agent-browser"}} ---

Agent Browser Skill

Fast browser automation using accessibility tree snapshots with refs for deterministic element selection.

Why Use This Over Built-in Browser Tool

**Use agent-browser when:**

  • Automating multi-step workflows
  • Need deterministic element selection
  • Performance is critical
  • Working with complex SPAs
  • Need session isolation

**Use built-in browser tool when:**

  • Need screenshots/PDFs for analysis
  • Visual inspection required
  • Browser extension integration needed

Core Workflow

bash# 1. Navigate and snapshot
agent-browser open https://example.com
agent-browser snapshot -i --json

# 2. Parse refs from JSON, then interact
agent-browser click @e2
agent-browser fill @e3 "text"

# 3. Re-snapshot after page changes
agent-browser snapshot -i --json

Key Commands

Navigation

bashagent-browser open <url>
agent-browser back | forward | reload | close

Snapshot (Always use -i --json)

bashagent-browser snapshot -i --json          # Interactive elements, JSON output
agent-browser snapshot -i -c -d 5 --json  # + compact, depth limit
agent-browser snapshot -s "#main" -i      # Scope to selector

Interactions (Ref-based)

bashagent-browser click @e2
agent-browser fill @e3 "text"
agent-browser type @e3 "text"
agent-browser hover @e4
agent-browser check @e5 | uncheck @e5
agent-browser select @e6 "value"
agent-browser press "Enter"
agent-browser scroll down 500
agent-browser drag @e7 @e8

Get Information

bashagent-browser get text @e1 --json
agent-browser get html @e2 --json
agent-browser get value @e3 --json
agent-browser get attr @e4 "href" --json
agent-browser get title --json
agent-browser get url --json
agent-browser get count ".item" --json

Check State

bashagent-browser is visible @e2 --json
agent-browser is enabled @e3 --json
agent-browser is checked @e4 --json

Wait

bashagent-browser wait @e2                    # Wait for element
agent-browser wait 1000                   # Wait ms
agent-browser wait --text "Welcome"       # Wait for text
agent-browser wait --url "**/dashboard"   # Wait for URL
agent-browser wait --load networkidle     # Wait for network
agent-browser wait --fn "window.ready === true"

Sessions (Isolated Browsers)

bashagent-browser --session admin open site.com
agent-browser --session user open site.com
agent-browser session list
# Or via env: AGENT_BROWSER_SESSION=admin agent-browser ...

State Persistence

bashagent-browser state save auth.json        # Save cookies/storage
agent-browser state load auth.json        # Load (skip login)

Screenshots & PDFs

bashagent-browser screenshot page.png
agent-browser screenshot --full page.png
agent-browser pdf page.pdf

Network Control

bashagent-browser network route "**/ads/*" --abort           # Block
agent-browser network route "**/api/*" --body '{"x":1}'  # Mock
agent-browser network requests --filter api              # View

Cookies & Storage

bashagent-browser cookies                     # Get all
agent-browser cookies set name value
agent-browser storage local key           # Get localStorage
agent-browser storage local set key val

Tabs & Frames

bashagent-browser tab new https://example.com
agent-browser tab 2                       # Switch to tab
agent-browser frame @e5                   # Switch to iframe
agent-browser frame main                  # Back to main

Snapshot Output Format

json{
  "success": true,
  "data": {
    "snapshot": "...",
    "refs": {
      "e1": {"role": "heading", "name": "Example Domain"},
      "e2": {"role": "button", "name": "Submit"},
      "e3": {"role": "textbox", "name": "Email"}
    }
  }
}

Best Practices

1. **Always use `-i` flag** - Focus on interactive elements 2. **Always use `--json`** - Easier to parse 3. **Wait for stability** - `agent-browser wait --load networkidle` 4. **Save auth state** - Skip login flows with `state save/load` 5. **Use sessions** - Isolate different browser contexts 6. **Use `--headed` for debugging** - See what's happening

Example: Search and Extract

bashagent-browser open https://www.google.com
agent-browser snapshot -i --json
# AI identifies search box @e1
agent-browser fill @e1 "AI agents"
agent-browser press Enter
agent-browser wait --load networkidle
agent-browser snapshot -i --json
# AI identifies result refs
agent-browser get text @e3 --json
agent-browser get attr @e4 "href" --json

Example: Multi-Session Testing

bash# Admin session
agent-browser --session admin open app.com
agent-browser --session admin state load admin-auth.json
agent-browser --session admin snapshot -i --json

# User session (simultaneous)
agent-browser --session user open app.com
agent-browser --session user state load user-auth.json
agent-browser --session user snapshot -i --json

Installation

bashnpm install -g agent-browser
agent-browser install                     # Download Chromium
agent-browser install --with-deps         # Linux: + system deps

Credits

Skill created by Yossi Elkrief ([@MaTriXy](https://github.com/MaTriXy))

agent-browser CLI by [Vercel Labs](https://github.com/vercel-labs/agent-browser)

安装解析

{
  "artifact": {
    "downloadUrl": "/api/v1/download?slug=agent-browser-clawdbot&version=0.1.0&ownerHandle=matrixy",
    "format": "zip",
    "generated": true,
    "kind": "skillArchive",
    "sha256": "09ce4baeb4434adb72e9f3ad84a429dc7d4fbeaa7c559bbad99b839373d8b937",
    "size": 6894
  },
  "owner": {
    "displayName": "MaTriXy",
    "handle": "matrixy",
    "id": "a011a0e4-0279-4452-940c-0980e2c3e0ce",
    "verified": false
  },
  "skill": {
    "displayName": "Agent Browser",
    "latestVersion": "0.1.0",
    "license": "unknown",
    "name": "agent-browser-clawdbot",
    "ownerHandle": "matrixy",
    "slug": "agent-browser-clawdbot",
    "stats": {
      "downloads": 146923,
      "installs": 1380,
      "stars": 438
    },
    "summary": "Headless browser automation CLI optimized for AI agents with accessibility tree snapshots and ref-based element selection",
    "tags": [
      "research",
      "automation",
      "Browser Automation"
    ],
    "type": "skill",
    "updatedAt": "2026-07-06T10:48:22.965Z"
  },
  "sourceHandoff": null,
  "version": {
    "checksum": null,
    "checksumAlgorithm": null,
    "id": "551c5086-f2ec-453a-b18a-07e71d8eef3f",
    "publishedAt": "2026-01-21T22:00:54.381Z",
    "size": null,
    "version": "0.1.0",
    "artifactStorageKey": null,
    "changelog": "- Initial release of agent-browser-clawdbot skill.\n- Enables fast, headless browser automation via CLI, optimized for AI agent workflows.\n- Provides accessibility tree snapshots with ref-based deterministic element selection.\n- Supports session isolation, state persistence, and robust automation commands (navigation, interaction, data extraction, network control, and more).\n- Includes example workflows and best practices for efficient automation.",
    "manifest": {
      "clawhub": {
        "tags": {
          "latest": "0.1.0"
        },
        "owner": "matrixy",
        "stats": {
          "stars": 438,
          "comments": 1,
          "installs": 1380,
          "versions": 1,
          "downloads": 146923
        },
        "topics": [
          "Browser Automation"
        ],
        "categories": [
          "research",
          "automation"
        ]
      },
      "install": "openclaw skills install @matrixy/agent-browser-clawdbot"
    },
    "readme": "---\nname: agent-browser\ndescription: Headless browser automation CLI optimized for AI agents with accessibility tree snapshots and ref-based element selection\nmetadata: {\"clawdbot\":{\"emoji\":\"🌐\",\"requires\":{\"commands\":[\"agent-browser\"]},\"homepage\":\"https://github.com/vercel-labs/agent-browser\"}}\n---\n\n# Agent Browser Skill\n\nFast browser automation using accessibility tree snapshots with refs for deterministic element selection.\n\n## Why Use This Over Built-in Browser Tool\n\n**Use agent-browser when:**\n- Automating multi-step workflows\n- Need deterministic element selection\n- Performance is critical\n- Working with complex SPAs\n- Need session isolation\n\n**Use built-in browser tool when:**\n- Need screenshots/PDFs for analysis\n- Visual inspection required\n- Browser extension integration needed\n\n## Core Workflow\n\n```bash\n# 1. Navigate and snapshot\nagent-browser open https://example.com\nagent-browser snapshot -i --json\n\n# 2. Parse refs from JSON, then interact\nagent-browser click @e2\nagent-browser fill @e3 \"text\"\n\n# 3. Re-snapshot after page changes\nagent-browser snapshot -i --json\n```\n\n## Key Commands\n\n### Navigation\n```bash\nagent-browser open <url>\nagent-browser back | forward | reload | close\n```\n\n### Snapshot (Always use -i --json)\n```bash\nagent-browser snapshot -i --json          # Interactive elements, JSON output\nagent-browser snapshot -i -c -d 5 --json  # + compact, depth limit\nagent-browser snapshot -s \"#main\" -i      # Scope to selector\n```\n\n### Interactions (Ref-based)\n```bash\nagent-browser click @e2\nagent-browser fill @e3 \"text\"\nagent-browser type @e3 \"text\"\nagent-browser hover @e4\nagent-browser check @e5 | uncheck @e5\nagent-browser select @e6 \"value\"\nagent-browser press \"Enter\"\nagent-browser scroll down 500\nagent-browser drag @e7 @e8\n```\n\n### Get Information\n```bash\nagent-browser get text @e1 --json\nagent-browser get html @e2 --json\nagent-browser get value @e3 --json\nagent-browser get attr @e4 \"href\" --json\nagent-browser get title --json\nagent-browser get url --json\nagent-browser get count \".item\" --json\n```\n\n### Check State\n```bash\nagent-browser is visible @e2 --json\nagent-browser is enabled @e3 --json\nagent-browser is checked @e4 --json\n```\n\n### Wait\n```bash\nagent-browser wait @e2                    # Wait for element\nagent-browser wait 1000                   # Wait ms\nagent-browser wait --text \"Welcome\"       # Wait for text\nagent-browser wait --url \"**/dashboard\"   # Wait for URL\nagent-browser wait --load networkidle     # Wait for network\nagent-browser wait --fn \"window.ready === true\"\n```\n\n### Sessions (Isolated Browsers)\n```bash\nagent-browser --session admin open site.com\nagent-browser --session user open site.com\nagent-browser session list\n# Or via env: AGENT_BROWSER_SESSION=admin agent-browser ...\n```\n\n### State Persistence\n```bash\nagent-browser state save auth.json        # Save cookies/storage\nagent-browser state load auth.json        # Load (skip login)\n```\n\n### Screenshots & PDFs\n```bash\nagent-browser screenshot page.png\nagent-browser screenshot --full page.png\nagent-browser pdf page.pdf\n```\n\n### Network Control\n```bash\nagent-browser network route \"**/ads/*\" --abort           # Block\nagent-browser network route \"**/api/*\" --body '{\"x\":1}'  # Mock\nagent-browser network requests --filter api              # View\n```\n\n### Cookies & Storage\n```bash\nagent-browser cookies                     # Get all\nagent-browser cookies set name value\nagent-browser storage local key           # Get localStorage\nagent-browser storage local set key val\n```\n\n### Tabs & Frames\n```bash\nagent-browser tab new https://example.com\nagent-browser tab 2                       # Switch to tab\nagent-browser frame @e5                   # Switch to iframe\nagent-browser frame main                  # Back to main\n```\n\n## Snapshot Output Format\n\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"snapshot\": \"...\",\n    \"refs\": {\n      \"e1\": {\"role\": \"heading\", \"name\": \"Example Domain\"},\n      \"e2\": {\"role\": \"button\", \"name\": \"Submit\"},\n      \"e3\": {\"role\": \"textbox\", \"name\": \"Email\"}\n    }\n  }\n}\n```\n\n## Best Practices\n\n1. **Always use `-i` flag** - Focus on interactive elements\n2. **Always use `--json`** - Easier to parse\n3. **Wait for stability** - `agent-browser wait --load networkidle`\n4. **Save auth state** - Skip login flows with `state save/load`\n5. **Use sessions** - Isolate different browser contexts\n6. **Use `--headed` for debugging** - See what's happening\n\n## Example: Search and Extract\n\n```bash\nagent-browser open https://www.google.com\nagent-browser snapshot -i --json\n# AI identifies search box @e1\nagent-browser fill @e1 \"AI agents\"\nagent-browser press Enter\nagent-browser wait --load networkidle\nagent-browser snapshot -i --json\n# AI identifies result refs\nagent-browser get text @e3 --json\nagent-browser get attr @e4 \"href\" --json\n```\n\n## Example: Multi-Session Testing\n\n```bash\n# Admin session\nagent-browser --session admin open app.com\nagent-browser --session admin state load admin-auth.json\nagent-browser --session admin snapshot -i --json\n\n# User session (simultaneous)\nagent-browser --session user open app.com\nagent-browser --session user state load user-auth.json\nagent-browser --session user snapshot -i --json\n```\n\n## Installation\n\n```bash\nnpm install -g agent-browser\nagent-browser install                     # Download Chromium\nagent-browser install --with-deps         # Linux: + system deps\n```\n\n## Credits\n\nSkill created by Yossi Elkrief ([@MaTriXy](https://github.com/MaTriXy))\n\nagent-browser CLI by [Vercel Labs](https://github.com/vercel-labs/agent-browser)\n"
  }
}

版本

版本大小更新时间0.1.0暂无2026-01-21