Files
moltbot/docs/cli/channels.md
Gustavo Madeira Santana dfa0b5b4fc Channels: move single-account config into accounts.default (#27334)
Merged via /review-pr -> /prepare-pr -> /merge-pr.

Prepared head SHA: 50b5771808
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Reviewed-by: @gumadeiras
2026-02-26 04:06:03 -05:00

4.0 KiB

summary, read_when, title
summary read_when title
CLI reference for `openclaw channels` (accounts, status, login/logout, logs)
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
channels

openclaw channels

Manage chat channel accounts and their runtime status on the Gateway.

Related docs:

Common commands

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

Add / remove accounts

openclaw channels add --channel telegram --token <bot-token>
openclaw channels remove --channel telegram --delete

Tip: openclaw channels add --help shows per-channel flags (token, app token, signal-cli paths, etc).

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

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.

Login / logout (interactive)

openclaw channels login --channel whatsapp
openclaw channels logout --channel whatsapp

Troubleshooting

  • 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.

Capabilities probe

Fetch provider capability hints (intents/scopes where available) plus static feature support:

openclaw channels capabilities
openclaw 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:

openclaw channels resolve --channel slack "#general" "@jane"
openclaw channels resolve --channel discord "My Server/#support" "@someone"
openclaw 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.