{
  "schemaVersion": "1.0",
  "item": {
    "slug": "agent-browser-clawdbot",
    "name": "Agent Browser",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/MaTriXy/agent-browser-clawdbot",
    "canonicalUrl": "https://clawhub.ai/MaTriXy/agent-browser-clawdbot",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/agent-browser-clawdbot",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=agent-browser-clawdbot",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/agent-browser-clawdbot"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/agent-browser-clawdbot",
    "agentPageUrl": "https://openagent3.xyz/skills/agent-browser-clawdbot/agent",
    "manifestUrl": "https://openagent3.xyz/skills/agent-browser-clawdbot/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/agent-browser-clawdbot/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Agent Browser Skill",
        "body": "Fast browser automation using accessibility tree snapshots with refs for deterministic element selection."
      },
      {
        "title": "Why Use This Over Built-in Browser Tool",
        "body": "Use agent-browser when:\n\nAutomating multi-step workflows\nNeed deterministic element selection\nPerformance is critical\nWorking with complex SPAs\nNeed session isolation\n\nUse built-in browser tool when:\n\nNeed screenshots/PDFs for analysis\nVisual inspection required\nBrowser extension integration needed"
      },
      {
        "title": "Core Workflow",
        "body": "# 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"
      },
      {
        "title": "Navigation",
        "body": "agent-browser open <url>\nagent-browser back | forward | reload | close"
      },
      {
        "title": "Snapshot (Always use -i --json)",
        "body": "agent-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"
      },
      {
        "title": "Interactions (Ref-based)",
        "body": "agent-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"
      },
      {
        "title": "Get Information",
        "body": "agent-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"
      },
      {
        "title": "Check State",
        "body": "agent-browser is visible @e2 --json\nagent-browser is enabled @e3 --json\nagent-browser is checked @e4 --json"
      },
      {
        "title": "Wait",
        "body": "agent-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\""
      },
      {
        "title": "Sessions (Isolated Browsers)",
        "body": "agent-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 ..."
      },
      {
        "title": "State Persistence",
        "body": "agent-browser state save auth.json        # Save cookies/storage\nagent-browser state load auth.json        # Load (skip login)"
      },
      {
        "title": "Screenshots & PDFs",
        "body": "agent-browser screenshot page.png\nagent-browser screenshot --full page.png\nagent-browser pdf page.pdf"
      },
      {
        "title": "Network Control",
        "body": "agent-browser network route \"**/ads/*\" --abort           # Block\nagent-browser network route \"**/api/*\" --body '{\"x\":1}'  # Mock\nagent-browser network requests --filter api              # View"
      },
      {
        "title": "Cookies & Storage",
        "body": "agent-browser cookies                     # Get all\nagent-browser cookies set name value\nagent-browser storage local key           # Get localStorage\nagent-browser storage local set key val"
      },
      {
        "title": "Tabs & Frames",
        "body": "agent-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"
      },
      {
        "title": "Snapshot Output Format",
        "body": "{\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}"
      },
      {
        "title": "Best Practices",
        "body": "Always use -i flag - Focus on interactive elements\nAlways use --json - Easier to parse\nWait for stability - agent-browser wait --load networkidle\nSave auth state - Skip login flows with state save/load\nUse sessions - Isolate different browser contexts\nUse --headed for debugging - See what's happening"
      },
      {
        "title": "Example: Search and Extract",
        "body": "agent-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"
      },
      {
        "title": "Example: Multi-Session Testing",
        "body": "# 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"
      },
      {
        "title": "Installation",
        "body": "npm install -g agent-browser\nagent-browser install                     # Download Chromium\nagent-browser install --with-deps         # Linux: + system deps"
      },
      {
        "title": "Credits",
        "body": "Skill created by Yossi Elkrief (@MaTriXy)\n\nagent-browser CLI by Vercel Labs"
      }
    ],
    "body": "Agent Browser Skill\n\nFast browser automation using accessibility tree snapshots with refs for deterministic element selection.\n\nWhy Use This Over Built-in Browser Tool\n\nUse agent-browser when:\n\nAutomating multi-step workflows\nNeed deterministic element selection\nPerformance is critical\nWorking with complex SPAs\nNeed session isolation\n\nUse built-in browser tool when:\n\nNeed screenshots/PDFs for analysis\nVisual inspection required\nBrowser extension integration needed\nCore Workflow\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\nKey Commands\nNavigation\nagent-browser open <url>\nagent-browser back | forward | reload | close\n\nSnapshot (Always use -i --json)\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\nInteractions (Ref-based)\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\nGet Information\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\nCheck State\nagent-browser is visible @e2 --json\nagent-browser is enabled @e3 --json\nagent-browser is checked @e4 --json\n\nWait\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\nSessions (Isolated Browsers)\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\nState Persistence\nagent-browser state save auth.json        # Save cookies/storage\nagent-browser state load auth.json        # Load (skip login)\n\nScreenshots & PDFs\nagent-browser screenshot page.png\nagent-browser screenshot --full page.png\nagent-browser pdf page.pdf\n\nNetwork Control\nagent-browser network route \"**/ads/*\" --abort           # Block\nagent-browser network route \"**/api/*\" --body '{\"x\":1}'  # Mock\nagent-browser network requests --filter api              # View\n\nCookies & Storage\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\nTabs & Frames\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\nSnapshot Output Format\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\nBest Practices\nAlways use -i flag - Focus on interactive elements\nAlways use --json - Easier to parse\nWait for stability - agent-browser wait --load networkidle\nSave auth state - Skip login flows with state save/load\nUse sessions - Isolate different browser contexts\nUse --headed for debugging - See what's happening\nExample: Search and Extract\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\nExample: Multi-Session Testing\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\nInstallation\nnpm install -g agent-browser\nagent-browser install                     # Download Chromium\nagent-browser install --with-deps         # Linux: + system deps\n\nCredits\n\nSkill created by Yossi Elkrief (@MaTriXy)\n\nagent-browser CLI by Vercel Labs"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/MaTriXy/agent-browser-clawdbot",
    "publisherUrl": "https://clawhub.ai/MaTriXy/agent-browser-clawdbot",
    "owner": "MaTriXy",
    "version": "0.1.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/agent-browser-clawdbot",
    "downloadUrl": "https://openagent3.xyz/downloads/agent-browser-clawdbot",
    "agentUrl": "https://openagent3.xyz/skills/agent-browser-clawdbot/agent",
    "manifestUrl": "https://openagent3.xyz/skills/agent-browser-clawdbot/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/agent-browser-clawdbot/agent.md"
  }
}