openclaw/docs/cli/channels.md
Drax d3cf62a1e5 feat(cli): add --json flag to channels login for programmatic QR access
Adds JSON output mode for  that returns QR code
  as base64 PNG data URL instead of terminal graphics. Useful for web
  dashboards and hosting platforms that need to display the QR in a browser.

  - Add --json and --timeout flags to channels login command
  - Use gateway.loginWithQrStart/Wait methods for JSON mode
  - Output two JSON objects: QR data, then connection result
  - Document new mode in docs/cli/channels.md
2026-01-28 23:36:31 +01:00

97 lines
3.3 KiB
Markdown

---
summary: "CLI reference for `moltbot channels` (accounts, status, login/logout, logs)"
read_when:
- You want to add/remove channel accounts (WhatsApp/Telegram/Discord/Google Chat/Slack/Mattermost (plugin)/Signal/iMessage)
- You want to check channel status or tail channel logs
---
# `moltbot channels`
Manage chat channel accounts and their runtime status on the Gateway.
Related docs:
- Channel guides: [Channels](/channels/index)
- Gateway configuration: [Configuration](/gateway/configuration)
## Common commands
```bash
moltbot channels list
moltbot channels status
moltbot channels capabilities
moltbot channels capabilities --channel discord --target channel:123
moltbot channels resolve --channel slack "#general" "@jane"
moltbot channels logs --channel all
```
## Add / remove accounts
```bash
moltbot channels add --channel telegram --token <bot-token>
moltbot channels remove --channel telegram --delete
```
Tip: `moltbot channels add --help` shows per-channel flags (token, app token, signal-cli paths, etc).
## Login / logout (interactive)
```bash
moltbot channels login --channel whatsapp
moltbot channels logout --channel whatsapp
```
### JSON mode (programmatic)
For programmatic use (e.g., web dashboards, hosting platforms), use `--json` to get QR data as JSON instead of terminal output:
```bash
moltbot channels login --channel whatsapp --json --timeout 60000
```
This outputs two JSON objects:
1. Initial response with QR data:
```json
{"status":"pending","qrDataUrl":"data:image/png;base64,...","message":"Scan this QR...","accountId":"default","channel":"whatsapp"}
```
2. Final response after scan (or timeout):
```json
{"status":"connected","connected":true,"message":"✅ Linked!","accountId":"default","channel":"whatsapp"}
```
The `qrDataUrl` is a base64-encoded PNG that can be displayed directly in an `<img>` tag.
## Troubleshooting
- Run `moltbot status --deep` for a broad probe.
- Use `moltbot doctor` for guided fixes.
- `moltbot channels list` prints `Claude: HTTP 403 ... user:profile` → usage snapshot needs the `user:profile` scope. Use `--no-usage`, or provide a claude.ai session key (`CLAUDE_WEB_SESSION_KEY` / `CLAUDE_WEB_COOKIE`), or re-auth via Claude Code CLI.
## Capabilities probe
Fetch provider capability hints (intents/scopes where available) plus static feature support:
```bash
moltbot channels capabilities
moltbot channels capabilities --channel discord --target channel:123
```
Notes:
- `--channel` is optional; omit it to list every channel (including extensions).
- `--target` accepts `channel:<id>` or a raw numeric channel id and only applies to Discord.
- Probes are provider-specific: Discord intents + optional channel permissions; Slack bot + user scopes; Telegram bot flags + webhook; Signal daemon version; MS Teams app token + Graph roles/scopes (annotated where known). Channels without probes report `Probe: unavailable`.
## Resolve names to IDs
Resolve channel/user names to IDs using the provider directory:
```bash
moltbot channels resolve --channel slack "#general" "@jane"
moltbot channels resolve --channel discord "My Server/#support" "@someone"
moltbot channels resolve --channel matrix "Project Room"
```
Notes:
- Use `--kind user|group|auto` to force the target type.
- Resolution prefers active matches when multiple entries share the same name.