{
  "schemaVersion": "1.0",
  "item": {
    "slug": "browser-cash",
    "name": "Browser Cash",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/alexander-spring/browser-cash",
    "canonicalUrl": "https://clawhub.ai/alexander-spring/browser-cash",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/browser-cash",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=browser-cash",
    "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-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-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/browser-cash"
    },
    "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/browser-cash",
    "agentPageUrl": "https://openagent3.xyz/skills/browser-cash/agent",
    "manifestUrl": "https://openagent3.xyz/skills/browser-cash/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/browser-cash/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": "browser-cash",
        "body": "Spin up unblocked browser sessions via Browser.cash for web automation. These sessions bypass common anti-bot protections (Cloudflare, DataDome, etc.), making them ideal for scraping, testing, and automation tasks that would otherwise get blocked.\n\nWhen to use: Any browser automation task—scraping, form filling, testing, screenshots. Browser.cash sessions appear as real browsers and handle bot detection automatically."
      },
      {
        "title": "Setup",
        "body": "API Key is stored in clawdbot config at skills.entries.browser-cash.apiKey.\n\nIf not configured, prompt the user:\n\nGet your API key from https://dash.browser.cash and run:\nclawdbot config set skills.entries.browser-cash.apiKey \"your_key_here\"\n\nReading the key:\n\nBROWSER_CASH_KEY=$(clawdbot config get skills.entries.browser-cash.apiKey)\n\nBefore first use, check and install Playwright if needed:\n\nif [ ! -d ~/clawd/node_modules/playwright ]; then\n  cd ~/clawd && npm install playwright puppeteer-core\nfi"
      },
      {
        "title": "API Basics",
        "body": "curl -X POST \"https://api.browser.cash/v1/...\" \\\n  -H \"Authorization: Bearer $BROWSER_CASH_KEY\" \\\n  -H \"Content-Type: application/json\""
      },
      {
        "title": "Create a Browser Session",
        "body": "Basic session:\n\ncurl -X POST \"https://api.browser.cash/v1/browser/session\" \\\n  -H \"Authorization: Bearer $BROWSER_CASH_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{}'\n\nResponse:\n\n{\n  \"sessionId\": \"abc123...\",\n  \"status\": \"active\",\n  \"servedBy\": \"node-id\",\n  \"createdAt\": \"2025-01-20T01:51:25.000Z\",\n  \"stoppedAt\": null,\n  \"cdpUrl\": \"wss://gcp-usc1-1.browser.cash/v1/consumer/abc123.../devtools/browser/uuid\"\n}\n\nWith options:\n\ncurl -X POST \"https://api.browser.cash/v1/browser/session\" \\\n  -H \"Authorization: Bearer $BROWSER_CASH_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"country\": \"US\",\n    \"windowSize\": \"1920x1080\",\n    \"profile\": {\n      \"name\": \"my-profile\",\n      \"persist\": true\n    }\n  }'"
      },
      {
        "title": "Session Options",
        "body": "OptionTypeDescriptioncountrystring2-letter ISO code (e.g., \"US\", \"DE\", \"GB\")windowSizestringBrowser dimensions, e.g., \"1920x1080\"proxyUrlstringSOCKS5 proxy URL (optional)profile.namestringNamed browser profile for session persistenceprofile.persistbooleanSave cookies/storage after session ends"
      },
      {
        "title": "Using Browser.cash with Clawdbot",
        "body": "Browser.cash returns a WebSocket CDP URL (wss://...). Use one of these approaches:"
      },
      {
        "title": "Option 1: Direct CDP via exec (Recommended)",
        "body": "Important: Before running Playwright/Puppeteer scripts, ensure dependencies are installed:\n\n[ -d ~/clawd/node_modules/playwright ] || (cd ~/clawd && npm install playwright puppeteer-core)\n\nUse Playwright or Puppeteer in an exec block to connect directly to the CDP URL:\n\n# 1. Create session\nBROWSER_CASH_KEY=$(clawdbot config get skills.entries.browser-cash.apiKey)\nSESSION=$(curl -s -X POST \"https://api.browser.cash/v1/browser/session\" \\\n  -H \"Authorization: Bearer $BROWSER_CASH_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"country\": \"US\", \"windowSize\": \"1920x1080\"}')\n\nSESSION_ID=$(echo $SESSION | jq -r '.sessionId')\nCDP_URL=$(echo $SESSION | jq -r '.cdpUrl')\n\n# 2. Use via Node.js exec (Playwright)\nnode -e \"\nconst { chromium } = require('playwright');\n(async () => {\n  const browser = await chromium.connectOverCDP('$CDP_URL');\n  const context = browser.contexts()[0];\n  const page = context.pages()[0] || await context.newPage();\n  await page.goto('https://example.com');\n  console.log('Title:', await page.title());\n  await browser.close();\n})();\n\"\n\n# 3. Stop session when done\ncurl -X DELETE \"https://api.browser.cash/v1/browser/session?sessionId=$SESSION_ID\" \\\n  -H \"Authorization: Bearer $BROWSER_CASH_KEY\""
      },
      {
        "title": "Option 2: Curl-based automation",
        "body": "For simple tasks, use curl to interact with pages via CDP commands:\n\n# Navigate and extract content using the CDP URL\n# (See CDP protocol docs for available methods)"
      },
      {
        "title": "Note on Clawdbot browser tool",
        "body": "Clawdbot's native browser tool expects HTTP control server URLs, not raw WebSocket CDP. The gateway config.patch approach works when Clawdbot's browser control server proxies the connection. For direct Browser.cash CDP, use the exec approach above."
      },
      {
        "title": "Get Session Status",
        "body": "curl \"https://api.browser.cash/v1/browser/session?sessionId=YOUR_SESSION_ID\" \\\n  -H \"Authorization: Bearer $BROWSER_CASH_KEY\"\n\nStatuses: starting, active, completed, error"
      },
      {
        "title": "Stop a Session",
        "body": "curl -X DELETE \"https://api.browser.cash/v1/browser/session?sessionId=YOUR_SESSION_ID\" \\\n  -H \"Authorization: Bearer $BROWSER_CASH_KEY\""
      },
      {
        "title": "List Sessions",
        "body": "curl \"https://api.browser.cash/v1/browser/sessions?page=1&pageSize=20\" \\\n  -H \"Authorization: Bearer $BROWSER_CASH_KEY\""
      },
      {
        "title": "Browser Profiles",
        "body": "Profiles persist cookies, localStorage, and session data across sessions—useful for staying logged in or maintaining state.\n\nList profiles:\n\ncurl \"https://api.browser.cash/v1/browser/profiles\" \\\n  -H \"Authorization: Bearer $BROWSER_CASH_KEY\"\n\nDelete profile:\n\ncurl -X DELETE \"https://api.browser.cash/v1/browser/profile?profileName=my-profile\" \\\n  -H \"Authorization: Bearer $BROWSER_CASH_KEY\""
      },
      {
        "title": "Connecting via CDP",
        "body": "The cdpUrl is a WebSocket endpoint for Chrome DevTools Protocol. Use it with any CDP-compatible library.\n\nPlaywright:\n\nconst { chromium } = require('playwright');\nconst browser = await chromium.connectOverCDP(cdpUrl);\nconst context = browser.contexts()[0];\nconst page = context.pages()[0] || await context.newPage();\nawait page.goto('https://example.com');\n\nPuppeteer:\n\nconst puppeteer = require('puppeteer-core');\nconst browser = await puppeteer.connect({ browserWSEndpoint: cdpUrl });\nconst pages = await browser.pages();\nconst page = pages[0] || await browser.newPage();\nawait page.goto('https://example.com');"
      },
      {
        "title": "Full Workflow Example",
        "body": "# 0. Ensure Playwright is installed\n[ -d ~/clawd/node_modules/playwright ] || (cd ~/clawd && npm install playwright puppeteer-core)\n\n# 1. Create session\nBROWSER_CASH_KEY=$(clawdbot config get skills.entries.browser-cash.apiKey)\nSESSION=$(curl -s -X POST \"https://api.browser.cash/v1/browser/session\" \\\n  -H \"Authorization: Bearer $BROWSER_CASH_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"country\": \"US\", \"windowSize\": \"1920x1080\"}')\n\nSESSION_ID=$(echo $SESSION | jq -r '.sessionId')\nCDP_URL=$(echo $SESSION | jq -r '.cdpUrl')\n\n# 2. Connect with Playwright/Puppeteer using $CDP_URL...\n\n# 3. Stop session when done\ncurl -X DELETE \"https://api.browser.cash/v1/browser/session?sessionId=$SESSION_ID\" \\\n  -H \"Authorization: Bearer $BROWSER_CASH_KEY\""
      },
      {
        "title": "Scraping Tips",
        "body": "When extracting data from pages with lazy-loading or infinite scroll:\n\n// Scroll to load all products\nasync function scrollToBottom(page) {\n  let previousHeight = 0;\n  while (true) {\n    const currentHeight = await page.evaluate(() => document.body.scrollHeight);\n    if (currentHeight === previousHeight) break;\n    previousHeight = currentHeight;\n    await page.evaluate(() => window.scrollTo(0, document.body.scrollHeight));\n    await page.waitForTimeout(1500); // Wait for content to load\n  }\n}\n\n// Wait for specific elements\nawait page.waitForSelector('.product-card', { timeout: 10000 });\n\n// Handle \"Load More\" buttons\nconst loadMore = await page.$('button.load-more');\nif (loadMore) {\n  await loadMore.click();\n  await page.waitForTimeout(2000);\n}\n\nCommon patterns:\n\nAlways scroll to trigger lazy-loaded content\nWait for network idle: await page.waitForLoadState('networkidle')\nUse page.waitForSelector() before extracting elements\nAdd delays between actions to avoid rate limiting"
      },
      {
        "title": "Why Browser.cash for Automation",
        "body": "Unblocked: Sessions bypass Cloudflare, DataDome, PerimeterX, and other bot protections\nReal browser fingerprint: Appears as a genuine Chrome browser, not headless\nCDP native: Direct WebSocket connection for Playwright, Puppeteer, or raw CDP\nGeographic targeting: Spin up sessions in specific countries\nPersistent profiles: Maintain login state across sessions"
      },
      {
        "title": "Notes",
        "body": "Sessions auto-terminate after extended inactivity\nAlways stop sessions when done to avoid unnecessary usage\nUse profiles when you need to maintain logged-in state\nSOCKS5 is the only supported proxy type\nClawdbot runs scripts from ~/clawd/ - install npm dependencies there\nFor full page scraping, always scroll to trigger lazy-loaded content"
      }
    ],
    "body": "browser-cash\n\nSpin up unblocked browser sessions via Browser.cash for web automation. These sessions bypass common anti-bot protections (Cloudflare, DataDome, etc.), making them ideal for scraping, testing, and automation tasks that would otherwise get blocked.\n\nWhen to use: Any browser automation task—scraping, form filling, testing, screenshots. Browser.cash sessions appear as real browsers and handle bot detection automatically.\n\nSetup\n\nAPI Key is stored in clawdbot config at skills.entries.browser-cash.apiKey.\n\nIf not configured, prompt the user:\n\nGet your API key from https://dash.browser.cash and run:\n\nclawdbot config set skills.entries.browser-cash.apiKey \"your_key_here\"\n\n\nReading the key:\n\nBROWSER_CASH_KEY=$(clawdbot config get skills.entries.browser-cash.apiKey)\n\n\nBefore first use, check and install Playwright if needed:\n\nif [ ! -d ~/clawd/node_modules/playwright ]; then\n  cd ~/clawd && npm install playwright puppeteer-core\nfi\n\nAPI Basics\ncurl -X POST \"https://api.browser.cash/v1/...\" \\\n  -H \"Authorization: Bearer $BROWSER_CASH_KEY\" \\\n  -H \"Content-Type: application/json\"\n\nCreate a Browser Session\n\nBasic session:\n\ncurl -X POST \"https://api.browser.cash/v1/browser/session\" \\\n  -H \"Authorization: Bearer $BROWSER_CASH_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{}'\n\n\nResponse:\n\n{\n  \"sessionId\": \"abc123...\",\n  \"status\": \"active\",\n  \"servedBy\": \"node-id\",\n  \"createdAt\": \"2025-01-20T01:51:25.000Z\",\n  \"stoppedAt\": null,\n  \"cdpUrl\": \"wss://gcp-usc1-1.browser.cash/v1/consumer/abc123.../devtools/browser/uuid\"\n}\n\n\nWith options:\n\ncurl -X POST \"https://api.browser.cash/v1/browser/session\" \\\n  -H \"Authorization: Bearer $BROWSER_CASH_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"country\": \"US\",\n    \"windowSize\": \"1920x1080\",\n    \"profile\": {\n      \"name\": \"my-profile\",\n      \"persist\": true\n    }\n  }'\n\nSession Options\nOption\tType\tDescription\ncountry\tstring\t2-letter ISO code (e.g., \"US\", \"DE\", \"GB\")\nwindowSize\tstring\tBrowser dimensions, e.g., \"1920x1080\"\nproxyUrl\tstring\tSOCKS5 proxy URL (optional)\nprofile.name\tstring\tNamed browser profile for session persistence\nprofile.persist\tboolean\tSave cookies/storage after session ends\nUsing Browser.cash with Clawdbot\n\nBrowser.cash returns a WebSocket CDP URL (wss://...). Use one of these approaches:\n\nOption 1: Direct CDP via exec (Recommended)\n\nImportant: Before running Playwright/Puppeteer scripts, ensure dependencies are installed:\n\n[ -d ~/clawd/node_modules/playwright ] || (cd ~/clawd && npm install playwright puppeteer-core)\n\n\nUse Playwright or Puppeteer in an exec block to connect directly to the CDP URL:\n\n# 1. Create session\nBROWSER_CASH_KEY=$(clawdbot config get skills.entries.browser-cash.apiKey)\nSESSION=$(curl -s -X POST \"https://api.browser.cash/v1/browser/session\" \\\n  -H \"Authorization: Bearer $BROWSER_CASH_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"country\": \"US\", \"windowSize\": \"1920x1080\"}')\n\nSESSION_ID=$(echo $SESSION | jq -r '.sessionId')\nCDP_URL=$(echo $SESSION | jq -r '.cdpUrl')\n\n# 2. Use via Node.js exec (Playwright)\nnode -e \"\nconst { chromium } = require('playwright');\n(async () => {\n  const browser = await chromium.connectOverCDP('$CDP_URL');\n  const context = browser.contexts()[0];\n  const page = context.pages()[0] || await context.newPage();\n  await page.goto('https://example.com');\n  console.log('Title:', await page.title());\n  await browser.close();\n})();\n\"\n\n# 3. Stop session when done\ncurl -X DELETE \"https://api.browser.cash/v1/browser/session?sessionId=$SESSION_ID\" \\\n  -H \"Authorization: Bearer $BROWSER_CASH_KEY\"\n\nOption 2: Curl-based automation\n\nFor simple tasks, use curl to interact with pages via CDP commands:\n\n# Navigate and extract content using the CDP URL\n# (See CDP protocol docs for available methods)\n\nNote on Clawdbot browser tool\n\nClawdbot's native browser tool expects HTTP control server URLs, not raw WebSocket CDP. The gateway config.patch approach works when Clawdbot's browser control server proxies the connection. For direct Browser.cash CDP, use the exec approach above.\n\nGet Session Status\ncurl \"https://api.browser.cash/v1/browser/session?sessionId=YOUR_SESSION_ID\" \\\n  -H \"Authorization: Bearer $BROWSER_CASH_KEY\"\n\n\nStatuses: starting, active, completed, error\n\nStop a Session\ncurl -X DELETE \"https://api.browser.cash/v1/browser/session?sessionId=YOUR_SESSION_ID\" \\\n  -H \"Authorization: Bearer $BROWSER_CASH_KEY\"\n\nList Sessions\ncurl \"https://api.browser.cash/v1/browser/sessions?page=1&pageSize=20\" \\\n  -H \"Authorization: Bearer $BROWSER_CASH_KEY\"\n\nBrowser Profiles\n\nProfiles persist cookies, localStorage, and session data across sessions—useful for staying logged in or maintaining state.\n\nList profiles:\n\ncurl \"https://api.browser.cash/v1/browser/profiles\" \\\n  -H \"Authorization: Bearer $BROWSER_CASH_KEY\"\n\n\nDelete profile:\n\ncurl -X DELETE \"https://api.browser.cash/v1/browser/profile?profileName=my-profile\" \\\n  -H \"Authorization: Bearer $BROWSER_CASH_KEY\"\n\nConnecting via CDP\n\nThe cdpUrl is a WebSocket endpoint for Chrome DevTools Protocol. Use it with any CDP-compatible library.\n\nPlaywright:\n\nconst { chromium } = require('playwright');\nconst browser = await chromium.connectOverCDP(cdpUrl);\nconst context = browser.contexts()[0];\nconst page = context.pages()[0] || await context.newPage();\nawait page.goto('https://example.com');\n\n\nPuppeteer:\n\nconst puppeteer = require('puppeteer-core');\nconst browser = await puppeteer.connect({ browserWSEndpoint: cdpUrl });\nconst pages = await browser.pages();\nconst page = pages[0] || await browser.newPage();\nawait page.goto('https://example.com');\n\nFull Workflow Example\n# 0. Ensure Playwright is installed\n[ -d ~/clawd/node_modules/playwright ] || (cd ~/clawd && npm install playwright puppeteer-core)\n\n# 1. Create session\nBROWSER_CASH_KEY=$(clawdbot config get skills.entries.browser-cash.apiKey)\nSESSION=$(curl -s -X POST \"https://api.browser.cash/v1/browser/session\" \\\n  -H \"Authorization: Bearer $BROWSER_CASH_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"country\": \"US\", \"windowSize\": \"1920x1080\"}')\n\nSESSION_ID=$(echo $SESSION | jq -r '.sessionId')\nCDP_URL=$(echo $SESSION | jq -r '.cdpUrl')\n\n# 2. Connect with Playwright/Puppeteer using $CDP_URL...\n\n# 3. Stop session when done\ncurl -X DELETE \"https://api.browser.cash/v1/browser/session?sessionId=$SESSION_ID\" \\\n  -H \"Authorization: Bearer $BROWSER_CASH_KEY\"\n\nScraping Tips\n\nWhen extracting data from pages with lazy-loading or infinite scroll:\n\n// Scroll to load all products\nasync function scrollToBottom(page) {\n  let previousHeight = 0;\n  while (true) {\n    const currentHeight = await page.evaluate(() => document.body.scrollHeight);\n    if (currentHeight === previousHeight) break;\n    previousHeight = currentHeight;\n    await page.evaluate(() => window.scrollTo(0, document.body.scrollHeight));\n    await page.waitForTimeout(1500); // Wait for content to load\n  }\n}\n\n// Wait for specific elements\nawait page.waitForSelector('.product-card', { timeout: 10000 });\n\n// Handle \"Load More\" buttons\nconst loadMore = await page.$('button.load-more');\nif (loadMore) {\n  await loadMore.click();\n  await page.waitForTimeout(2000);\n}\n\n\nCommon patterns:\n\nAlways scroll to trigger lazy-loaded content\nWait for network idle: await page.waitForLoadState('networkidle')\nUse page.waitForSelector() before extracting elements\nAdd delays between actions to avoid rate limiting\nWhy Browser.cash for Automation\nUnblocked: Sessions bypass Cloudflare, DataDome, PerimeterX, and other bot protections\nReal browser fingerprint: Appears as a genuine Chrome browser, not headless\nCDP native: Direct WebSocket connection for Playwright, Puppeteer, or raw CDP\nGeographic targeting: Spin up sessions in specific countries\nPersistent profiles: Maintain login state across sessions\nNotes\nSessions auto-terminate after extended inactivity\nAlways stop sessions when done to avoid unnecessary usage\nUse profiles when you need to maintain logged-in state\nSOCKS5 is the only supported proxy type\nClawdbot runs scripts from ~/clawd/ - install npm dependencies there\nFor full page scraping, always scroll to trigger lazy-loaded content"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/alexander-spring/browser-cash",
    "publisherUrl": "https://clawhub.ai/alexander-spring/browser-cash",
    "owner": "alexander-spring",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/browser-cash",
    "downloadUrl": "https://openagent3.xyz/downloads/browser-cash",
    "agentUrl": "https://openagent3.xyz/skills/browser-cash/agent",
    "manifestUrl": "https://openagent3.xyz/skills/browser-cash/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/browser-cash/agent.md"
  }
}