Files
openclaw/docs/channels/index.md
Peter Steinberger cad34e612f feat(channels): add Matrix and LINE join introductions (#131128)
Introduce on admitted bot joins using the existing sealed no-tools turn and durable room dedupe. Matrix uses room metadata and readable history; LINE uses group names and explicitly unavailable history.

Mark Matrix bridge membership provenance without changing existing event delivery, invite handling, or auto-join. Exclude startup snapshots and already-joined profile updates, including startup connection recovery.

Simplify snapshot budget accounting while preserving prompt bytes, metadata order, and oldest-first message dropping. Add channel config, docs, and regression coverage.
2026-08-27 12:52:55 -07:00

9.6 KiB

summary, read_when, title
summary read_when title
Messaging platforms OpenClaw can connect to
You want to choose a chat channel for OpenClaw
You need a quick overview of supported messaging platforms
Chat channels

OpenClaw can talk to you on any chat app you already use. Each channel connects via the Gateway. Text is supported everywhere; media and reactions vary by channel.

Entries marked "bundled plugin" or "included in core" ship with the core install. Channels marked "official plugin" install with one command (openclaw plugins install @openclaw/<id>) or on demand during openclaw onboard / openclaw channels add, then need a Gateway restart. "External plugin" channels are maintained outside the OpenClaw repo.

Supported channels

  • A2A - Connect external agents to OpenClaw through the A2A 1.0 JSON-RPC protocol (bundled plugin).
  • Buzz - Connect OpenClaw agents to Buzz rooms (official plugin).
  • ClickClack - ClickClack bot-token channel setup and target syntax (official plugin).
  • Discord - Discord bot setup, config keys, components, voice, and troubleshooting (official plugin).
  • Feishu - Feishu bot overview, features, and configuration (official plugin).
  • Google Chat - Google Chat app support status, capabilities, and configuration (official plugin).
  • iMessage - Native iMessage support via imsg (JSON-RPC over stdio), with private API actions for replies, tapbacks, effects, polls, attachments, and group management. Preferred for new OpenClaw iMessage setups when host requirements fit (official plugin).
  • IRC - IRC plugin setup, access controls, and troubleshooting (official plugin).
  • LINE - LINE Messaging API plugin setup, config, and usage (official plugin).
  • Matrix - Matrix support status, setup, and configuration examples (official plugin).
  • Mattermost - Mattermost bot setup and OpenClaw config (official plugin).
  • Microsoft Teams - Microsoft Teams bot support status, capabilities, and configuration (official plugin).
  • Nextcloud Talk - Nextcloud Talk support status, capabilities, and configuration (official plugin).
  • Nostr - Nostr DM channel via NIP-04 encrypted messages (official plugin).
  • QQ bot - QQ Bot setup, config, and usage (official plugin).
  • Raft - Raft External Agent support through the Raft CLI wake bridge (official plugin).
  • Reef - Reef channel setup: guarded, end-to-end-encrypted messaging between OpenClaw agents of different people (bundled plugin).
  • Signal - Signal support via signal-cli (native daemon or bbernhard container), setup paths, and number model (official plugin).
  • Slack - Slack setup and runtime behavior (Socket Mode, HTTP Request URLs, and relay mode) (official plugin).
  • SMS - Twilio SMS/MMS setup, access controls, webhooks, and delivery status (official plugin).
  • Synology Chat - Synology Chat webhook setup and OpenClaw config (official plugin).
  • Telegram - Telegram bot support status, capabilities, and configuration (bundled plugin).
  • Tlon - Tlon/Urbit support status, capabilities, and configuration (official plugin).
  • Twitch - Twitch chat bot: install, credentials, access control, token refresh (official plugin).
  • WebChat - Native and Control UI WebChat usage over the Gateway WebSocket (included in core).
  • WeChat - WeChat channel setup through the external openclaw-weixin plugin (external plugin).
  • WeCom - Install the official WeCom plugin and find its versioned setup documentation (external plugin).
  • WhatsApp - WhatsApp channel support, access controls, delivery behavior, and operations (official plugin).
  • Yuanbao - Yuanbao bot overview, features, and configuration (external plugin).
  • Zalo - Zalo bot support status, capabilities, and configuration (official plugin).
  • Zalo ClawBot - Zalo ClawBot channel setup through the external openclaw-zaloclawbot plugin (external plugin).
  • Zalo personal - Zalo personal account support via native zca-js (QR login), capabilities, and configuration (official plugin).
  • Voice Call - Telephony via Plivo, Telnyx, or Twilio (official plugin).

Group join introductions

Discord, LINE, Matrix, Slack, and Telegram post one room-specific introduction when the bot joins an allowed group, instead of joining silently. The introduction says what the room appears to be for and names a few concrete jobs the bot could take on there, grounded in what that platform can actually show it.

Disabling. Introductions are on by default. Turn them off per channel with channels.<channel>.joinIntro: false, or override a single account with channels.<channel>.accounts.<accountId>.joinIntro. Resolution order is the account value, then the channel value, then the default of true. There is no per-room switch, because a room is only configurable after the bot has already joined it. Only Discord, LINE, Matrix, Slack, and Telegram accept this option; other channels reject it rather than accepting a setting they never read.

What it reads. Core requests up to 100 recent messages plus room metadata, then truncates the whole snapshot to 12,000 characters, dropping the oldest messages first. What each platform can supply differs:

Channel Room metadata Prior messages
Discord Channel name, topic Up to 100, only with Read Message History
LINE Group name; none for multi-person rooms None - the Messaging API has no history reader
Matrix Room name, topic Up to 100 readable room messages
Slack Channel name, purpose, topic Up to 100 via conversation history
Telegram Group title, description, pinned message None - the Bot API cannot read pre-join history

When history is unavailable or unreadable, the introduction is still posted from room metadata alone and says what it can see rather than inventing activity.

Where it posts. LINE, Matrix, Slack, and Telegram introduce in the room that was joined. Discord joins a server rather than a channel, so it uses the system channel when it can both view and send there, otherwise the first text channel that qualifies; if no channel qualifies, it records a skip instead of posting.

How often. Once per room. A durable claim is recorded per channel, account, and room with a 90-day lifetime, so reconnects and gateway restarts do not repeat an introduction. Discord additionally ignores server-available events older than five minutes, so restarting never mass-introduces into servers the bot already belonged to. Matrix ignores startup room snapshots and membership updates that leave the bot joined, such as display-name changes. An unaccepted Matrix invite does not trigger an introduction. A re-invite after the claim expires introduces again.

Safety. Room titles, topics, pinned text, and message history are third-party content, so they are wrapped as untrusted external content and the introduction turn runs with no tools available at all. Instructions embedded in a room cannot reach a tool. The turn is bounded to 60 seconds, never runs in direct messages, and never bypasses channel access policy - a room the bot is not allowed to act in gets no introduction. Mention requirements do not apply, since a join event carries no message to mention the bot in.

Delivery notes

  • Telegram replies that contain markdown image syntax, such as ![alt](url), are converted into media replies on the final outbound path when possible.
  • Slack multi-person DMs route as group chats, so group policy, mention behavior, and group-session rules apply to MPIM conversations.
  • WhatsApp setup is install-on-demand: onboarding can show the setup flow before the plugin package is installed, and the Gateway loads the external ClawHub/npm plugin only when the channel is actually active.
  • Channels that accept bot-authored inbound messages can use shared bot loop protection to prevent bot pairs from replying to each other indefinitely.
  • Supported always-on rooms can use ambient room events so unmentioned room chatter becomes quiet context unless the agent sends with the message tool.

Notes

  • Channels can run simultaneously; configure multiple and OpenClaw will route per chat.
  • Fastest setup is usually Telegram (simple bot token, no plugin install). WhatsApp requires QR pairing and stores more state on disk.
  • Group behavior varies by channel; see Groups.
  • DM pairing and allowlists are enforced for safety; see Security.
  • Troubleshooting: Channel troubleshooting.
  • Model providers are documented separately; see Model Providers.