UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

138 lines (116 loc) 9.85 kB
--- summary: "Messaging platforms OpenClaw can connect to" read_when: - You want to choose a chat channel for OpenClaw - You need a quick overview of supported messaging platforms title: "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 <!-- BEGIN GENERATED: official channel catalog --> <!-- Generated by `pnpm channels:catalog:gen`. Edit manifests/seed for membership and routes; edit page frontmatter for public names and summaries. --> - [A2A](/channels/a2a) - Connect external agents to OpenClaw through the A2A 1.0 JSON-RPC protocol (bundled plugin). - [Buzz](/channels/buzz) - Connect OpenClaw agents to Buzz rooms (official plugin). - [ClickClack](/channels/clickclack) - ClickClack bot-token channel setup and target syntax (official plugin). - [Discord](/channels/discord) - Discord bot setup, config keys, components, voice, and troubleshooting (official plugin). - [Feishu](/channels/feishu) - Feishu bot overview, features, and configuration (official plugin). - [Google Chat](/channels/googlechat) - Google Chat app support status, capabilities, and configuration (official plugin). - [iMessage](/channels/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](/channels/irc) - IRC plugin setup, access controls, and troubleshooting (official plugin). - [LINE](/channels/line) - LINE Messaging API plugin setup, config, and usage (official plugin). - [Matrix](/channels/matrix) - Matrix support status, setup, and configuration examples (official plugin). - [Mattermost](/channels/mattermost) - Mattermost bot setup and OpenClaw config (official plugin). - [Microsoft Teams](/channels/msteams) - Microsoft Teams bot support status, capabilities, and configuration (official plugin). - [Nextcloud Talk](/channels/nextcloud-talk) - Nextcloud Talk support status, capabilities, and configuration (official plugin). - [Nostr](/channels/nostr) - Nostr DM channel via NIP-04 encrypted messages (official plugin). - [QQ bot](/channels/qqbot) - QQ Bot setup, config, and usage (official plugin). - [Raft](/channels/raft) - Raft External Agent support through the Raft CLI wake bridge (official plugin). - [Reef](/channels/reef) - Reef channel setup: guarded, end-to-end-encrypted messaging between OpenClaw agents of different people (bundled plugin). - [Signal](/channels/signal) - Signal support via signal-cli (native daemon or bbernhard container), setup paths, and number model (official plugin). - [Slack](/channels/slack) - Slack setup and runtime behavior (Socket Mode, HTTP Request URLs, and relay mode) (official plugin). - [SMS](/channels/sms) - Twilio SMS/MMS setup, access controls, webhooks, and delivery status (official plugin). - [Synology Chat](/channels/synology-chat) - Synology Chat webhook setup and OpenClaw config (official plugin). - [Telegram](/channels/telegram) - Telegram bot support status, capabilities, and configuration (bundled plugin). - [Tlon](/channels/tlon) - Tlon/Urbit support status, capabilities, and configuration (official plugin). - [Twitch](/channels/twitch) - Twitch chat bot: install, credentials, access control, token refresh (official plugin). - [WebChat](/web/webchat) - Native and Control UI WebChat usage over the Gateway WebSocket (included in core). - [WeChat](/channels/wechat) - WeChat channel setup through the external openclaw-weixin plugin (external plugin). - [WeCom](/channels/wecom) - Install the official WeCom plugin and find its versioned setup documentation (external plugin). - [WhatsApp](/channels/whatsapp) - WhatsApp channel support, access controls, delivery behavior, and operations (official plugin). - [Yuanbao](/channels/yuanbao) - Yuanbao bot overview, features, and configuration (external plugin). - [Zalo](/channels/zalo) - Zalo bot support status, capabilities, and configuration (official plugin). - [Zalo ClawBot](/channels/zaloclawbot) - Zalo ClawBot channel setup through the external openclaw-zaloclawbot plugin (external plugin). - [Zalo personal](/channels/zalouser) - Zalo personal account support via native zca-js (QR login), capabilities, and configuration (official plugin). <!-- END GENERATED: official channel catalog --> ### Related communication plugins - [Voice Call](/plugins/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](/channels/bot-loop-protection) to prevent bot pairs from replying to each other indefinitely. - Supported always-on rooms can use [ambient room events](/channels/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](/channels/groups). - DM pairing and allowlists are enforced for safety; see [Security](/gateway/security). - Troubleshooting: [Channel troubleshooting](/channels/troubleshooting). - Model providers are documented separately; see [Model Providers](/providers/models).