{
  "schemaVersion": "1.0",
  "item": {
    "slug": "botsee",
    "name": "BotSee",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/grahac/botsee",
    "canonicalUrl": "https://clawhub.ai/grahac/botsee",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/botsee",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=botsee",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "CHANGELOG.md",
      "README.md",
      "SKILL.md",
      "skills/botsee/SKILL.md",
      ".claude-plugin/plugin.json",
      "scripts/botsee.py"
    ],
    "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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "slug": "botsee",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T23:45:32.256Z",
      "expiresAt": "2026-05-07T23:45:32.256Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=botsee",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=botsee",
        "contentDisposition": "attachment; filename=\"botsee-0.2.5.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "botsee"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/botsee"
    },
    "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/botsee",
    "agentPageUrl": "https://openagent3.xyz/skills/botsee/agent",
    "manifestUrl": "https://openagent3.xyz/skills/botsee/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/botsee/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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "BotSee Skill",
        "body": "Monitor your brand's AI visibility (AI SEO/GEO) across ChatGPT, Claude, Perplexity, and Gemini. Provided by botsee.io, the AI Visibility tool for Claude Code and agents.\n\nCommands:\n\nWorkflow:\n\n/botsee                                  - Quick status and help\n/botsee signup [--email EMAIL] [--name NAME] [--company COMPANY] [--api-key KEY] - Signup with credit card\n/botsee signup-usdc [--email EMAIL] [--name NAME] [--company COMPANY] [--no-email] - Signup with USDC on Base\n/botsee signup-pay-usdc --amount-cents N [--token TOKEN] [--payment PROOF] - Pay for USDC signup via x402\n/botsee signup-status [--token TOKEN]    - Check signup completion and save API key\n/botsee topup-usdc --amount-cents N [--payment PROOF] - Add credits with USDC on Base via x402\n/botsee create-site <domain> [--types N]   - Save custom config\n/botsee config-show                      - Display saved config\n/botsee analyze                          - Run competitive analysis\n/botsee content                          - Generate blog post from analysis\n\nSites:\n\n/botsee list-sites             - List all sites\n/botsee get-site [uuid]        - View site details\n/botsee create-site <domain>   - Create a new site\n/botsee archive-site [uuid]    - Archive a site\n\nCustomer Types:\n\n/botsee list-types             - List customer types\n/botsee get-type <uuid>        - View type details\n/botsee create-type <name> [desc] - Create customer type\n/botsee generate-types [count] - Generate customer types\n/botsee update-type <uuid> [name] [desc] - Update customer type\n/botsee archive-type <uuid>    - Archive customer type\n\nPersonas:\n\n/botsee list-personas [type]   - List personas (all or by type)\n/botsee get-persona <uuid>     - View persona details\n/botsee create-persona <type> <name> [desc] - Create persona\n/botsee generate-personas <type> [count] - Generate personas for type\n/botsee update-persona <uuid> [name] [desc] - Update persona\n/botsee archive-persona <uuid> - Archive persona\n\nQuestions:\n\n/botsee list-questions [persona] - List questions (all or by persona)\n/botsee get-question <uuid>    - View question details\n/botsee create-question <persona> <text> - Create question\n/botsee generate-questions <persona> [count] - Generate questions for persona\n/botsee update-question <uuid> <text> - Update question text\n/botsee delete-question <uuid> - Delete question\n\nResults:\n\n/botsee results-competitors <uuid>    - View competitor results\n/botsee results-keywords <uuid>       - View keyword results\n/botsee results-sources <uuid>        - View source results\n/botsee results-responses <uuid>      - View all AI responses\n/botsee results-keyword-opportunities <uuid> [--threshold 0.0-1.0] [--rank-threshold N] - Questions where brand is missing or ranks poorly\n/botsee results-source-opportunities <uuid>  - Sources AI cited when brand was NOT mentioned"
      },
      {
        "title": "Implementation",
        "body": "When user invokes a BotSee command, run the corresponding Python script. All commands use a single bundled script that handles API calls internally."
      },
      {
        "title": "/botsee (status)",
        "body": "python3 ~/.claude/skills/botsee/scripts/botsee.py status"
      },
      {
        "title": "/botsee signup [--email EMAIL] [--name NAME] [--company COMPANY] [--api-key KEY]",
        "body": "New user signup flow (credit card):\n\nStep 1: Get signup URL\n\npython3 ~/.claude/skills/botsee/scripts/botsee.py signup\n\nThe command prints a line like:\n\nComplete signup: https://app.botsee.io/setup?token=...\n\nExtract that URL and tell the user:\n\"To complete your BotSee signup, visit this URL: [URL from above]\n\nAfter completing signup on that page, come back here and run /botsee signup-status.\"\n\nStep 2: Save your API key\n\nAfter completing signup on that page, run:\n\n/botsee signup-status\n\nThe script retrieves your API key from the server automatically using your signup token.\nIf prompted for a token, use the token from the URL on the setup page."
      },
      {
        "title": "/botsee signup-usdc [--email EMAIL] [--name NAME] [--company COMPANY] [--no-email]",
        "body": "USDC signup flow (x402 on Base):\n\nStep 1 — Ask the user before calling the API\n\nWhen signup-usdc is invoked without already knowing the user's preference, ask:\n\n\"Do you want to associate an email with this account?\n\nYes (email) — You'll get a setup link to verify your email and access the dashboard later\nNo (API only) — Skip email entirely and go straight to payment\"\n\nStep 2a — Email path\n\nCall:\n\npython3 ~/.claude/skills/botsee/scripts/botsee.py signup-usdc\n\n(no --no-email flag)\n\nThe command prints a line like:\n\nSetup URL: https://app.botsee.io/setup?token=...\n\nExtract that URL and tell the user:\n\"Visit this URL to enter and verify your email and read the setup instructions: [URL from above]\n\nOnce you've done that, come back here and we'll complete the USDC payment.\"\n\nDo NOT call signup-pay-usdc yet. Wait for the user to confirm they've completed the setup URL step.\n\nStep 2b — No-email path\n\nCall:\n\npython3 ~/.claude/skills/botsee/scripts/botsee.py signup-usdc --no-email\n\nNo setup URL will be returned. Immediately proceed to payment.\n\nStep 3 — Payment (both paths)\n\nAfter the email-path user confirms they visited the setup URL (or immediately for no-email path):\n\npython3 ~/.claude/skills/botsee/scripts/botsee.py signup-pay-usdc --amount-cents 250\npython3 ~/.claude/skills/botsee/scripts/botsee.py signup-status\n\nx402 flow details:\n\nsignup-usdc creates a USDC signup token via POST /api/v1/signup/usdc\nsignup-pay-usdc --amount-cents N calls POST /api/v1/signup/:token/pay-usdc without a payment header → server returns 402 with payment requirements (network, amount, payTo address)\nUse a wallet (Pinch, Coinbase CDP Agentic Wallet) to send USDC to the returned address\nRetry with the payment proof: signup-pay-usdc --amount-cents N --payment <proof>\nsignup-status polls until complete and saves the API key"
      },
      {
        "title": "/botsee signup-pay-usdc --amount-cents N [--token TOKEN] [--payment PROOF]",
        "body": "# Step 1: Get 402 challenge (no --payment → returns payment requirements)\npython3 ~/.claude/skills/botsee/scripts/botsee.py signup-pay-usdc --amount-cents 250\n\n# Step 2: Retry with proof after wallet pays\npython3 ~/.claude/skills/botsee/scripts/botsee.py signup-pay-usdc --amount-cents 250 --payment <proof>\n\nOmit --payment to get a 402 challenge with network, amount, and payTo address.\nInclude --payment <base64-proof> on the final retry after your wallet has made the payment."
      },
      {
        "title": "/botsee signup-status [--token TOKEN]",
        "body": "python3 ~/.claude/skills/botsee/scripts/botsee.py signup-status\n\nSaves API key to ~/.botsee/config.json automatically once signup is completed."
      },
      {
        "title": "/botsee topup-usdc --amount-cents N [--payment PROOF]",
        "body": "# Step 1: Get 402 challenge (no --payment → returns payment requirements)\npython3 ~/.claude/skills/botsee/scripts/botsee.py topup-usdc --amount-cents 5000\n\n# Step 2: Retry with proof after wallet pays\npython3 ~/.claude/skills/botsee/scripts/botsee.py topup-usdc --amount-cents 5000 --payment <proof>\n\nOmit --payment to get a 402 challenge with network, amount, and payTo address.\nInclude --payment <base64-proof> on the final retry after your wallet has made the payment."
      },
      {
        "title": "/botsee create-site <domain> [--types T] [--personas P] [--questions Q]",
        "body": "Requires: API key from /botsee signup\n\npython3 ~/.claude/skills/botsee/scripts/botsee.py create-site <domain>\n\nOptional parameters:\n\n--types (default: 2, range: 1-3)\n--personas (default: 2, range: 1-3)\n--questions (default: 5, range: 3-10)\n\nWhat happens:\n\nCreates a site for the domain\nGenerates customer types, personas, and questions\nSaves configuration to workspace and user config\n\nCustomize generation counts:\n\npython3 ~/.claude/skills/botsee/scripts/botsee.py create-site <domain> --types 3 --personas 2 --questions 10"
      },
      {
        "title": "/botsee config-show",
        "body": "python3 ~/.claude/skills/botsee/scripts/botsee.py config-show"
      },
      {
        "title": "/botsee analyze",
        "body": "python3 ~/.claude/skills/botsee/scripts/botsee.py analyze\n\nStarts analysis, polls until complete, then displays competitors, keywords, and sources."
      },
      {
        "title": "/botsee content",
        "body": "python3 ~/.claude/skills/botsee/scripts/botsee.py content\n\nGenerates blog post from latest analysis. Auto-saves to botsee-YYYYMMDD-HHMMSS.md."
      },
      {
        "title": "/botsee list-sites",
        "body": "python3 ~/.claude/skills/botsee/scripts/botsee.py list-sites"
      },
      {
        "title": "/botsee get-site [uuid]",
        "body": "python3 ~/.claude/skills/botsee/scripts/botsee.py get-site [uuid]\n\nIf uuid is omitted, uses the site from ~/.botsee/config.json."
      },
      {
        "title": "/botsee create-site <domain>",
        "body": "python3 ~/.claude/skills/botsee/scripts/botsee.py create-site <domain>"
      },
      {
        "title": "/botsee archive-site [uuid]",
        "body": "python3 ~/.claude/skills/botsee/scripts/botsee.py archive-site [uuid]"
      },
      {
        "title": "/botsee list-types",
        "body": "python3 ~/.claude/skills/botsee/scripts/botsee.py list-types"
      },
      {
        "title": "/botsee get-type <uuid>",
        "body": "python3 ~/.claude/skills/botsee/scripts/botsee.py get-type <uuid>"
      },
      {
        "title": "/botsee create-type <name> [description]",
        "body": "python3 ~/.claude/skills/botsee/scripts/botsee.py create-type \"Enterprise Buyers\" \"Large companies seeking solutions\""
      },
      {
        "title": "/botsee generate-types [count]",
        "body": "python3 ~/.claude/skills/botsee/scripts/botsee.py generate-types 3\n\nDefaults to 2 if count is omitted."
      },
      {
        "title": "/botsee update-type <uuid> [name] [description]",
        "body": "python3 ~/.claude/skills/botsee/scripts/botsee.py update-type <uuid> --name \"New Name\" --description \"New description\""
      },
      {
        "title": "/botsee archive-type <uuid>",
        "body": "python3 ~/.claude/skills/botsee/scripts/botsee.py archive-type <uuid>"
      },
      {
        "title": "/botsee list-personas [type_uuid]",
        "body": "python3 ~/.claude/skills/botsee/scripts/botsee.py list-personas\npython3 ~/.claude/skills/botsee/scripts/botsee.py list-personas <type_uuid>"
      },
      {
        "title": "/botsee get-persona <uuid>",
        "body": "python3 ~/.claude/skills/botsee/scripts/botsee.py get-persona <uuid>"
      },
      {
        "title": "/botsee create-persona <type_uuid> <name> [description]",
        "body": "python3 ~/.claude/skills/botsee/scripts/botsee.py create-persona <type_uuid> \"Sarah Chen\" \"VP of Marketing at mid-sized SaaS company\""
      },
      {
        "title": "/botsee generate-personas <type_uuid> [count]",
        "body": "python3 ~/.claude/skills/botsee/scripts/botsee.py generate-personas <type_uuid> 3\n\nDefaults to 2 if count is omitted."
      },
      {
        "title": "/botsee update-persona <uuid> [name] [description]",
        "body": "python3 ~/.claude/skills/botsee/scripts/botsee.py update-persona <uuid> --name \"New Name\" --description \"New description\""
      },
      {
        "title": "/botsee archive-persona <uuid>",
        "body": "python3 ~/.claude/skills/botsee/scripts/botsee.py archive-persona <uuid>"
      },
      {
        "title": "/botsee list-questions [persona_uuid]",
        "body": "python3 ~/.claude/skills/botsee/scripts/botsee.py list-questions\npython3 ~/.claude/skills/botsee/scripts/botsee.py list-questions <persona_uuid>"
      },
      {
        "title": "/botsee get-question <uuid>",
        "body": "python3 ~/.claude/skills/botsee/scripts/botsee.py get-question <uuid>"
      },
      {
        "title": "/botsee create-question <persona_uuid> <question_text>",
        "body": "python3 ~/.claude/skills/botsee/scripts/botsee.py create-question <persona_uuid> \"What are the best email marketing tools?\""
      },
      {
        "title": "/botsee generate-questions <persona_uuid> [count]",
        "body": "python3 ~/.claude/skills/botsee/scripts/botsee.py generate-questions <persona_uuid> 5\n\nDefaults to 5 if count is omitted."
      },
      {
        "title": "/botsee update-question <uuid> <question_text>",
        "body": "python3 ~/.claude/skills/botsee/scripts/botsee.py update-question <uuid> \"What are the best affordable email marketing tools?\""
      },
      {
        "title": "/botsee delete-question <uuid>",
        "body": "python3 ~/.claude/skills/botsee/scripts/botsee.py delete-question <uuid>"
      },
      {
        "title": "/botsee results-competitors <analysis_uuid>",
        "body": "python3 ~/.claude/skills/botsee/scripts/botsee.py results-competitors <analysis_uuid>"
      },
      {
        "title": "/botsee results-keywords <analysis_uuid>",
        "body": "python3 ~/.claude/skills/botsee/scripts/botsee.py results-keywords <analysis_uuid>"
      },
      {
        "title": "/botsee results-sources <analysis_uuid>",
        "body": "python3 ~/.claude/skills/botsee/scripts/botsee.py results-sources <analysis_uuid>"
      },
      {
        "title": "/botsee results-responses <analysis_uuid>",
        "body": "python3 ~/.claude/skills/botsee/scripts/botsee.py results-responses <analysis_uuid>"
      },
      {
        "title": "/botsee results-keyword-opportunities <analysis_uuid> [--threshold N] [--rank-threshold N]",
        "body": "python3 ~/.claude/skills/botsee/scripts/botsee.py results-keyword-opportunities <analysis_uuid>\npython3 ~/.claude/skills/botsee/scripts/botsee.py results-keyword-opportunities <analysis_uuid> --threshold 0.8\npython3 ~/.claude/skills/botsee/scripts/botsee.py results-keyword-opportunities <analysis_uuid> --rank-threshold 3\n\nReturns questions where the brand's mention rate is below the threshold, with per-provider breakdown showing which AI models missed the brand, what rank it appeared at (if at all), and the search keywords each provider used.\n\n--threshold (0.0–1.0, default 1.0): questions where mention_rate < threshold qualify. At 1.0, any question not mentioned in every response is included.\n--rank-threshold (integer): additionally flags questions where brand appeared but at rank worse than this value."
      },
      {
        "title": "/botsee results-source-opportunities <analysis_uuid>",
        "body": "python3 ~/.claude/skills/botsee/scripts/botsee.py results-source-opportunities <analysis_uuid>\n\nReturns sources that AI cited in responses where the brand was NOT mentioned — ideal targets for content and link-building campaigns.\n\nGetting the Analysis UUID:\nThe analysis UUID is displayed when you run /botsee analyze:\n\n📊 Analysis started: abc-def-123\n\nCopy the UUID and use it with the results commands to view detailed analysis data."
      },
      {
        "title": "Agent Usage Notes",
        "body": "This skill is designed for non-interactive agent usage. All commands accept arguments via command-line flags - no prompts or user input required."
      },
      {
        "title": "Key Considerations for Agents",
        "body": "1. Signup Flow Requires Human Intervention\n\nFor new users without an API key, the signup command creates a signup token and displays a URL:\n\n/botsee signup\n# Outputs signup URL for browser completion\n\nAgents should:\n\nUse the --api-key flag if API key is available\nInform user if signup is needed (cannot be completed by agent)\nConsider API key as a prerequisite for autonomous operation\n\n2. Async Operations with Polling\n\nTwo commands can involve waiting/polling:\n\n/botsee signup-status (checks signup completion)\n/botsee analyze: up to 10 minute timeout\n\nCommands will block until complete or timeout. No intermediate progress updates.\n\n3. Analysis Discovery\n\nTo view detailed results after analysis:\n\nRun /botsee analyze and capture the analysis UUID from output\nUse UUID with /botsee results-* commands\n\nRecommended pattern:\n\n# Run analysis\noutput=$(/botsee analyze)\n# Extract UUID (line containing \"Analysis started:\")\nuuid=$(echo \"$output\" | grep \"Analysis started:\" | awk '{print $NF}')\n# View results\n/botsee results-competitors \"$uuid\"\n\n4. Configuration Files\n\nTwo config files exist:\n\nUser config: ~/.botsee/config.json (API key + site UUID)\nWorkspace config: .context/botsee-config.json (generation defaults, optional)\n\nAgents can discover state via:\n\n/botsee - Shows account status\n/botsee config-show - Shows workspace config\n\n5. Credit Costs\n\nAll operations that consume credits display remaining balance. Agents should:\n\nCheck balance before expensive operations (/botsee command)\nHandle \"Insufficient credits\" errors gracefully\nMonitor credit usage (shown after each operation)\n\nCosts:\n\nSetup (~75 credits with defaults 2/2/5)\nAnalysis (~660 credits per run)\nContent generation (15 credits)\n\n6. Error Handling\n\nAll errors exit with code 1 and print to stderr. Error messages include:\n\nHTTP status codes (when relevant)\nActionable next steps\nNo API key leakage (sanitized)\n\n7. Idempotency\n\nSafe to retry: Status, list, get commands (read-only)\nNot idempotent: Create commands (will create duplicates)\nUpdates: Require specific UUID, safe to retry\n\n8. Output Format\n\nCRUD operations: JSON output for parsing\nWorkflow commands: Human-readable formatted text\nStatus/balance: Always displayed at command completion"
      },
      {
        "title": "Example Agent Workflow",
        "body": "# 1. Check status (discover state)\n/botsee\n\n# 2. Save API key if provided by user\n/botsee signup --api-key bts_live_abc123\n\n# 3. Create a site\n/botsee create-site https://example.com\n\n# 4. Run analysis (captures UUID)\nanalysis_output=$(/botsee analyze)\nuuid=$(echo \"$analysis_output\" | grep -oP '(?<=Analysis started: )\\S+')\n\n# 5. View results\n/botsee results-competitors \"$uuid\"\n\n# 6. Generate content\n/botsee content\n\n# 7. Check final balance\n/botsee"
      }
    ],
    "body": "BotSee Skill\n\nMonitor your brand's AI visibility (AI SEO/GEO) across ChatGPT, Claude, Perplexity, and Gemini. Provided by botsee.io, the AI Visibility tool for Claude Code and agents.\n\nCommands:\n\nWorkflow:\n\n/botsee - Quick status and help\n/botsee signup [--email EMAIL] [--name NAME] [--company COMPANY] [--api-key KEY] - Signup with credit card\n/botsee signup-usdc [--email EMAIL] [--name NAME] [--company COMPANY] [--no-email] - Signup with USDC on Base\n/botsee signup-pay-usdc --amount-cents N [--token TOKEN] [--payment PROOF] - Pay for USDC signup via x402\n/botsee signup-status [--token TOKEN] - Check signup completion and save API key\n/botsee topup-usdc --amount-cents N [--payment PROOF] - Add credits with USDC on Base via x402\n/botsee create-site <domain> [--types N] - Save custom config\n/botsee config-show - Display saved config\n/botsee analyze - Run competitive analysis\n/botsee content - Generate blog post from analysis\n\nSites:\n\n/botsee list-sites - List all sites\n/botsee get-site [uuid] - View site details\n/botsee create-site <domain> - Create a new site\n/botsee archive-site [uuid] - Archive a site\n\nCustomer Types:\n\n/botsee list-types - List customer types\n/botsee get-type <uuid> - View type details\n/botsee create-type <name> [desc] - Create customer type\n/botsee generate-types [count] - Generate customer types\n/botsee update-type <uuid> [name] [desc] - Update customer type\n/botsee archive-type <uuid> - Archive customer type\n\nPersonas:\n\n/botsee list-personas [type] - List personas (all or by type)\n/botsee get-persona <uuid> - View persona details\n/botsee create-persona <type> <name> [desc] - Create persona\n/botsee generate-personas <type> [count] - Generate personas for type\n/botsee update-persona <uuid> [name] [desc] - Update persona\n/botsee archive-persona <uuid> - Archive persona\n\nQuestions:\n\n/botsee list-questions [persona] - List questions (all or by persona)\n/botsee get-question <uuid> - View question details\n/botsee create-question <persona> <text> - Create question\n/botsee generate-questions <persona> [count] - Generate questions for persona\n/botsee update-question <uuid> <text> - Update question text\n/botsee delete-question <uuid> - Delete question\n\nResults:\n\n/botsee results-competitors <uuid> - View competitor results\n/botsee results-keywords <uuid> - View keyword results\n/botsee results-sources <uuid> - View source results\n/botsee results-responses <uuid> - View all AI responses\n/botsee results-keyword-opportunities <uuid> [--threshold 0.0-1.0] [--rank-threshold N] - Questions where brand is missing or ranks poorly\n/botsee results-source-opportunities <uuid> - Sources AI cited when brand was NOT mentioned\nImplementation\n\nWhen user invokes a BotSee command, run the corresponding Python script. All commands use a single bundled script that handles API calls internally.\n\n/botsee (status)\npython3 ~/.claude/skills/botsee/scripts/botsee.py status\n\n/botsee signup [--email EMAIL] [--name NAME] [--company COMPANY] [--api-key KEY]\n\nNew user signup flow (credit card):\n\nStep 1: Get signup URL\n\npython3 ~/.claude/skills/botsee/scripts/botsee.py signup\n\n\nThe command prints a line like:\n\nComplete signup: https://app.botsee.io/setup?token=...\n\n\nExtract that URL and tell the user: \"To complete your BotSee signup, visit this URL: [URL from above]\n\nAfter completing signup on that page, come back here and run /botsee signup-status.\"\n\nStep 2: Save your API key\n\nAfter completing signup on that page, run:\n\n/botsee signup-status\n\nThe script retrieves your API key from the server automatically using your signup token. If prompted for a token, use the token from the URL on the setup page.\n\n/botsee signup-usdc [--email EMAIL] [--name NAME] [--company COMPANY] [--no-email]\n\nUSDC signup flow (x402 on Base):\n\nStep 1 — Ask the user before calling the API\n\nWhen signup-usdc is invoked without already knowing the user's preference, ask:\n\n\"Do you want to associate an email with this account?\n\nYes (email) — You'll get a setup link to verify your email and access the dashboard later\nNo (API only) — Skip email entirely and go straight to payment\"\n\nStep 2a — Email path\n\nCall:\n\npython3 ~/.claude/skills/botsee/scripts/botsee.py signup-usdc\n\n\n(no --no-email flag)\n\nThe command prints a line like:\n\nSetup URL: https://app.botsee.io/setup?token=...\n\n\nExtract that URL and tell the user: \"Visit this URL to enter and verify your email and read the setup instructions: [URL from above]\n\nOnce you've done that, come back here and we'll complete the USDC payment.\"\n\nDo NOT call signup-pay-usdc yet. Wait for the user to confirm they've completed the setup URL step.\n\nStep 2b — No-email path\n\nCall:\n\npython3 ~/.claude/skills/botsee/scripts/botsee.py signup-usdc --no-email\n\n\nNo setup URL will be returned. Immediately proceed to payment.\n\nStep 3 — Payment (both paths)\n\nAfter the email-path user confirms they visited the setup URL (or immediately for no-email path):\n\npython3 ~/.claude/skills/botsee/scripts/botsee.py signup-pay-usdc --amount-cents 250\npython3 ~/.claude/skills/botsee/scripts/botsee.py signup-status\n\n\nx402 flow details:\n\nsignup-usdc creates a USDC signup token via POST /api/v1/signup/usdc\nsignup-pay-usdc --amount-cents N calls POST /api/v1/signup/:token/pay-usdc without a payment header → server returns 402 with payment requirements (network, amount, payTo address)\nUse a wallet (Pinch, Coinbase CDP Agentic Wallet) to send USDC to the returned address\nRetry with the payment proof: signup-pay-usdc --amount-cents N --payment <proof>\nsignup-status polls until complete and saves the API key\n/botsee signup-pay-usdc --amount-cents N [--token TOKEN] [--payment PROOF]\n# Step 1: Get 402 challenge (no --payment → returns payment requirements)\npython3 ~/.claude/skills/botsee/scripts/botsee.py signup-pay-usdc --amount-cents 250\n\n# Step 2: Retry with proof after wallet pays\npython3 ~/.claude/skills/botsee/scripts/botsee.py signup-pay-usdc --amount-cents 250 --payment <proof>\n\n\nOmit --payment to get a 402 challenge with network, amount, and payTo address. Include --payment <base64-proof> on the final retry after your wallet has made the payment.\n\n/botsee signup-status [--token TOKEN]\npython3 ~/.claude/skills/botsee/scripts/botsee.py signup-status\n\n\nSaves API key to ~/.botsee/config.json automatically once signup is completed.\n\n/botsee topup-usdc --amount-cents N [--payment PROOF]\n# Step 1: Get 402 challenge (no --payment → returns payment requirements)\npython3 ~/.claude/skills/botsee/scripts/botsee.py topup-usdc --amount-cents 5000\n\n# Step 2: Retry with proof after wallet pays\npython3 ~/.claude/skills/botsee/scripts/botsee.py topup-usdc --amount-cents 5000 --payment <proof>\n\n\nOmit --payment to get a 402 challenge with network, amount, and payTo address. Include --payment <base64-proof> on the final retry after your wallet has made the payment.\n\n/botsee create-site <domain> [--types T] [--personas P] [--questions Q]\n\nRequires: API key from /botsee signup\n\npython3 ~/.claude/skills/botsee/scripts/botsee.py create-site <domain>\n\n\nOptional parameters:\n\n--types (default: 2, range: 1-3)\n--personas (default: 2, range: 1-3)\n--questions (default: 5, range: 3-10)\n\nWhat happens:\n\nCreates a site for the domain\nGenerates customer types, personas, and questions\nSaves configuration to workspace and user config\n\nCustomize generation counts:\n\npython3 ~/.claude/skills/botsee/scripts/botsee.py create-site <domain> --types 3 --personas 2 --questions 10\n\n/botsee config-show\npython3 ~/.claude/skills/botsee/scripts/botsee.py config-show\n\n/botsee analyze\npython3 ~/.claude/skills/botsee/scripts/botsee.py analyze\n\n\nStarts analysis, polls until complete, then displays competitors, keywords, and sources.\n\n/botsee content\npython3 ~/.claude/skills/botsee/scripts/botsee.py content\n\n\nGenerates blog post from latest analysis. Auto-saves to botsee-YYYYMMDD-HHMMSS.md.\n\nSites Commands\n/botsee list-sites\npython3 ~/.claude/skills/botsee/scripts/botsee.py list-sites\n\n/botsee get-site [uuid]\npython3 ~/.claude/skills/botsee/scripts/botsee.py get-site [uuid]\n\n\nIf uuid is omitted, uses the site from ~/.botsee/config.json.\n\n/botsee create-site <domain>\npython3 ~/.claude/skills/botsee/scripts/botsee.py create-site <domain>\n\n/botsee archive-site [uuid]\npython3 ~/.claude/skills/botsee/scripts/botsee.py archive-site [uuid]\n\nCustomer Types Commands\n/botsee list-types\npython3 ~/.claude/skills/botsee/scripts/botsee.py list-types\n\n/botsee get-type <uuid>\npython3 ~/.claude/skills/botsee/scripts/botsee.py get-type <uuid>\n\n/botsee create-type <name> [description]\npython3 ~/.claude/skills/botsee/scripts/botsee.py create-type \"Enterprise Buyers\" \"Large companies seeking solutions\"\n\n/botsee generate-types [count]\npython3 ~/.claude/skills/botsee/scripts/botsee.py generate-types 3\n\n\nDefaults to 2 if count is omitted.\n\n/botsee update-type <uuid> [name] [description]\npython3 ~/.claude/skills/botsee/scripts/botsee.py update-type <uuid> --name \"New Name\" --description \"New description\"\n\n/botsee archive-type <uuid>\npython3 ~/.claude/skills/botsee/scripts/botsee.py archive-type <uuid>\n\nPersonas Commands\n/botsee list-personas [type_uuid]\npython3 ~/.claude/skills/botsee/scripts/botsee.py list-personas\npython3 ~/.claude/skills/botsee/scripts/botsee.py list-personas <type_uuid>\n\n/botsee get-persona <uuid>\npython3 ~/.claude/skills/botsee/scripts/botsee.py get-persona <uuid>\n\n/botsee create-persona <type_uuid> <name> [description]\npython3 ~/.claude/skills/botsee/scripts/botsee.py create-persona <type_uuid> \"Sarah Chen\" \"VP of Marketing at mid-sized SaaS company\"\n\n/botsee generate-personas <type_uuid> [count]\npython3 ~/.claude/skills/botsee/scripts/botsee.py generate-personas <type_uuid> 3\n\n\nDefaults to 2 if count is omitted.\n\n/botsee update-persona <uuid> [name] [description]\npython3 ~/.claude/skills/botsee/scripts/botsee.py update-persona <uuid> --name \"New Name\" --description \"New description\"\n\n/botsee archive-persona <uuid>\npython3 ~/.claude/skills/botsee/scripts/botsee.py archive-persona <uuid>\n\nQuestions Commands\n/botsee list-questions [persona_uuid]\npython3 ~/.claude/skills/botsee/scripts/botsee.py list-questions\npython3 ~/.claude/skills/botsee/scripts/botsee.py list-questions <persona_uuid>\n\n/botsee get-question <uuid>\npython3 ~/.claude/skills/botsee/scripts/botsee.py get-question <uuid>\n\n/botsee create-question <persona_uuid> <question_text>\npython3 ~/.claude/skills/botsee/scripts/botsee.py create-question <persona_uuid> \"What are the best email marketing tools?\"\n\n/botsee generate-questions <persona_uuid> [count]\npython3 ~/.claude/skills/botsee/scripts/botsee.py generate-questions <persona_uuid> 5\n\n\nDefaults to 5 if count is omitted.\n\n/botsee update-question <uuid> <question_text>\npython3 ~/.claude/skills/botsee/scripts/botsee.py update-question <uuid> \"What are the best affordable email marketing tools?\"\n\n/botsee delete-question <uuid>\npython3 ~/.claude/skills/botsee/scripts/botsee.py delete-question <uuid>\n\nResults Commands\n/botsee results-competitors <analysis_uuid>\npython3 ~/.claude/skills/botsee/scripts/botsee.py results-competitors <analysis_uuid>\n\n/botsee results-keywords <analysis_uuid>\npython3 ~/.claude/skills/botsee/scripts/botsee.py results-keywords <analysis_uuid>\n\n/botsee results-sources <analysis_uuid>\npython3 ~/.claude/skills/botsee/scripts/botsee.py results-sources <analysis_uuid>\n\n/botsee results-responses <analysis_uuid>\npython3 ~/.claude/skills/botsee/scripts/botsee.py results-responses <analysis_uuid>\n\n/botsee results-keyword-opportunities <analysis_uuid> [--threshold N] [--rank-threshold N]\npython3 ~/.claude/skills/botsee/scripts/botsee.py results-keyword-opportunities <analysis_uuid>\npython3 ~/.claude/skills/botsee/scripts/botsee.py results-keyword-opportunities <analysis_uuid> --threshold 0.8\npython3 ~/.claude/skills/botsee/scripts/botsee.py results-keyword-opportunities <analysis_uuid> --rank-threshold 3\n\n\nReturns questions where the brand's mention rate is below the threshold, with per-provider breakdown showing which AI models missed the brand, what rank it appeared at (if at all), and the search keywords each provider used.\n\n--threshold (0.0–1.0, default 1.0): questions where mention_rate < threshold qualify. At 1.0, any question not mentioned in every response is included.\n--rank-threshold (integer): additionally flags questions where brand appeared but at rank worse than this value.\n/botsee results-source-opportunities <analysis_uuid>\npython3 ~/.claude/skills/botsee/scripts/botsee.py results-source-opportunities <analysis_uuid>\n\n\nReturns sources that AI cited in responses where the brand was NOT mentioned — ideal targets for content and link-building campaigns.\n\nGetting the Analysis UUID: The analysis UUID is displayed when you run /botsee analyze:\n\n📊 Analysis started: abc-def-123\n\n\nCopy the UUID and use it with the results commands to view detailed analysis data.\n\nAgent Usage Notes\n\nThis skill is designed for non-interactive agent usage. All commands accept arguments via command-line flags - no prompts or user input required.\n\nKey Considerations for Agents\n\n1. Signup Flow Requires Human Intervention\n\nFor new users without an API key, the signup command creates a signup token and displays a URL:\n\n/botsee signup\n# Outputs signup URL for browser completion\n\n\nAgents should:\n\nUse the --api-key flag if API key is available\nInform user if signup is needed (cannot be completed by agent)\nConsider API key as a prerequisite for autonomous operation\n\n2. Async Operations with Polling\n\nTwo commands can involve waiting/polling:\n\n/botsee signup-status (checks signup completion)\n/botsee analyze: up to 10 minute timeout\n\nCommands will block until complete or timeout. No intermediate progress updates.\n\n3. Analysis Discovery\n\nTo view detailed results after analysis:\n\nRun /botsee analyze and capture the analysis UUID from output\nUse UUID with /botsee results-* commands\n\nRecommended pattern:\n\n# Run analysis\noutput=$(/botsee analyze)\n# Extract UUID (line containing \"Analysis started:\")\nuuid=$(echo \"$output\" | grep \"Analysis started:\" | awk '{print $NF}')\n# View results\n/botsee results-competitors \"$uuid\"\n\n\n4. Configuration Files\n\nTwo config files exist:\n\nUser config: ~/.botsee/config.json (API key + site UUID)\nWorkspace config: .context/botsee-config.json (generation defaults, optional)\n\nAgents can discover state via:\n\n/botsee - Shows account status\n/botsee config-show - Shows workspace config\n\n5. Credit Costs\n\nAll operations that consume credits display remaining balance. Agents should:\n\nCheck balance before expensive operations (/botsee command)\nHandle \"Insufficient credits\" errors gracefully\nMonitor credit usage (shown after each operation)\n\nCosts:\n\nSetup (~75 credits with defaults 2/2/5)\nAnalysis (~660 credits per run)\nContent generation (15 credits)\n\n6. Error Handling\n\nAll errors exit with code 1 and print to stderr. Error messages include:\n\nHTTP status codes (when relevant)\nActionable next steps\nNo API key leakage (sanitized)\n\n7. Idempotency\n\nSafe to retry: Status, list, get commands (read-only)\nNot idempotent: Create commands (will create duplicates)\nUpdates: Require specific UUID, safe to retry\n\n8. Output Format\n\nCRUD operations: JSON output for parsing\nWorkflow commands: Human-readable formatted text\nStatus/balance: Always displayed at command completion\nExample Agent Workflow\n# 1. Check status (discover state)\n/botsee\n\n# 2. Save API key if provided by user\n/botsee signup --api-key bts_live_abc123\n\n# 3. Create a site\n/botsee create-site https://example.com\n\n# 4. Run analysis (captures UUID)\nanalysis_output=$(/botsee analyze)\nuuid=$(echo \"$analysis_output\" | grep -oP '(?<=Analysis started: )\\S+')\n\n# 5. View results\n/botsee results-competitors \"$uuid\"\n\n# 6. Generate content\n/botsee content\n\n# 7. Check final balance\n/botsee"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/grahac/botsee",
    "publisherUrl": "https://clawhub.ai/grahac/botsee",
    "owner": "grahac",
    "version": "0.2.5",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/botsee",
    "downloadUrl": "https://openagent3.xyz/downloads/botsee",
    "agentUrl": "https://openagent3.xyz/skills/botsee/agent",
    "manifestUrl": "https://openagent3.xyz/skills/botsee/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/botsee/agent.md"
  }
}