{
  "schemaVersion": "1.0",
  "item": {
    "slug": "agentic-browser",
    "name": "Agent Browser",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/okaris/agentic-browser",
    "canonicalUrl": "https://clawhub.ai/okaris/agentic-browser",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/agentic-browser",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=agentic-browser",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "references/authentication.md",
      "references/commands.md",
      "references/proxy-support.md",
      "references/session-management.md",
      "references/snapshot-refs.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/agentic-browser"
    },
    "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/agentic-browser",
    "agentPageUrl": "https://openagent3.xyz/skills/agentic-browser/agent",
    "manifestUrl": "https://openagent3.xyz/skills/agentic-browser/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/agentic-browser/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": "Agentic Browser",
        "body": "Browser automation for AI agents via inference.sh. Uses Playwright under the hood with a simple @e ref system for element interaction."
      },
      {
        "title": "Quick Start",
        "body": "# Install CLI\ncurl -fsSL https://cli.inference.sh | sh && infsh login\n\n# Open a page and get interactive elements\ninfsh app run agent-browser --function open --input '{\"url\": \"https://example.com\"}' --session new\n\nInstall note: The install script only detects your OS/architecture, downloads the matching binary from dist.inference.sh, and verifies its SHA-256 checksum. No elevated permissions or background processes. Manual install & verification available."
      },
      {
        "title": "Core Workflow",
        "body": "Every browser automation follows this pattern:\n\nOpen - Navigate to URL, get @e refs for elements\nInteract - Use refs to click, fill, drag, etc.\nRe-snapshot - After navigation/changes, get fresh refs\nClose - End session (returns video if recording)\n\n# 1. Start session\nRESULT=$(infsh app run agent-browser --function open --session new --input '{\n  \"url\": \"https://example.com/login\"\n}')\nSESSION_ID=$(echo $RESULT | jq -r '.session_id')\n# Elements: @e1 [input] \"Email\", @e2 [input] \"Password\", @e3 [button] \"Sign In\"\n\n# 2. Fill and submit\ninfsh app run agent-browser --function interact --session $SESSION_ID --input '{\n  \"action\": \"fill\", \"ref\": \"@e1\", \"text\": \"user@example.com\"\n}'\ninfsh app run agent-browser --function interact --session $SESSION_ID --input '{\n  \"action\": \"fill\", \"ref\": \"@e2\", \"text\": \"password123\"\n}'\ninfsh app run agent-browser --function interact --session $SESSION_ID --input '{\n  \"action\": \"click\", \"ref\": \"@e3\"\n}'\n\n# 3. Re-snapshot after navigation\ninfsh app run agent-browser --function snapshot --session $SESSION_ID --input '{}'\n\n# 4. Close when done\ninfsh app run agent-browser --function close --session $SESSION_ID --input '{}'"
      },
      {
        "title": "Functions",
        "body": "FunctionDescriptionopenNavigate to URL, configure browser (viewport, proxy, video recording)snapshotRe-fetch page state with @e refs after DOM changesinteractPerform actions using @e refs (click, fill, drag, upload, etc.)screenshotTake page screenshot (viewport or full page)executeRun JavaScript code on the pagecloseClose session, returns video if recording was enabled"
      },
      {
        "title": "Interact Actions",
        "body": "ActionDescriptionRequired FieldsclickClick elementrefdblclickDouble-click elementreffillClear and type textref, texttypeType text (no clear)textpressPress key (Enter, Tab, etc.)textselectSelect dropdown optionref, texthoverHover over elementrefcheckCheck checkboxrefuncheckUncheck checkboxrefdragDrag and dropref, target_refuploadUpload file(s)ref, file_pathsscrollScroll pagedirection (up/down/left/right), scroll_amountbackGo back in history-waitWait millisecondswait_msgotoNavigate to URLurl"
      },
      {
        "title": "Element Refs",
        "body": "Elements are returned with @e refs:\n\n@e1 [a] \"Home\" href=\"/\"\n@e2 [input type=\"text\"] placeholder=\"Search\"\n@e3 [button] \"Submit\"\n@e4 [select] \"Choose option\"\n@e5 [input type=\"checkbox\"] name=\"agree\"\n\nImportant: Refs are invalidated after navigation. Always re-snapshot after:\n\nClicking links/buttons that navigate\nForm submissions\nDynamic content loading"
      },
      {
        "title": "Video Recording",
        "body": "Record browser sessions for debugging or documentation:\n\n# Start with recording enabled (optionally show cursor indicator)\nSESSION=$(infsh app run agent-browser --function open --session new --input '{\n  \"url\": \"https://example.com\",\n  \"record_video\": true,\n  \"show_cursor\": true\n}' | jq -r '.session_id')\n\n# ... perform actions ...\n\n# Close to get the video file\ninfsh app run agent-browser --function close --session $SESSION --input '{}'\n# Returns: {\"success\": true, \"video\": <File>}"
      },
      {
        "title": "Cursor Indicator",
        "body": "Show a visible cursor in screenshots and video (useful for demos):\n\ninfsh app run agent-browser --function open --session new --input '{\n  \"url\": \"https://example.com\",\n  \"show_cursor\": true,\n  \"record_video\": true\n}'\n\nThe cursor appears as a red dot that follows mouse movements and shows click feedback."
      },
      {
        "title": "Proxy Support",
        "body": "Route traffic through a proxy server:\n\ninfsh app run agent-browser --function open --session new --input '{\n  \"url\": \"https://example.com\",\n  \"proxy_url\": \"http://proxy.example.com:8080\",\n  \"proxy_username\": \"user\",\n  \"proxy_password\": \"pass\"\n}'"
      },
      {
        "title": "File Upload",
        "body": "Upload files to file inputs:\n\ninfsh app run agent-browser --function interact --session $SESSION --input '{\n  \"action\": \"upload\",\n  \"ref\": \"@e5\",\n  \"file_paths\": [\"/path/to/file.pdf\"]\n}'"
      },
      {
        "title": "Drag and Drop",
        "body": "Drag elements to targets:\n\ninfsh app run agent-browser --function interact --session $SESSION --input '{\n  \"action\": \"drag\",\n  \"ref\": \"@e1\",\n  \"target_ref\": \"@e2\"\n}'"
      },
      {
        "title": "JavaScript Execution",
        "body": "Run custom JavaScript:\n\ninfsh app run agent-browser --function execute --session $SESSION --input '{\n  \"code\": \"document.querySelectorAll(\\\"h2\\\").length\"\n}'\n# Returns: {\"result\": \"5\", \"screenshot\": <File>}"
      },
      {
        "title": "Deep-Dive Documentation",
        "body": "ReferenceDescriptionreferences/commands.mdFull function reference with all optionsreferences/snapshot-refs.mdRef lifecycle, invalidation rules, troubleshootingreferences/session-management.mdSession persistence, parallel sessionsreferences/authentication.mdLogin flows, OAuth, 2FA handlingreferences/video-recording.mdRecording workflows for debuggingreferences/proxy-support.mdProxy configuration, geo-testing"
      },
      {
        "title": "Ready-to-Use Templates",
        "body": "TemplateDescriptiontemplates/form-automation.shForm filling with validationtemplates/authenticated-session.shLogin once, reuse sessiontemplates/capture-workflow.shContent extraction with screenshots"
      },
      {
        "title": "Form Submission",
        "body": "SESSION=$(infsh app run agent-browser --function open --session new --input '{\n  \"url\": \"https://example.com/contact\"\n}' | jq -r '.session_id')\n\n# Get elements: @e1 [input] \"Name\", @e2 [input] \"Email\", @e3 [textarea], @e4 [button] \"Send\"\n\ninfsh app run agent-browser --function interact --session $SESSION --input '{\"action\": \"fill\", \"ref\": \"@e1\", \"text\": \"John Doe\"}'\ninfsh app run agent-browser --function interact --session $SESSION --input '{\"action\": \"fill\", \"ref\": \"@e2\", \"text\": \"john@example.com\"}'\ninfsh app run agent-browser --function interact --session $SESSION --input '{\"action\": \"fill\", \"ref\": \"@e3\", \"text\": \"Hello!\"}'\ninfsh app run agent-browser --function interact --session $SESSION --input '{\"action\": \"click\", \"ref\": \"@e4\"}'\n\ninfsh app run agent-browser --function snapshot --session $SESSION --input '{}'\ninfsh app run agent-browser --function close --session $SESSION --input '{}'"
      },
      {
        "title": "Search and Extract",
        "body": "SESSION=$(infsh app run agent-browser --function open --session new --input '{\n  \"url\": \"https://google.com\"\n}' | jq -r '.session_id')\n\ninfsh app run agent-browser --function interact --session $SESSION --input '{\"action\": \"fill\", \"ref\": \"@e1\", \"text\": \"weather today\"}'\ninfsh app run agent-browser --function interact --session $SESSION --input '{\"action\": \"press\", \"text\": \"Enter\"}'\ninfsh app run agent-browser --function interact --session $SESSION --input '{\"action\": \"wait\", \"wait_ms\": 2000}'\n\ninfsh app run agent-browser --function snapshot --session $SESSION --input '{}'\ninfsh app run agent-browser --function close --session $SESSION --input '{}'"
      },
      {
        "title": "Screenshot with Video",
        "body": "SESSION=$(infsh app run agent-browser --function open --session new --input '{\n  \"url\": \"https://example.com\",\n  \"record_video\": true\n}' | jq -r '.session_id')\n\n# Take full page screenshot\ninfsh app run agent-browser --function screenshot --session $SESSION --input '{\n  \"full_page\": true\n}'\n\n# Close and get video\nRESULT=$(infsh app run agent-browser --function close --session $SESSION --input '{}')\necho $RESULT | jq '.video'"
      },
      {
        "title": "Sessions",
        "body": "Browser state persists within a session. Always:\n\nStart with --session new on first call\nUse returned session_id for subsequent calls\nClose session when done"
      },
      {
        "title": "Related Skills",
        "body": "# Web search (for research + browse)\nnpx skills add inference-sh/skills@web-search\n\n# LLM models (analyze extracted content)\nnpx skills add inference-sh/skills@llm-models"
      },
      {
        "title": "Documentation",
        "body": "inference.sh Sessions - Session management\nMulti-function Apps - How functions work"
      }
    ],
    "body": "Agentic Browser\n\nBrowser automation for AI agents via inference.sh. Uses Playwright under the hood with a simple @e ref system for element interaction.\n\nQuick Start\n# Install CLI\ncurl -fsSL https://cli.inference.sh | sh && infsh login\n\n# Open a page and get interactive elements\ninfsh app run agent-browser --function open --input '{\"url\": \"https://example.com\"}' --session new\n\n\nInstall note: The install script only detects your OS/architecture, downloads the matching binary from dist.inference.sh, and verifies its SHA-256 checksum. No elevated permissions or background processes. Manual install & verification available.\n\nCore Workflow\n\nEvery browser automation follows this pattern:\n\nOpen - Navigate to URL, get @e refs for elements\nInteract - Use refs to click, fill, drag, etc.\nRe-snapshot - After navigation/changes, get fresh refs\nClose - End session (returns video if recording)\n# 1. Start session\nRESULT=$(infsh app run agent-browser --function open --session new --input '{\n  \"url\": \"https://example.com/login\"\n}')\nSESSION_ID=$(echo $RESULT | jq -r '.session_id')\n# Elements: @e1 [input] \"Email\", @e2 [input] \"Password\", @e3 [button] \"Sign In\"\n\n# 2. Fill and submit\ninfsh app run agent-browser --function interact --session $SESSION_ID --input '{\n  \"action\": \"fill\", \"ref\": \"@e1\", \"text\": \"user@example.com\"\n}'\ninfsh app run agent-browser --function interact --session $SESSION_ID --input '{\n  \"action\": \"fill\", \"ref\": \"@e2\", \"text\": \"password123\"\n}'\ninfsh app run agent-browser --function interact --session $SESSION_ID --input '{\n  \"action\": \"click\", \"ref\": \"@e3\"\n}'\n\n# 3. Re-snapshot after navigation\ninfsh app run agent-browser --function snapshot --session $SESSION_ID --input '{}'\n\n# 4. Close when done\ninfsh app run agent-browser --function close --session $SESSION_ID --input '{}'\n\nFunctions\nFunction\tDescription\nopen\tNavigate to URL, configure browser (viewport, proxy, video recording)\nsnapshot\tRe-fetch page state with @e refs after DOM changes\ninteract\tPerform actions using @e refs (click, fill, drag, upload, etc.)\nscreenshot\tTake page screenshot (viewport or full page)\nexecute\tRun JavaScript code on the page\nclose\tClose session, returns video if recording was enabled\nInteract Actions\nAction\tDescription\tRequired Fields\nclick\tClick element\tref\ndblclick\tDouble-click element\tref\nfill\tClear and type text\tref, text\ntype\tType text (no clear)\ttext\npress\tPress key (Enter, Tab, etc.)\ttext\nselect\tSelect dropdown option\tref, text\nhover\tHover over element\tref\ncheck\tCheck checkbox\tref\nuncheck\tUncheck checkbox\tref\ndrag\tDrag and drop\tref, target_ref\nupload\tUpload file(s)\tref, file_paths\nscroll\tScroll page\tdirection (up/down/left/right), scroll_amount\nback\tGo back in history\t-\nwait\tWait milliseconds\twait_ms\ngoto\tNavigate to URL\turl\nElement Refs\n\nElements are returned with @e refs:\n\n@e1 [a] \"Home\" href=\"/\"\n@e2 [input type=\"text\"] placeholder=\"Search\"\n@e3 [button] \"Submit\"\n@e4 [select] \"Choose option\"\n@e5 [input type=\"checkbox\"] name=\"agree\"\n\n\nImportant: Refs are invalidated after navigation. Always re-snapshot after:\n\nClicking links/buttons that navigate\nForm submissions\nDynamic content loading\nFeatures\nVideo Recording\n\nRecord browser sessions for debugging or documentation:\n\n# Start with recording enabled (optionally show cursor indicator)\nSESSION=$(infsh app run agent-browser --function open --session new --input '{\n  \"url\": \"https://example.com\",\n  \"record_video\": true,\n  \"show_cursor\": true\n}' | jq -r '.session_id')\n\n# ... perform actions ...\n\n# Close to get the video file\ninfsh app run agent-browser --function close --session $SESSION --input '{}'\n# Returns: {\"success\": true, \"video\": <File>}\n\nCursor Indicator\n\nShow a visible cursor in screenshots and video (useful for demos):\n\ninfsh app run agent-browser --function open --session new --input '{\n  \"url\": \"https://example.com\",\n  \"show_cursor\": true,\n  \"record_video\": true\n}'\n\n\nThe cursor appears as a red dot that follows mouse movements and shows click feedback.\n\nProxy Support\n\nRoute traffic through a proxy server:\n\ninfsh app run agent-browser --function open --session new --input '{\n  \"url\": \"https://example.com\",\n  \"proxy_url\": \"http://proxy.example.com:8080\",\n  \"proxy_username\": \"user\",\n  \"proxy_password\": \"pass\"\n}'\n\nFile Upload\n\nUpload files to file inputs:\n\ninfsh app run agent-browser --function interact --session $SESSION --input '{\n  \"action\": \"upload\",\n  \"ref\": \"@e5\",\n  \"file_paths\": [\"/path/to/file.pdf\"]\n}'\n\nDrag and Drop\n\nDrag elements to targets:\n\ninfsh app run agent-browser --function interact --session $SESSION --input '{\n  \"action\": \"drag\",\n  \"ref\": \"@e1\",\n  \"target_ref\": \"@e2\"\n}'\n\nJavaScript Execution\n\nRun custom JavaScript:\n\ninfsh app run agent-browser --function execute --session $SESSION --input '{\n  \"code\": \"document.querySelectorAll(\\\"h2\\\").length\"\n}'\n# Returns: {\"result\": \"5\", \"screenshot\": <File>}\n\nDeep-Dive Documentation\nReference\tDescription\nreferences/commands.md\tFull function reference with all options\nreferences/snapshot-refs.md\tRef lifecycle, invalidation rules, troubleshooting\nreferences/session-management.md\tSession persistence, parallel sessions\nreferences/authentication.md\tLogin flows, OAuth, 2FA handling\nreferences/video-recording.md\tRecording workflows for debugging\nreferences/proxy-support.md\tProxy configuration, geo-testing\nReady-to-Use Templates\nTemplate\tDescription\ntemplates/form-automation.sh\tForm filling with validation\ntemplates/authenticated-session.sh\tLogin once, reuse session\ntemplates/capture-workflow.sh\tContent extraction with screenshots\nExamples\nForm Submission\nSESSION=$(infsh app run agent-browser --function open --session new --input '{\n  \"url\": \"https://example.com/contact\"\n}' | jq -r '.session_id')\n\n# Get elements: @e1 [input] \"Name\", @e2 [input] \"Email\", @e3 [textarea], @e4 [button] \"Send\"\n\ninfsh app run agent-browser --function interact --session $SESSION --input '{\"action\": \"fill\", \"ref\": \"@e1\", \"text\": \"John Doe\"}'\ninfsh app run agent-browser --function interact --session $SESSION --input '{\"action\": \"fill\", \"ref\": \"@e2\", \"text\": \"john@example.com\"}'\ninfsh app run agent-browser --function interact --session $SESSION --input '{\"action\": \"fill\", \"ref\": \"@e3\", \"text\": \"Hello!\"}'\ninfsh app run agent-browser --function interact --session $SESSION --input '{\"action\": \"click\", \"ref\": \"@e4\"}'\n\ninfsh app run agent-browser --function snapshot --session $SESSION --input '{}'\ninfsh app run agent-browser --function close --session $SESSION --input '{}'\n\nSearch and Extract\nSESSION=$(infsh app run agent-browser --function open --session new --input '{\n  \"url\": \"https://google.com\"\n}' | jq -r '.session_id')\n\ninfsh app run agent-browser --function interact --session $SESSION --input '{\"action\": \"fill\", \"ref\": \"@e1\", \"text\": \"weather today\"}'\ninfsh app run agent-browser --function interact --session $SESSION --input '{\"action\": \"press\", \"text\": \"Enter\"}'\ninfsh app run agent-browser --function interact --session $SESSION --input '{\"action\": \"wait\", \"wait_ms\": 2000}'\n\ninfsh app run agent-browser --function snapshot --session $SESSION --input '{}'\ninfsh app run agent-browser --function close --session $SESSION --input '{}'\n\nScreenshot with Video\nSESSION=$(infsh app run agent-browser --function open --session new --input '{\n  \"url\": \"https://example.com\",\n  \"record_video\": true\n}' | jq -r '.session_id')\n\n# Take full page screenshot\ninfsh app run agent-browser --function screenshot --session $SESSION --input '{\n  \"full_page\": true\n}'\n\n# Close and get video\nRESULT=$(infsh app run agent-browser --function close --session $SESSION --input '{}')\necho $RESULT | jq '.video'\n\nSessions\n\nBrowser state persists within a session. Always:\n\nStart with --session new on first call\nUse returned session_id for subsequent calls\nClose session when done\nRelated Skills\n# Web search (for research + browse)\nnpx skills add inference-sh/skills@web-search\n\n# LLM models (analyze extracted content)\nnpx skills add inference-sh/skills@llm-models\n\nDocumentation\ninference.sh Sessions - Session management\nMulti-function Apps - How functions work"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/okaris/agentic-browser",
    "publisherUrl": "https://clawhub.ai/okaris/agentic-browser",
    "owner": "okaris",
    "version": "0.1.5",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/agentic-browser",
    "downloadUrl": "https://openagent3.xyz/downloads/agentic-browser",
    "agentUrl": "https://openagent3.xyz/skills/agentic-browser/agent",
    "manifestUrl": "https://openagent3.xyz/skills/agentic-browser/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/agentic-browser/agent.md"
  }
}