← Back to Skills
Communication

botsee

grahac By grahac 👁 54 views ▲ 0 votes

Monitor your brand's AI visibility via BotSee API.

GitHub
---
name: botsee
description: Monitor your brand's AI visibility via BotSee API
version: 0.2.5
---

# 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)

```bash
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**
```bash
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:
```bash
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:
```bash
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):

```bash
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 <proof>`
5. `signup-status` polls until complete and saves the API key

### /botsee signup-pay-usdc --amount-cents N [--token TOKEN] [--payment PROOF]

```bash
# 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]

```bash
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]

```bash
# 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`

```bash
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:**
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:**
```bash
python3 ~/.claude/skills/botsee/scripts/botsee.py create-site <domain> --types 3 --personas 2 --questions 10
```

### /botsee config-show

```bash
python3 ~/.claude/skills/botsee/scripts/botsee.py config-show
```

### /botsee analyze

```bash
python3 ~/.claude/skills/botsee/scripts/botsee.py analyze
```

Starts analysis, polls until complete, then displays competitors, keywords, and sources.

### /botsee content

```bash
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

```bash
python3 ~/.claude/skills/botsee/scripts/botsee.py list-sites
```

### /botsee get-site [uuid]

```bash
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>

```bash
python3 ~/.claude/skills/botsee/scripts/botsee.py create-site <domain>
```

### /botsee archive-site [uuid]

```bash
python3 ~/.claude/skills/botsee/scripts/botsee.py archive-site [uuid]
```

---

## Customer Types Commands

### /botsee list-types

```bash
python3 ~/.claude/skills/botsee/scripts/botsee.py list-types
```

### /botsee get-type <uuid>

```bash
python3 ~/.claude/skills/botsee/scripts/botsee.py get-type <uuid>
```

### /botsee create-type <name> [description]

```bash
python3 ~/.claude/skills/botsee/scripts/botsee.py create-type "Enterprise Buyers" "Large companies seeking solutions"
```

### /botsee generate-types [count]

```bash
python3 ~/.claude/skills/botsee/scripts/botsee.py generate-types 3
```

Defaults to 2 if count is omitted.

### /botsee update-type <uuid> [name] [description]

```bash
python3 ~/.claude/skills/botsee/scripts/botsee.py update-type <uuid> --name "New Name" --description "New description"
```

### /botsee archive-type <uuid>

```bash
python3 ~/.claude/skills/botsee/scripts/botsee.py archive-type <uuid>
```

---

## Personas Commands

### /

... (truncated)
communication

Comments

Sign in to leave a comment

Loading comments...