← 返回 Skills 市场
grahac

BotSee

作者 Charlie Graham · GitHub ↗ · v0.2.5
cross-platform ✓ 安全检测通过
782
总下载
0
收藏
0
当前安装
3
版本数
在 OpenClaw 中安装
/install botsee
功能描述
Monitor your brand's AI visibility via BotSee API
使用说明 (SKILL.md)

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 \x3Cdomain> [--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 \x3Cdomain> - Create a new site
  • /botsee archive-site [uuid] - Archive a site

Customer Types:

  • /botsee list-types - List customer types
  • /botsee get-type \x3Cuuid> - View type details
  • /botsee create-type \x3Cname> [desc] - Create customer type
  • /botsee generate-types [count] - Generate customer types
  • /botsee update-type \x3Cuuid> [name] [desc] - Update customer type
  • /botsee archive-type \x3Cuuid> - Archive customer type

Personas:

  • /botsee list-personas [type] - List personas (all or by type)
  • /botsee get-persona \x3Cuuid> - View persona details
  • /botsee create-persona \x3Ctype> \x3Cname> [desc] - Create persona
  • /botsee generate-personas \x3Ctype> [count] - Generate personas for type
  • /botsee update-persona \x3Cuuid> [name] [desc] - Update persona
  • /botsee archive-persona \x3Cuuid> - Archive persona

Questions:

  • /botsee list-questions [persona] - List questions (all or by persona)
  • /botsee get-question \x3Cuuid> - View question details
  • /botsee create-question \x3Cpersona> \x3Ctext> - Create question
  • /botsee generate-questions \x3Cpersona> [count] - Generate questions for persona
  • /botsee update-question \x3Cuuid> \x3Ctext> - Update question text
  • /botsee delete-question \x3Cuuid> - Delete question

Results:

  • /botsee results-competitors \x3Cuuid> - View competitor results
  • /botsee results-keywords \x3Cuuid> - View keyword results
  • /botsee results-sources \x3Cuuid> - View source results
  • /botsee results-responses \x3Cuuid> - View all AI responses
  • /botsee results-keyword-opportunities \x3Cuuid> [--threshold 0.0-1.0] [--rank-threshold N] - Questions where brand is missing or ranks poorly
  • /botsee results-source-opportunities \x3Cuuid> - 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:

  1. signup-usdc creates a USDC signup token via POST /api/v1/signup/usdc
  2. signup-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)
  3. Use a wallet (Pinch, Coinbase CDP Agentic Wallet) to send USDC to the returned address
  4. Retry with the payment proof: signup-pay-usdc --amount-cents N --payment \x3Cproof>
  5. signup-status polls 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 \x3Cproof>

Omit --payment to get a 402 challenge with network, amount, and payTo address. Include --payment \x3Cbase64-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 \x3Cproof>

Omit --payment to get a 402 challenge with network, amount, and payTo address. Include --payment \x3Cbase64-proof> on the final retry after your wallet has made the payment.

/botsee create-site \x3Cdomain> [--types T] [--personas P] [--questions Q]

Requires: API key from /botsee signup

python3 ~/.claude/skills/botsee/scripts/botsee.py create-site \x3Cdomain>

Optional parameters:

  • --types (default: 2, range: 1-3)
  • --personas (default: 2, range: 1-3)
  • --questions (default: 5, range: 3-10)

What happens:

  1. Creates a site for the domain
  2. Generates customer types, personas, and questions
  3. Saves configuration to workspace and user config

Customize generation counts:

python3 ~/.claude/skills/botsee/scripts/botsee.py create-site \x3Cdomain> --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 \x3Cdomain>

python3 ~/.claude/skills/botsee/scripts/botsee.py create-site \x3Cdomain>

/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 \x3Cuuid>

python3 ~/.claude/skills/botsee/scripts/botsee.py get-type \x3Cuuid>

/botsee create-type \x3Cname> [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 \x3Cuuid> [name] [description]

python3 ~/.claude/skills/botsee/scripts/botsee.py update-type \x3Cuuid> --name "New Name" --description "New description"

/botsee archive-type \x3Cuuid>

python3 ~/.claude/skills/botsee/scripts/botsee.py archive-type \x3Cuuid>

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 \x3Ctype_uuid>

/botsee get-persona \x3Cuuid>

python3 ~/.claude/skills/botsee/scripts/botsee.py get-persona \x3Cuuid>

/botsee create-persona \x3Ctype_uuid> \x3Cname> [description]

python3 ~/.claude/skills/botsee/scripts/botsee.py create-persona \x3Ctype_uuid> "Sarah Chen" "VP of Marketing at mid-sized SaaS company"

/botsee generate-personas \x3Ctype_uuid> [count]

python3 ~/.claude/skills/botsee/scripts/botsee.py generate-personas \x3Ctype_uuid> 3

Defaults to 2 if count is omitted.

/botsee update-persona \x3Cuuid> [name] [description]

python3 ~/.claude/skills/botsee/scripts/botsee.py update-persona \x3Cuuid> --name "New Name" --description "New description"

/botsee archive-persona \x3Cuuid>

python3 ~/.claude/skills/botsee/scripts/botsee.py archive-persona \x3Cuuid>

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 \x3Cpersona_uuid>

/botsee get-question \x3Cuuid>

python3 ~/.claude/skills/botsee/scripts/botsee.py get-question \x3Cuuid>

/botsee create-question \x3Cpersona_uuid> \x3Cquestion_text>

python3 ~/.claude/skills/botsee/scripts/botsee.py create-question \x3Cpersona_uuid> "What are the best email marketing tools?"

/botsee generate-questions \x3Cpersona_uuid> [count]

python3 ~/.claude/skills/botsee/scripts/botsee.py generate-questions \x3Cpersona_uuid> 5

Defaults to 5 if count is omitted.

/botsee update-question \x3Cuuid> \x3Cquestion_text>

python3 ~/.claude/skills/botsee/scripts/botsee.py update-question \x3Cuuid> "What are the best affordable email marketing tools?"

/botsee delete-question \x3Cuuid>

python3 ~/.claude/skills/botsee/scripts/botsee.py delete-question \x3Cuuid>

Results Commands

/botsee results-competitors \x3Canalysis_uuid>

python3 ~/.claude/skills/botsee/scripts/botsee.py results-competitors \x3Canalysis_uuid>

/botsee results-keywords \x3Canalysis_uuid>

python3 ~/.claude/skills/botsee/scripts/botsee.py results-keywords \x3Canalysis_uuid>

/botsee results-sources \x3Canalysis_uuid>

python3 ~/.claude/skills/botsee/scripts/botsee.py results-sources \x3Canalysis_uuid>

/botsee results-responses \x3Canalysis_uuid>

python3 ~/.claude/skills/botsee/scripts/botsee.py results-responses \x3Canalysis_uuid>

/botsee results-keyword-opportunities \x3Canalysis_uuid> [--threshold N] [--rank-threshold N]

python3 ~/.claude/skills/botsee/scripts/botsee.py results-keyword-opportunities \x3Canalysis_uuid>
python3 ~/.claude/skills/botsee/scripts/botsee.py results-keyword-opportunities \x3Canalysis_uuid> --threshold 0.8
python3 ~/.claude/skills/botsee/scripts/botsee.py results-keyword-opportunities \x3Canalysis_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 where mention_rate \x3C threshold qualify. 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 \x3Canalysis_uuid>

python3 ~/.claude/skills/botsee/scripts/botsee.py results-source-opportunities \x3Canalysis_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-key flag 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:

  1. Run /botsee analyze and capture the analysis UUID from output
  2. 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 (/botsee command)
  • 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 '(?\x3C=Analysis started: )\S+')

# 5. View results
/botsee results-competitors "$uuid"

# 6. Generate content
/botsee content

# 7. Check final balance
/botsee
安全使用建议
This skill appears coherent for interacting with the BotSee API: it runs the included Python CLI, stores an API key and workspace config locally (~/.botsee/config.json and .context/botsee-config.json), and supports credit-card and USDC (Base) payment flows. Before installing: 1) Confirm you trust the publisher or marketplace entry for this skill (source was listed as unknown here) and that the homepage (plugin.json mentions https://botsee.io) is legitimate. 2) Understand the skill will save your BotSee API key to your home directory; if you expose a key in chat, the skill/code will persist it locally — check and remove it if you change your mind. 3) For USDC payments, verify any pay-to address and payment challenge responses out-of-band (on the official site) before sending funds. 4) If you need stricter secrecy, consider using a dedicated API key with limited privileges and review or sandbox the skill before granting it access to sensitive accounts. Overall, nothing in the package appears disproportionate or unrelated to its stated purpose.
功能分析
Type: OpenClaw Skill Name: botsee Version: 0.2.5 The OpenClaw AgentSkills skill bundle for BotSee is classified as benign. The Python script (`scripts/botsee.py`) primarily interacts with the `botsee.io` API using `urllib.request` with proper SSL certificate validation. It implements secure handling of API keys by storing them in `~/.botsee/config.json` with strict `0o600` file permissions. Crucially, the `CHANGELOG.md` explicitly notes the removal of a self-update mechanism (mitigating supply chain risk) and a passive API key detection method in `SKILL.md` (addressing a prompt injection vector), demonstrating a strong commitment to security. There is no evidence of arbitrary command execution, data exfiltration beyond the stated purpose, or persistence mechanisms. Minor discrepancies exist between `README.md` and `botsee.py` regarding supported arguments for USDC payment, but these result in the script being less permissive, not more, and do not indicate malicious intent.
能力评估
Purpose & Capability
Name/description, the included Python CLI, and the declared commands all align: the skill talks to botsee.io endpoints, performs signup, analysis, content generation, and manages local config. No unrelated cloud credentials, system services, or binaries are requested. The plugin.json points to https://botsee.io, which matches the code's BASE_URL default.
Instruction Scope
SKILL.md directs the agent to run the bundled Python script under ~/.claude/skills/botsee/scripts/botsee.py to call the BotSee API and to present setup URLs to the user. The instructions also ask the user to paste API keys or ensure payment steps complete; the script will persist API keys and workspace config locally. This is expected for an API client, but users should be aware that secrets (API keys) are saved to ~/.botsee/config.json and workspace config is saved to .context/botsee-config.json.
Install Mechanism
There is no install spec (instruction-only / bundled script) — the skill runs the included Python script. No downloads from external or untrusted URLs or package managers are performed by the skill itself. This is the lower-risk pattern.
Credentials
The skill declares no required environment variables and only optionally respects BOTSEE_BASE_URL for testing. It does create and read local config files under the user's home (~/.botsee) and workspace (.context). It does not request unrelated credentials or broad environment access. Payment flows require user-provided wallet addresses/tx hashes, which is appropriate for a USDC-based payment flow.
Persistence & Privilege
The script persists user API key and pending signup metadata to ~/.botsee and workspace settings to .context; file permissions are explicitly tightened (umask 0o077, chmod 0o700/0o600). always:false and normal autonomous invocation are used. Persistence is expected for this type of client, but users should understand the skill will store their API key locally.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install botsee
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /botsee 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v0.2.5
## botsee 0.2.5 - Added new results commands: `/botsee results-keyword-opportunities` and `/botsee results-source-opportunities` for opportunity analysis. - Clarified and improved signup flow instructions, including explicit steps for saving your API key. - Newly added implementation and documentation files: `.claude-plugin/plugin.json`, `.gitignore`, `CHANGELOG.md`, `LICENSE`, and `skills/botsee/SKILL.md`.
v0.2.2
- Updated skill description and version to reflect BotSee's focus on AI visibility monitoring. - Refined documentation for concise branding: emphasizes monitoring across ChatGPT, Claude, Perplexity, and Gemini. - No changes to commands or features. - Added .DS_Store file; no functional impact.
v0.2.1
- Added detailed documentation for all BotSee commands, including new and improved signup flows for both credit card and USDC payments. - Revised agent behavior: API keys are now auto-detected and saved without extra user steps. - Clarified and expanded instructions for payment flows, with step-by-step handling for x402 USDC payments. - Documented new and updated command options for managing sites, customer types, personas, and questions. - Included default and allowed value ranges for generation parameters in /create-site. - Improved overall command usage examples and explanations for easier onboarding.
元数据
Slug botsee
版本 0.2.5
许可证
累计安装 0
当前安装数 0
历史版本数 3
常见问题

BotSee 是什么?

Monitor your brand's AI visibility via BotSee API. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 782 次。

如何安装 BotSee?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install botsee」即可一键安装,无需额外配置。

BotSee 是免费的吗?

是的,BotSee 完全免费(开源免费),可自由下载、安装和使用。

BotSee 支持哪些平台?

BotSee 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 BotSee?

由 Charlie Graham(@grahac)开发并维护,当前版本 v0.2.5。

💬 留言讨论