Files
openclaw/docs/cli/channels.md

102 lines
4.5 KiB
Markdown
Raw Normal View History

2026-01-15 06:12:54 +00:00
---
2026-01-30 03:15:10 +01:00
summary: "CLI reference for `openclaw channels` (accounts, status, login/logout, logs)"
2026-01-15 06:12:54 +00:00
read_when:
2026-01-23 16:45:37 -06:00
- You want to add/remove channel accounts (WhatsApp/Telegram/Discord/Google Chat/Slack/Mattermost (plugin)/Signal/iMessage)
2026-01-15 06:12:54 +00:00
- You want to check channel status or tail channel logs
title: "channels"
2026-01-15 06:12:54 +00:00
---
2026-01-30 03:15:10 +01:00
# `openclaw channels`
2026-01-15 06:12:54 +00:00
Manage chat channel accounts and their runtime status on the Gateway.
Related docs:
2026-01-31 21:13:13 +09:00
2026-01-15 06:12:54 +00:00
- Channel guides: [Channels](/channels/index)
- Gateway configuration: [Configuration](/gateway/configuration)
## Common commands
```bash
2026-01-30 03:15:10 +01:00
openclaw channels list
openclaw channels status
openclaw channels capabilities
openclaw channels capabilities --channel discord --target channel:123
openclaw channels resolve --channel slack "#general" "@jane"
openclaw channels logs --channel all
2026-01-15 06:12:54 +00:00
```
## Add / remove accounts
```bash
2026-01-30 03:15:10 +01:00
openclaw channels add --channel telegram --token <bot-token>
openclaw channels remove --channel telegram --delete
2026-01-15 06:12:54 +00:00
```
2026-01-30 03:15:10 +01:00
Tip: `openclaw channels add --help` shows per-channel flags (token, app token, signal-cli paths, etc).
2026-01-15 06:12:54 +00:00
When you run `openclaw channels add` without flags, the interactive wizard can prompt:
- account ids per selected channel
- optional display names for those accounts
- `Bind configured channel accounts to agents now?`
If you confirm bind now, the wizard asks which agent should own each configured channel account and writes account-scoped routing bindings.
You can also manage the same routing rules later with `openclaw agents bindings`, `openclaw agents bind`, and `openclaw agents unbind` (see [agents](/cli/agents)).
When you add a non-default account to a channel that is still using single-account top-level settings (no `channels.<channel>.accounts` entries yet), OpenClaw moves account-scoped single-account top-level values into `channels.<channel>.accounts.default`, then writes the new account. This preserves the original account behavior while moving to the multi-account shape.
Routing behavior stays consistent:
- Existing channel-only bindings (no `accountId`) continue to match the default account.
- `channels add` does not auto-create or rewrite bindings in non-interactive mode.
- Interactive setup can optionally add account-scoped bindings.
If your config was already in a mixed state (named accounts present, missing `default`, and top-level single-account values still set), run `openclaw doctor --fix` to move account-scoped values into `accounts.default`.
2026-01-15 06:12:54 +00:00
## Login / logout (interactive)
```bash
2026-01-30 03:15:10 +01:00
openclaw channels login --channel whatsapp
openclaw channels logout --channel whatsapp
2026-01-15 06:12:54 +00:00
```
## Troubleshooting
2026-01-30 03:15:10 +01:00
- Run `openclaw status --deep` for a broad probe.
- Use `openclaw doctor` for guided fixes.
- `openclaw 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.
- `openclaw channels status` falls back to config-only summaries when the gateway is unreachable. If a supported channel credential is configured via SecretRef but unavailable in the current command path, it reports that account as configured with degraded notes instead of showing it as not configured.
2026-01-15 06:12:54 +00:00
## Capabilities probe
Fetch provider capability hints (intents/scopes where available) plus static feature support:
```bash
2026-01-30 03:15:10 +01:00
openclaw channels capabilities
openclaw channels capabilities --channel discord --target channel:123
```
Notes:
2026-01-31 21:13:13 +09:00
- `--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
2026-01-30 03:15:10 +01:00
openclaw channels resolve --channel slack "#general" "@jane"
openclaw channels resolve --channel discord "My Server/#support" "@someone"
openclaw channels resolve --channel matrix "Project Room"
```
Notes:
2026-01-31 21:13:13 +09:00
- Use `--kind user|group|auto` to force the target type.
- Resolution prefers active matches when multiple entries share the same name.
- `channels resolve` is read-only. If a selected account is configured via SecretRef but that credential is unavailable in the current command path, the command returns degraded unresolved results with notes instead of aborting the entire run.