OpenClaw · Skill
Botsee
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.
Install
Start with the primary install command. Alternate entrypoints are included below for ClawHub and OpenClaw CLI users.
Primary command
clawhub install grahac/botseeClawHub installer
npx clawhub@latest install grahac/botseeOpenClaw CLI
openclaw skills install grahac/botseeDirect OpenClaw install
openclaw install grahac/botseeWhat this skill does
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.
Why it matters
Covers four major AI answer engines in one analysis run instead of manually prompting each one and tallying results by hand.
Typical use cases
- Checking if a SaaS product gets recommended by ChatGPT
- Finding which competitors AI mentions instead of your brand
- Identifying content gaps that reduce AI search visibility
- Tracking brand mention rates after a content campaign
- Generating targeted blog posts to improve AI ranking
Source instructions
BotSee Skill
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.
Commands:
Workflow:
- /botsee - Quick status and help
- /botsee signup [--email EMAIL] [--name NAME] [--company COMPANY] [--api-key KEY] - Signup with credit card
- /botsee signup-usdc [--email EMAIL] [--name NAME] [--company COMPANY] [--no-email] - Signup with USDC on Base
- /botsee signup-pay-usdc --amount-cents N [--token TOKEN] [--payment PROOF] - Pay for USDC signup via x402
- /botsee signup-status [--token TOKEN] - Check signup completion and save API key
- /botsee topup-usdc --amount-cents N [--payment PROOF] - Add credits with USDC on Base via x402
- /botsee create-site <domain> [--types N] - Save custom config
- /botsee config-show - Display saved config
- /botsee analyze - Run competitive analysis
- /botsee content - Generate blog post from analysis
Sites:
- /botsee list-sites - List all sites
- /botsee get-site [uuid] - View site details
- /botsee create-site <domain> - Create a new site
- /botsee archive-site [uuid] - Archive a site
Customer Types:
- /botsee list-types - List customer types
- /botsee get-type <uuid> - View type details
- /botsee create-type <name> [desc] - Create customer type
- /botsee generate-types [count] - Generate customer types
- /botsee update-type <uuid> [name] [desc] - Update customer type
- /botsee archive-type <uuid> - Archive customer type
Personas:
- /botsee list-personas [type] - List personas (all or by type)
- /botsee get-persona <uuid> - View persona details
- /botsee create-persona <type> <name> [desc] - Create persona
- /botsee generate-personas <type> [count] - Generate personas for type
- /botsee update-persona <uuid> [name] [desc] - Update persona
- /botsee archive-persona <uuid> - Archive persona
Questions:
- /botsee list-questions [persona] - List questions (all or by persona)
- /botsee get-question <uuid> - View question details
- /botsee create-question <persona> <text> - Create question
- /botsee generate-questions <persona> [count] - Generate questions for persona
- /botsee update-question <uuid> <text> - Update question text
- /botsee delete-question <uuid> - Delete question
Results:
- /botsee results-competitors <uuid> - View competitor results
- /botsee results-keywords <uuid> - View keyword results
- /botsee results-sources <uuid> - View source results
- /botsee results-responses <uuid> - View all AI responses
- /botsee results-keyword-opportunities <uuid> [--threshold 0.0-1.0] [--rank-threshold N] - Questions where brand is missing or ranks poorly
- /botsee results-source-opportunities <uuid> - Sources AI cited when brand was NOT mentioned
Implementation
When user invokes a BotSee command, run the corresponding Python script. All commands use a single bundled script that handles API calls internally.
/botsee (status)
python3 ~/.claude/skills/botsee/scripts/botsee.py status
/botsee signup [--email EMAIL] [--name NAME] [--company COMPANY] [--api-key KEY]
New user signup flow (credit card):
Step 1: Get signup URL
python3 ~/.claude/skills/botsee/scripts/botsee.py signup
The command prints a line like:
Complete signup: https://app.botsee.io/setup?token=...
Extract that URL and tell the user: "To complete your BotSee signup, visit this URL: [URL from above]
After completing signup on that page, come back here and run /botsee signup-status."
Step 2: Save your API key
After completing signup on that page, run:
/botsee signup-status
The 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.
/botsee signup-usdc [--email EMAIL] [--name NAME] [--company COMPANY] [--no-email]
USDC signup flow (x402 on Base):
Step 1 — Ask the user before calling the API
When signup-usdc is invoked without already knowing the user's preference, ask:
"Do you want to associate an email with this account?
- Yes (email) — You'll get a setup link to verify your email and access the dashboard later
- No (API only) — Skip email entirely and go straight to payment"
Step 2a — Email path
Call:
python3 ~/.claude/skills/botsee/scripts/botsee.py signup-usdc
(no --no-email flag)
The command prints a line like:
Setup URL: https://app.botsee.io/setup?token=...
Extract that URL and tell the user: "Visit this URL to enter and verify your email and read the setup instructions: [URL from above]
Once you've done that, come back here and we'll complete the USDC payment."
Do NOT call signup-pay-usdc yet. Wait for the user to confirm they've completed the setup URL step.
Step 2b — No-email path
Call:
python3 ~/.claude/skills/botsee/scripts/botsee.py signup-usdc --no-email
No setup URL will be returned. Immediately proceed to payment.
Step 3 — Payment (both paths)
After the email-path user confirms they visited the setup URL (or immediately for no-email path):
python3 ~/.claude/skills/botsee/scripts/botsee.py signup-pay-usdc --amount-cents 250
python3 ~/.claude/skills/botsee/scripts/botsee.py signup-status
x402 flow details:
signup-usdccreates a USDC signup token viaPOST /api/v1/signup/usdcsignup-pay-usdc --amount-cents NcallsPOST /api/v1/signup/:token/pay-usdcwithout a payment header → server returns 402 with payment requirements (network, amount,payToaddress)- Use a wallet (Pinch, Coinbase CDP Agentic Wallet) to send USDC to the returned address
- Retry with the payment proof:
signup-pay-usdc --amount-cents N --payment <proof> signup-statuspolls until complete and saves the API key
/botsee signup-pay-usdc --amount-cents N [--token TOKEN] [--payment PROOF]
# Step 1: Get 402 challenge (no --payment → returns payment requirements)
python3 ~/.claude/skills/botsee/scripts/botsee.py signup-pay-usdc --amount-cents 250
# Step 2: Retry with proof after wallet pays
python3 ~/.claude/skills/botsee/scripts/botsee.py signup-pay-usdc --amount-cents 250 --payment <proof>
Omit --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.
/botsee signup-status [--token TOKEN]
python3 ~/.claude/skills/botsee/scripts/botsee.py signup-status
Saves API key to ~/.botsee/config.json automatically once signup is completed.
/botsee topup-usdc --amount-cents N [--payment PROOF]
# Step 1: Get 402 challenge (no --payment → returns payment requirements)
python3 ~/.claude/skills/botsee/scripts/botsee.py topup-usdc --amount-cents 5000
# Step 2: Retry with proof after wallet pays
python3 ~/.claude/skills/botsee/scripts/botsee.py topup-usdc --amount-cents 5000 --payment <proof>
Omit --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.
/botsee create-site <domain> [--types T] [--personas P] [--questions Q]
Requires: API key from /botsee signup
python3 ~/.claude/skills/botsee/scripts/botsee.py create-site <domain>
Optional parameters:
--types(default: 2, range: 1-3)--personas(default: 2, range: 1-3)--questions(default: 5, range: 3-10)
What happens:
- Creates a site for the domain
- Generates customer types, personas, and questions
- Saves configuration to workspace and user config
Customize generation counts:
python3 ~/.claude/skills/botsee/scripts/botsee.py create-site <domain> --types 3 --personas 2 --questions 10
/botsee config-show
python3 ~/.claude/skills/botsee/scripts/botsee.py config-show
/botsee analyze
python3 ~/.claude/skills/botsee/scripts/botsee.py analyze
Starts analysis, polls until complete, then displays competitors, keywords, and sources.
/botsee content
python3 ~/.claude/skills/botsee/scripts/botsee.py content
Generates blog post from latest analysis. Auto-saves to botsee-YYYYMMDD-HHMMSS.md.
Sites Commands
/botsee list-sites
python3 ~/.claude/skills/botsee/scripts/botsee.py list-sites
/botsee get-site [uuid]
python3 ~/.claude/skills/botsee/scripts/botsee.py get-site [uuid]
If uuid is omitted, uses the site from ~/.botsee/config.json.
/botsee create-site <domain>
python3 ~/.claude/skills/botsee/scripts/botsee.py create-site <domain>
/botsee archive-site [uuid]
python3 ~/.claude/skills/botsee/scripts/botsee.py archive-site [uuid]
Customer Types Commands
/botsee list-types
python3 ~/.claude/skills/botsee/scripts/botsee.py list-types
/botsee get-type <uuid>
python3 ~/.claude/skills/botsee/scripts/botsee.py get-type <uuid>
/botsee create-type <name> [description]
python3 ~/.claude/skills/botsee/scripts/botsee.py create-type "Enterprise Buyers" "Large companies seeking solutions"
/botsee generate-types [count]
python3 ~/.claude/skills/botsee/scripts/botsee.py generate-types 3
Defaults to 2 if count is omitted.
/botsee update-type <uuid> [name] [description]
python3 ~/.claude/skills/botsee/scripts/botsee.py update-type <uuid> --name "New Name" --description "New description"
/botsee archive-type <uuid>
python3 ~/.claude/skills/botsee/scripts/botsee.py archive-type <uuid>
Personas Commands
/botsee list-personas [type_uuid]
python3 ~/.claude/skills/botsee/scripts/botsee.py list-personas
python3 ~/.claude/skills/botsee/scripts/botsee.py list-personas <type_uuid>
/botsee get-persona <uuid>
python3 ~/.claude/skills/botsee/scripts/botsee.py get-persona <uuid>
/botsee create-persona <type_uuid> <name> [description]
python3 ~/.claude/skills/botsee/scripts/botsee.py create-persona <type_uuid> "Sarah Chen" "VP of Marketing at mid-sized SaaS company"
/botsee generate-personas <type_uuid> [count]
python3 ~/.claude/skills/botsee/scripts/botsee.py generate-personas <type_uuid> 3
Defaults to 2 if count is omitted.
/botsee update-persona <uuid> [name] [description]
python3 ~/.claude/skills/botsee/scripts/botsee.py update-persona <uuid> --name "New Name" --description "New description"
/botsee archive-persona <uuid>
python3 ~/.claude/skills/botsee/scripts/botsee.py archive-persona <uuid>
Questions Commands
/botsee list-questions [persona_uuid]
python3 ~/.claude/skills/botsee/scripts/botsee.py list-questions
python3 ~/.claude/skills/botsee/scripts/botsee.py list-questions <persona_uuid>
/botsee get-question <uuid>
python3 ~/.claude/skills/botsee/scripts/botsee.py get-question <uuid>
/botsee create-question <persona_uuid> <question_text>
python3 ~/.claude/skills/botsee/scripts/botsee.py create-question <persona_uuid> "What are the best email marketing tools?"
/botsee generate-questions <persona_uuid> [count]
python3 ~/.claude/skills/botsee/scripts/botsee.py generate-questions <persona_uuid> 5
Defaults to 5 if count is omitted.
/botsee update-question <uuid> <question_text>
python3 ~/.claude/skills/botsee/scripts/botsee.py update-question <uuid> "What are the best affordable email marketing tools?"
/botsee delete-question <uuid>
python3 ~/.claude/skills/botsee/scripts/botsee.py delete-question <uuid>
Results Commands
/botsee results-competitors <analysis_uuid>
python3 ~/.claude/skills/botsee/scripts/botsee.py results-competitors <analysis_uuid>
/botsee results-keywords <analysis_uuid>
python3 ~/.claude/skills/botsee/scripts/botsee.py results-keywords <analysis_uuid>
/botsee results-sources <analysis_uuid>
python3 ~/.claude/skills/botsee/scripts/botsee.py results-sources <analysis_uuid>
/botsee results-responses <analysis_uuid>
python3 ~/.claude/skills/botsee/scripts/botsee.py results-responses <analysis_uuid>
/botsee results-keyword-opportunities <analysis_uuid> [--threshold N] [--rank-threshold N]
python3 ~/.claude/skills/botsee/scripts/botsee.py results-keyword-opportunities <analysis_uuid>
python3 ~/.claude/skills/botsee/scripts/botsee.py results-keyword-opportunities <analysis_uuid> --threshold 0.8
python3 ~/.claude/skills/botsee/scripts/botsee.py results-keyword-opportunities <analysis_uuid> --rank-threshold 3
Returns 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.
--threshold(0.0–1.0, default 1.0): questions wheremention_rate < thresholdqualify. At 1.0, any question not mentioned in every response is included.--rank-threshold(integer): additionally flags questions where brand appeared but at rank worse than this value.
/botsee results-source-opportunities <analysis_uuid>
python3 ~/.claude/skills/botsee/scripts/botsee.py results-source-opportunities <analysis_uuid>
Returns sources that AI cited in responses where the brand was NOT mentioned — ideal targets for content and link-building campaigns.
Getting the Analysis UUID:
The analysis UUID is displayed when you run /botsee analyze:
📊 Analysis started: abc-def-123
Copy the UUID and use it with the results commands to view detailed analysis data.
Agent Usage Notes
This skill is designed for non-interactive agent usage. All commands accept arguments via command-line flags - no prompts or user input required.
Key Considerations for Agents
1. Signup Flow Requires Human Intervention
For new users without an API key, the signup command creates a signup token and displays a URL:
/botsee signup
# Outputs signup URL for browser completion
Agents should:
- Use the
--api-keyflag if API key is available - Inform user if signup is needed (cannot be completed by agent)
- Consider API key as a prerequisite for autonomous operation
2. Async Operations with Polling
Two commands can involve waiting/polling:
/botsee signup-status(checks signup completion)/botsee analyze: up to 10 minute timeout
Commands will block until complete or timeout. No intermediate progress updates.
3. Analysis Discovery
To view detailed results after analysis:
- Run
/botsee analyzeand capture the analysis UUID from output - Use UUID with
/botsee results-*commands
Recommended pattern:
# Run analysis
output=$(/botsee analyze)
# Extract UUID (line containing "Analysis started:")
uuid=$(echo "$output" | grep "Analysis started:" | awk '{print $NF}')
# View results
/botsee results-competitors "$uuid"
4. Configuration Files
Two config files exist:
- User config:
~/.botsee/config.json(API key + site UUID) - Workspace config:
.context/botsee-config.json(generation defaults, optional)
Agents can discover state via:
/botsee- Shows account status/botsee config-show- Shows workspace config
5. Credit Costs
All operations that consume credits display remaining balance. Agents should:
- Check balance before expensive operations (
/botseecommand) - Handle "Insufficient credits" errors gracefully
- Monitor credit usage (shown after each operation)
Costs:
- Setup (~75 credits with defaults 2/2/5)
- Analysis (~660 credits per run)
- Content generation (15 credits)
6. Error Handling
All errors exit with code 1 and print to stderr. Error messages include:
- HTTP status codes (when relevant)
- Actionable next steps
- No API key leakage (sanitized)
7. Idempotency
- Safe to retry: Status, list, get commands (read-only)
- Not idempotent: Create commands (will create duplicates)
- Updates: Require specific UUID, safe to retry
8. Output Format
- CRUD operations: JSON output for parsing
- Workflow commands: Human-readable formatted text
- Status/balance: Always displayed at command completion
Example Agent Workflow
# 1. Check status (discover state)
/botsee
# 2. Save API key if provided by user
/botsee signup --api-key bts_live_abc123
# 3. Create a site
/botsee create-site https://example.com
# 4. Run analysis (captures UUID)
analysis_output=$(/botsee analyze)
uuid=$(echo "$analysis_output" | grep -oP '(?<=Analysis started: )\S+')
# 5. View results
/botsee results-competitors "$uuid"
# 6. Generate content
/botsee content
# 7. Check final balance
/botsee