Code Kit v5.0 released for CC's new Agent Teams feature.
Claude FastClaude Fast
Development

Claude Code Channels: Control Your Dev Sessions from Telegram and Discord

Claude Code Channels lets you message your coding sessions directly from Telegram or Discord. Complete setup guide for both platforms with practical use cases.

Stop configuring. Start shipping.Everything you're reading about and more..
Agentic Orchestration Kit for Claude Code.

Problem: You're on the train, your laptop is at home running a 40-minute build, and you realize the test suite needs a config flag you forgot to set. Your options? Wait until you get home, or SSH into your machine from your phone and fumble through a terminal on a 6-inch screen.

Or maybe you're not a developer at all. You run a business and you've set up Claude Code as a general-purpose assistant: managing your calendar, drafting marketing emails, triaging tasks, updating spreadsheets, pulling reports. Right now, every interaction requires sitting at the terminal. You can't message your assistant from your phone between meetings the way you'd text an actual EA.

Quick Win: Connect your Claude Code session to Telegram, then message it from your phone like you'd text a colleague:

claude --channels plugin:telegram@claude-plugins-official

Send "add the --coverage flag to the test script in package.json" from Telegram. Claude reads the message, makes the change, and replies in your chat. Your session keeps running locally with full access to your filesystem, MCP servers, and project configuration.

What Are Claude Code Channels?

Claude Code Channels are a plugin-based feature that lets you send messages from Telegram or Discord directly into a running Claude Code session on your local machine. Your session processes requests with full filesystem, MCP, and git access, then replies through the same messaging app. Announced March 20, 2026 as a research preview, Channels ship with Telegram and Discord support first, with a plugin architecture that means more platforms can follow.

The concept is straightforward: an MCP server connects your Claude Code session to a messaging platform. When you send a message to your bot on Telegram or Discord, the MCP server forwards it to Claude. Claude processes the request using your local environment (files, tools, git, everything), then replies back through the same channel.

This is not a cloud-hosted coding environment. Your session stays on your machine. The messaging app is just a window into it, similar to how Remote Control uses claude.ai and the mobile app as a window into your local session. Different interface, same principle.

The announcement on X picked up significant traction, with developers noting that this pushes dev workflows toward async and mobile-first. The most common community request already: iMessage support.

Channels vs Remote Control vs Web Sessions

If you've been following Claude Code's evolution, you now have three ways to interact with sessions remotely. They solve different problems.

AspectChannelsRemote ControlWeb Sessions
InterfaceTelegram, Discord (messaging apps)claude.ai/code, iOS app, Android appclaude.ai/code browser
Session locationYour machine (local)Your machine (local)Anthropic cloud
SetupInstall plugin, create bot, pairclaude remote-control (one command)Open claude.ai/code
Best forAsync messages, mobile-first, team channelsContinuing terminal sessions from phoneQuick tasks without local setup
Local toolsFull access (filesystem, MCP, git)Full access (filesystem, MCP, git)Cloud sandbox only
HackabilityHigh (plugin architecture, build your own)Low (fixed interface)None
Notification styleNative app notifications (Telegram/Discord)Must open claude.ai or appMust open claude.ai
Team collaborationDiscord guild channels for shared accessSingle-user onlySingle-user only

When to use Channels: You want native mobile notifications, async workflows where you fire off requests and check back later, or team-based interaction through Discord guild channels. You also want Channels when you prefer a hackable, extensible system you can customize.

When to use Remote Control: You want the full claude.ai interface with rich formatting, file previews, and a familiar chat UI. It requires less setup (one command vs bot creation) and works immediately with the Claude mobile app.

As Thariq from the Claude Code team noted in the announcement thread: "We want to give you a lot of different options in how you talk to Claude remotely. Channels is more focused on devs who want something hackable."

How Channels Work Under the Hood

The architecture follows the MCP pattern that Claude Code already uses for tool extensions. Here's the flow:

  1. You install a channel plugin (Telegram or Discord) that runs as an MCP server
  2. You launch Claude Code with the --channels flag, which activates the plugin
  3. The MCP server connects to the messaging platform (polling for Telegram, WebSocket for Discord)
  4. When a message arrives, the server wraps it as a <channel> event and pushes it into your Claude Code session
  5. Claude processes the request using your full local environment
  6. Claude replies through tools exposed by the MCP server (reply, react, edit_message)

The security model has two layers. First, every channel plugin maintains a sender allowlist. Only user IDs you've explicitly paired and approved can push messages. Everyone else is silently dropped. Second, the --channels flag controls which servers are active per session. Being configured in .mcp.json is not enough to push messages; a server must also be named in --channels.

On Team and Enterprise plans, organization admins control channel availability through a channelsEnabled managed setting. It's disabled by default and must be explicitly enabled.

One important detail: if Claude hits a permission prompt while you're away from the terminal, the session pauses until you approve locally. For fully unattended operation, the --dangerously-skip-permissions flag bypasses prompts, but only use this in environments you trust.

Keep in mind that Claude's replies flow through the messaging platform's servers. If you're working with proprietary code or sensitive credentials, be deliberate about what you ask Claude to output through a channel. For sensitive work, the fakechat localhost option (covered below) keeps everything on your machine.

Setting Up the Telegram Channel

The Telegram setup takes about 5 minutes. You need Bun installed (the MCP server runs on it) and a Claude Code session authenticated with a claude.ai account (not an API key).

Step 1: Create a Telegram Bot

Open @BotFather on Telegram and send /newbot. BotFather asks for two things:

  • Display name: Anything you want, spaces are fine (e.g., "My Dev Assistant")
  • Username: A unique handle ending in bot (e.g., my_dev_assistant_bot)

BotFather replies with a token like 123456789:AAHfiqksKZ8.... Copy the entire thing including the leading number and colon.

Step 2: Install the Plugin

Start a Claude Code session and run:

/plugin install telegram@claude-plugins-official

Step 3: Configure the Token

/telegram:configure 123456789:AAHfiqksKZ8...

This writes TELEGRAM_BOT_TOKEN=... to .claude/channels/telegram/.env in your project. You can also set the variable in your shell environment before launching Claude Code (shell takes precedence).

Step 4: Relaunch with Channels Enabled

Exit your session and restart with the channel flag:

claude --channels plugin:telegram@claude-plugins-official

Step 5: Pair Your Account

DM your bot on Telegram. It replies with a 6-character pairing code. Back in Claude Code:

/telegram:access pair <code>

Step 6: Lock Down Access

Switch to allowlist mode so only your account can interact with the bot:

/telegram:access policy allowlist

That's it. Your next message to the bot reaches Claude directly.

Telegram-Specific Features

  • Photos: Inbound photos are downloaded automatically to ~/.claude/channels/telegram/inbox/. The assistant can read them directly. Send as "File" (long-press in Telegram) if you need the uncompressed original
  • File attachments: The reply tool supports sending files back. Images render inline; other types send as documents. Max 50MB per file
  • Typing indicator: Telegram shows "botname is typing..." while Claude works on a response. This is surprisingly useful for knowing whether Claude is still processing or has stalled on a permission prompt
  • No message history: The Telegram Bot API doesn't expose message history or search. The bot only sees messages as they arrive in real-time. If the session was down when you sent a message, it's gone

Setting Up the Discord Channel

Discord requires a few more steps because you need to create an application in the Developer Portal and invite the bot to a server. Budget about 10 minutes.

Step 1: Create a Discord Application

Go to the Discord Developer Portal and click New Application. Name it whatever you want.

Step 2: Create the Bot and Get a Token

Navigate to Bot in the sidebar. Give your bot a username. Scroll up to Token and press Reset Token. Copy the token (it's only shown once).

Step 3: Enable Message Content Intent

Still in the Bot settings, scroll to Privileged Gateway Intents and enable Message Content Intent. Without this, the bot receives messages with empty content.

Step 4: Invite the Bot to Your Server

Navigate to OAuth2 then 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

Copy the generated URL, open it, and add the bot to your server.

Step 5: Install and Configure

In Claude Code:

/plugin install discord@claude-plugins-official
/discord:configure <your-bot-token>

Step 6: Relaunch and Pair

claude --channels plugin:discord@claude-plugins-official

DM your bot on Discord. It replies with a pairing code. In Claude Code:

/discord:access pair <code>
/discord:access policy allowlist

Discord-Specific Features

  • Message history: Unlike Telegram, Discord's fetch_messages tool can pull recent history from a channel (up to 100 messages per call, oldest-first). This is the key differentiator. If your session restarts, Claude can catch up on what it missed
  • Attachment handling: Attachments aren't auto-downloaded. The assistant sees metadata (name, type, size) and calls download_attachment when it needs the actual file
  • Guild channels: Discord supports server/guild channels, not just DMs. This opens up team collaboration where multiple people interact with Claude through a shared channel
  • Custom emoji reactions: The react tool supports both Unicode emoji and custom server emoji in <:name:id> format
  • Threading: The reply tool supports reply_to for native Discord threading, which keeps conversations organized when multiple people are interacting in the same channel

Practical Use Cases

Monitor Long-Running Tasks from Your Phone

Start a complex build, test suite, or multi-agent workflow at your desk. Walk away. When Claude finishes or hits an issue, you see the notification on your phone through Telegram or Discord. Send follow-up instructions without opening a laptop.

Quick Fixes on the Go

You're reviewing a PR on your phone and spot a typo in a config file. Instead of noting it down for later, message your bot: "Change the Redis port in docker-compose.yml from 6380 to 6379 and commit it." Claude makes the change, commits, and confirms.

Team Collaboration Through Discord

Set up a Discord guild channel where your team can interact with a shared Claude Code session. Useful for pair-debugging, where one person describes the issue and Claude investigates with full access to the codebase. Everyone in the channel sees the conversation.

Async Development Workflows

The combination of Channels and scheduled tasks creates a powerful async pattern. Schedule Claude to run your test suite every hour, report results through Telegram, and wait for your instructions if something fails. You check in when it's convenient.

Your AI Executive Assistant, on Telegram

Not every Claude Code setup is about writing code. If you've configured Claude as a productivity assistant with MCP connections to your calendar, email, CRM, or project management tools, Channels turns it into something closer to a real EA. Message "what's my priority list for today?" from Telegram while you're grabbing coffee. Ask it to draft a follow-up email to a client between meetings. Tell it to reschedule your afternoon and reprioritize based on that urgent Slack thread. The interaction model stops being "sit at terminal, type command" and becomes "text your assistant whenever you need something."

CI/CD Notifications and Reactions

Forward CI results into your session through a channel. When a build fails, Claude can inspect the logs, identify the issue, and either fix it automatically or message you with a diagnosis. This goes beyond passive notifications because Claude has your full project context.

Building Your Own Channel

The plugin architecture isn't limited to Telegram and Discord. Anthropic provides a Channels reference for building custom channels. Any MCP server that implements the channel protocol can push events into Claude Code.

During the research preview, --channels only accepts plugins from an Anthropic-maintained allowlist. To test a channel you're building, use the --dangerously-load-development-channels flag. This lets you iterate on custom integrations without waiting for official approval.

The fakechat plugin ships as a development demo. It runs a chat UI on localhost with no external dependencies, so you can test the full channel flow before wiring up a real platform:

/plugin install fakechat@claude-plugins-official
claude --channels plugin:fakechat@claude-plugins-official

Open http://localhost:8787 and start chatting. Messages flow into your Claude Code session, and replies appear in the browser.

Requirements and Limitations

Requirements

  • Claude Code v2.1.80 or later
  • Bun runtime installed (bun.sh)
  • claude.ai authentication (Pro or Max plan). Console and API key authentication is not supported
  • Team/Enterprise plans: admin must explicitly enable channels in managed settings

Current Limitations

This is a research preview. Expect rough edges:

  • Session must stay running: Close the terminal or stop the claude process and the channel goes offline. Messages sent while the session is down are lost (Telegram) or queued until the bot comes back online (Discord, via fetch_messages)
  • Permission prompts block remotely: If Claude needs permission approval, it pauses until you approve at the terminal. The --dangerously-skip-permissions flag works but carries obvious risks
  • Allowlisted plugins only: During the preview, only plugins from claude-plugins-official are accepted by --channels. Custom channels require the development flag
  • No persistent background mode: You need to keep a terminal session open. Combining with tmux, screen, or a background process is the current workaround
  • Platform-specific gaps: Telegram has no message history API. Discord requires more setup steps. Each platform's bot API has its own constraints

Anthropic has described this as a feature "we'll be expanding more on." The plugin architecture suggests future platforms (Slack, WhatsApp, iMessage have all been requested) and the channel reference documentation signals that community-built channels are part of the plan.

Frequently Asked Questions

What is Claude Code Channels?

Channels is a plugin-based feature that connects Claude Code sessions to messaging apps like Telegram and Discord. You send messages from the app, Claude processes them using your local dev environment, and replies in the same chat. Your code and tools never leave your machine.

Is Claude Code Channels free?

You need a claude.ai Pro or Max subscription. API key authentication is not supported. The Telegram and Discord plugins themselves are free and open source.

What's the difference between Channels and Remote Control?

Remote Control gives you the full claude.ai web interface as a window into your local session. Channels uses messaging apps (Telegram, Discord) as the interface instead. Both keep your session running locally. Remote Control is one command to set up; Channels requires creating a bot but gives you native notifications and more hackability.

Can I use Claude Code from my phone?

Yes, through three different methods. Remote Control lets you use the Claude mobile app. Channels lets you use Telegram or Discord. Web sessions at claude.ai/code run entirely in the cloud. All three work from any device with a browser or the relevant app.

Which messaging apps work with Claude Code Channels?

Telegram and Discord are the two officially supported platforms as of March 2026. The plugin architecture is designed for expansion, and the community has already requested Slack, WhatsApp, and iMessage. You can also build your own channel using the Channels reference.

Getting Started

If you're already comfortable with MCP servers and Claude Code plugins, the setup is familiar territory. Pick the platform you use most:

  1. Telegram if you want the fastest setup (5 minutes, no server invite needed)
  2. Discord if you want message history, guild channels, or team collaboration
  3. Fakechat if you want to test the flow locally before committing to a platform

Start with DM-only access and the allowlist policy. Once you're comfortable, explore guild channels on Discord or group chats on Telegram for broader use cases.

Channels represent a shift in how developers interact with their coding environment. Instead of sitting at a terminal, you message it. Instead of waiting for a build to finish, you get notified. Instead of context-switching between your phone and your workstation, you work from wherever you are.

The "code from your phone" promise has been floating around for years. With Channels, Remote Control, and scheduled tasks, Claude Code is making it real, one interface at a time.

If you want a pre-configured Claude Code setup with skills, agents, and hooks ready from day one, the ClaudeFast Code Kit ships a production-ready development framework that pairs well with remote workflows like Channels.

Last updated on