{
  "schemaVersion": "1.0",
  "item": {
    "slug": "stable-browser",
    "name": "Stable Browser",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/jarvis563/stable-browser",
    "canonicalUrl": "https://clawhub.ai/jarvis563/stable-browser",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/stable-browser",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=stable-browser",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "references/manual-setup.md",
      "scripts/setup-cdp.sh"
    ],
    "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-05-07T17:22:31.273Z",
      "expiresAt": "2026-05-14T17:22:31.273Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
        "contentDisposition": "attachment; filename=\"afrexai-annual-report-1.0.0.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/stable-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/stable-browser",
    "agentPageUrl": "https://openagent3.xyz/skills/stable-browser/agent",
    "manifestUrl": "https://openagent3.xyz/skills/stable-browser/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/stable-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": "Stable Browser",
        "body": "Replace the unreliable browser extension relay with a direct Chrome DevTools Protocol connection."
      },
      {
        "title": "The Problem",
        "body": "The OpenClaw browser extension relay (profile=\"chrome\") frequently breaks:\n\nWebSocket 403 errors\nPort confusion (gateway port vs relay port)\nDropped connections mid-automation\n\"Can't reach browser control service\" errors\nBadge/tab attachment confusion"
      },
      {
        "title": "The Fix: Chrome CDP",
        "body": "Launch Chrome with a debug port and connect directly. No extension needed."
      },
      {
        "title": "Quick Setup",
        "body": "Run the setup script to configure everything:\n\nbash scripts/setup-cdp.sh\n\nThis will:\n\nCreate a dedicated Chrome profile at ~/.chrome-debug-profile\nAdd browser.cdpUrl to your OpenClaw config\nCreate a LaunchAgent (macOS) so Chrome starts on login\nVerify the connection works"
      },
      {
        "title": "Manual Setup",
        "body": "If you prefer to set things up manually, see references/manual-setup.md."
      },
      {
        "title": "Usage",
        "body": "After setup, always use profile=\"openclaw\" (not profile=\"chrome\"):\n\nbrowser(action=\"snapshot\", profile=\"openclaw\")\nbrowser(action=\"navigate\", profile=\"openclaw\", targetUrl=\"https://example.com\")\nbrowser(action=\"screenshot\", profile=\"openclaw\")"
      },
      {
        "title": "Key Differences from Extension Relay",
        "body": "FeatureExtension RelayCDP DirectStabilityFrequent disconnectsRock solidSetupInstall extension + attach tabOne-time scriptAuth/CookiesShares your main ChromeDedicated profileSpeedExtra hop through extensionDirect protocolHeadlessNoOptional (--headless=new)"
      },
      {
        "title": "Dedicated Profile",
        "body": "The CDP browser uses ~/.chrome-debug-profile — a separate Chrome profile. This means:\n\nLog into sites once, stays logged in\nYour main Chrome is untouched\nNo extension conflicts\nSurvives Chrome updates"
      },
      {
        "title": "Tips",
        "body": "First run: Log into any sites you need (Google, GitHub, X, LinkedIn, etc.)\nMultiple tabs: CDP manages all tabs — use targetId to pin a specific tab\nHeadless mode: Add --headless=new to the launch command for invisible operation\nPort conflict: If port 9222 is taken, change it in both the launch command and config\nRestart Chrome: pkill -f 'remote-debugging-port=9222' && sleep 1 && bash scripts/setup-cdp.sh"
      },
      {
        "title": "Troubleshooting",
        "body": "\"Can't reach browser\": Chrome isn't running with debug port. Run setup-cdp.sh or launch manually\nPort 9222 in use: Another Chrome or process grabbed it. Kill it: lsof -i :9222\nStale session: Chrome crashed. Kill and restart: pkill -f chrome-debug-profile\nProfile corruption: Delete ~/.chrome-debug-profile and re-run setup"
      }
    ],
    "body": "Stable Browser\n\nReplace the unreliable browser extension relay with a direct Chrome DevTools Protocol connection.\n\nThe Problem\n\nThe OpenClaw browser extension relay (profile=\"chrome\") frequently breaks:\n\nWebSocket 403 errors\nPort confusion (gateway port vs relay port)\nDropped connections mid-automation\n\"Can't reach browser control service\" errors\nBadge/tab attachment confusion\nThe Fix: Chrome CDP\n\nLaunch Chrome with a debug port and connect directly. No extension needed.\n\nQuick Setup\n\nRun the setup script to configure everything:\n\nbash scripts/setup-cdp.sh\n\n\nThis will:\n\nCreate a dedicated Chrome profile at ~/.chrome-debug-profile\nAdd browser.cdpUrl to your OpenClaw config\nCreate a LaunchAgent (macOS) so Chrome starts on login\nVerify the connection works\nManual Setup\n\nIf you prefer to set things up manually, see references/manual-setup.md.\n\nUsage\n\nAfter setup, always use profile=\"openclaw\" (not profile=\"chrome\"):\n\nbrowser(action=\"snapshot\", profile=\"openclaw\")\nbrowser(action=\"navigate\", profile=\"openclaw\", targetUrl=\"https://example.com\")\nbrowser(action=\"screenshot\", profile=\"openclaw\")\n\nKey Differences from Extension Relay\nFeature\tExtension Relay\tCDP Direct\nStability\tFrequent disconnects\tRock solid\nSetup\tInstall extension + attach tab\tOne-time script\nAuth/Cookies\tShares your main Chrome\tDedicated profile\nSpeed\tExtra hop through extension\tDirect protocol\nHeadless\tNo\tOptional (--headless=new)\nDedicated Profile\n\nThe CDP browser uses ~/.chrome-debug-profile — a separate Chrome profile. This means:\n\nLog into sites once, stays logged in\nYour main Chrome is untouched\nNo extension conflicts\nSurvives Chrome updates\nTips\nFirst run: Log into any sites you need (Google, GitHub, X, LinkedIn, etc.)\nMultiple tabs: CDP manages all tabs — use targetId to pin a specific tab\nHeadless mode: Add --headless=new to the launch command for invisible operation\nPort conflict: If port 9222 is taken, change it in both the launch command and config\nRestart Chrome: pkill -f 'remote-debugging-port=9222' && sleep 1 && bash scripts/setup-cdp.sh\nTroubleshooting\n\"Can't reach browser\": Chrome isn't running with debug port. Run setup-cdp.sh or launch manually\nPort 9222 in use: Another Chrome or process grabbed it. Kill it: lsof -i :9222\nStale session: Chrome crashed. Kill and restart: pkill -f chrome-debug-profile\nProfile corruption: Delete ~/.chrome-debug-profile and re-run setup"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/jarvis563/stable-browser",
    "publisherUrl": "https://clawhub.ai/jarvis563/stable-browser",
    "owner": "jarvis563",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/stable-browser",
    "downloadUrl": "https://openagent3.xyz/downloads/stable-browser",
    "agentUrl": "https://openagent3.xyz/skills/stable-browser/agent",
    "manifestUrl": "https://openagent3.xyz/skills/stable-browser/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/stable-browser/agent.md"
  }
}