# Example 07: Messaging **Capability:** Claude Code can send and receive messages via external channels. Native Telegram support arrived in v2.1.80. Other channels use MCP servers. **OpenClaw equivalent:** 15+ native channels (WhatsApp, Telegram, Discord, Slack, Signal, iMessage, IRC, Matrix, Teams, and more). --- ## Architecture Difference OpenClaw ships with all 15+ channels built in. Claude Code takes an MCP approach: each channel is a separate server you opt into. This means more setup per channel, but also more control over what data leaves your machine. As of v2.1.80, Telegram is the first native channel in Claude Code. More are expected to follow the same pattern. --- ## Option A: Telegram (Native, v2.1.80+) Start Claude Code with the Channels flag: ```bash claude --channels ``` Then in session: ``` Send a Telegram message to my personal chat that says: "Claude Code pipeline completed. Check research-output.md for results." ``` Requires the Telegram plugin configured in `.claude/settings.json`. The permission relay (v2.1.81) lets you approve tool calls from Telegram directly, without returning to the terminal. --- ## Option B: Slack (via MCP) Add to `.mcp.json`: ```json { "mcpServers": { "slack": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-slack"], "env": { "SLACK_BOT_TOKEN": "xoxb-your-token", "SLACK_TEAM_ID": "T0123456" } } } } ``` Then use the `/skills/send-slack-message` skill in this repo: ``` /send-slack-message channel=#general message="Pipeline finished successfully." ``` --- ## What Happens For Telegram: Claude Code calls the native Channels API to deliver the message. For Slack: Claude Code calls the Slack MCP server, which relays via the Slack API. Both confirm delivery in the terminal output. --- ## Honest Comparison If you need 15 channels working out of the box, OpenClaw wins today. Claude Code has Telegram natively and the rest via MCP. The gap is narrowing with each release. For most personal automation needs, Telegram is sufficient.