How to Set Up Claude Code Channels
Push messages, alerts, and webhooks into your Claude Code session from Telegram, Discord, or a local chat UI. Two-way communication while you're away from the terminal.
A channel is an MCP server that pushes events into your running Claude Code session. Channels can be two-way: Claude reads the event and replies back through the same channel, like a chat bridge. Events only arrive while the session is open, so for an always-on setup, run Claude in a background process or persistent terminal.
Before you start
claude --version. Update if needed.bun --version. If missing, install Bun first.channelsEnabled to true in managed settings.Fakechat is an officially supported demo channel that runs a chat UI on localhost. No authentication, no external services. The fastest way to test channels.
Install the plugin
In Claude Code, run:
/plugin install fakechat@claude-plugins-official
If the plugin is not found, run /plugin marketplace add anthropics/claude-plugins-official first.
Restart with channels enabled
Exit Claude Code, then restart with the channels flag:
claude --channels plugin:fakechat@claude-plugins-official
Push a message
Open http://localhost:8787 in your browser and type a message. It arrives in your Claude session, and Claude's reply appears back in the browser UI.
Create a Telegram bot
Open BotFather in Telegram and send /newbot. Follow the prompts to give it a display name and username. Copy the access token BotFather provides.
Install the plugin
In Claude Code, run:
/plugin install telegram@claude-plugins-official
Configure your token
/telegram:configure <your_token_here>
Alternatively, set TELEGRAM_BOT_TOKEN in your shell environment.
Restart with channels enabled
Exit and restart Claude Code:
claude --channels plugin:telegram@claude-plugins-official
Pair your account
Send any message to your bot in Telegram. The bot replies with a pairing code. Back in Claude Code, run:
/telegram:access pair <code>
Then lock it down so only your account can send messages:
/telegram:access policy allowlist
Create a Discord bot
Go to the Discord Developer Portal, click New Application, and name it. Under the Bot section, create a username, click Reset Token, and copy the new token.
Enable Message Content Intent
In your bot's settings, scroll to Privileged Gateway Intents and enable Message Content Intent.
Invite the bot to your server
Go to OAuth2 > URL Generator. Select the bot scope and enable these permissions: View Channels, Send Messages, Send Messages in Threads, Read Message History, Attach Files, Add Reactions. Open the generated URL to add the bot to your server.
Install the plugin
In Claude Code, run:
/plugin install discord@claude-plugins-official
Configure your token
/discord:configure <your_token_here>
Restart with channels enabled
Exit and restart:
claude --channels plugin:discord@claude-plugins-official
Pair your account
Send a DM to your bot on Discord. It replies with a pairing code. In Claude Code, run:
/discord:access pair <code>
Lock down access:
/discord:access policy allowlist
Sender allowlists
Every approved channel plugin maintains a strict sender allowlist. Only IDs you have explicitly paired and added can push messages to your session. All other messages are silently dropped.
The --channels flag is required
Being listed in .mcp.json is not enough. A server must also be explicitly named in the --channels startup flag for that specific session.
Custom channels (development)
During the research preview, the --channels flag only accepts plugins from an Anthropic-maintained allowlist. If you're building your own channel, start Claude Code with the --dangerously-load-development-channels flag.
Sources
FAQ
--channels flag separated by commas, e.g. claude --channels plugin:telegram@claude-plugins-official,plugin:discord@claude-plugins-official