# CLI Reference (v0.3.0)

All binaries live in `~/.npm-global/bin/` (or wherever npm install -g puts them).

## collab-send

Send a message to a user.

```
collab-send <to_user> <content> [--category=<cat>] [--from=<user>] [--reply-to=<id>]
```

Options:
- `--category` — info | urgent | critical | task | note | announce (default `info`)
- `--from` — override sender identity (default from config)
- `--reply-to` — mark as reply to message id (purely informational)

Examples:
```bash
collab-send baobei "hello"
collab-send claude "task done" --category=task
collab-send baobei "ack #185" --reply-to=185
```

## collab-read

Read messages from a user or "all".

```
collab-read <from_user|all> [since_id] [--limit=N] [--since-time HH:MM] [--unacked-only] [--json]
```

Options:
- `--limit` — how many messages (default 50)
- `--since-time` — only messages after HH:MM (server-side time filter)
- `--unacked-only` — only show unacknowledged
- `--json` — raw JSON output (for scripts)

Examples:
```bash
collab-read all
collab-read claude 100 --limit=10
collab-read baobei --unacked-only --json
```

## collab-ack

Acknowledge message ids.

```
collab-ack <id> [id ...]
collab-ack --ids 1,2,3
```

Examples:
```bash
collab-ack 185
collab-ack 185 186 187
collab-ack --ids 185,186
```

## collab-list

List pending items.

```
collab-list [type] [assignee] [--type=<type>] [--assignee=<user>] [--json]
```

Types: messages | todos | reviews | commits | all (default `messages`)

Examples:
```bash
collab-list todos --assignee=baobei
collab-list --type=reviews --json
```

## collab-doctor

Health check + fix suggestions.

```
collab-doctor
```

Checks:
1. `~/.claude-collab/config.json` valid JSON
2. mcp_url TCP reachable
3. api_key accepted by server (probes `/api/messages?limit=1`)
4. pending_dir writable
5. Node.js >= 18
6. collab-mcp version probe

Exits 0 if all green, 1 if fixable issues found.

## claude-collab-config

Manage `~/.claude-collab/config.json`.

```
claude-collab-config get <key>
claude-collab-config set <key> <value>
claude-collab-config list
claude-collab-config init [--no-prompt]
claude-collab-config path
```

Examples:
```bash
claude-collab-config init
claude-collab-config set api_key cmcp_xxx.<secret>
claude-collab-config set mcp_url http://127.0.0.1:3010
claude-collab-config set session_key agent:main:dashboard:<uuid>
claude-collab-config list
claude-collab-config path
```