Until last week, using Claude Code required you to be at your computer. You opened a terminal, started a session, typed prompts, watched it work. The interaction model was synchronous: you wait, it executes, you review, you continue.
Claude Code Channels, announced March 20 as a research preview, breaks that model. Now you can fire off a task from your phone, let Claude Code run it on your machine while you’re in a meeting, and get the result delivered back to your Telegram or Discord. The terminal session can keep running without you watching it.
This isn’t a gimmick. It changes the fundamental rhythm of how you work with an AI agent.
What Channels Actually Does#
The feature is architecturally straightforward: Claude Code acts as a bot in your messaging app of choice. You send it a message, it executes the task in your local development environment, and it replies in the same thread.
Under the hood, it’s built on MCP. The channel plugin runs locally on your machine, polling the messaging platform’s API. There’s no inbound port opened on your machine, no webhook exposed to the public internet, no reverse proxy required. The security model is clean: your machine reaches out; nothing reaches in.
Setup for Telegram:
- Create a bot via Telegram’s BotFather
- Run
claude --channelsto start Claude Code with channel support - Run
/telegram:configurein Claude Code to link your bot token - Pair your Telegram account with a security code
The pairing step locks the bot to your specific Telegram user ID. Messages from anyone else — even if they find the bot — are silently dropped. This matters on shared servers or if you accidentally give a colleague the bot username.
Discord setup follows the same pattern through the Discord Developer Portal. Both integrations support sending images back through the chat, which turns out to be genuinely useful for debugging visual output.
The Async Workflow Shift#
The headline use case is “message your agent while away from your desk.” That’s real and useful. But the deeper change is psychological.
Synchronous AI coding sessions have a specific pressure to them. You watch the agent work. When it pauses for approval, you approve. When it finishes a step, you assess and continue. It demands your attention.
Async changes the relationship. You delegate, then context-switch. The agent works while you do something else. You check results when you’re ready, not when the agent is ready. This is closer to how you’d work with a human colleague on an async team than how you’d pair-program with someone sitting next to you.
One developer described their first Channels session in a MacStories write-up: they kicked off building and deploying an iOS project to their iPhone over wireless, then made coffee. The build ran, the agent fixed two compile errors unprompted, and by the time they sat back down, the app was running on the device. “It felt like I had a junior developer working while I was on a break.”
That’s not hyperbole — that’s a different mental model of what your AI agent is for.
Permission Handling at a Distance#
The obvious question: what happens when Claude Code needs approval to run something while you’re not watching?
By default, Channels will pause and message you for approval, the same as the terminal does. Claude running a rm -rf on a directory it shouldn’t touch will stop and ask — you’ll get a Telegram message, tap approve or deny, and it continues.
Channels also has a permission relay capability for MCP servers that declare it: approval prompts can be forwarded to your phone as interactive messages. If Claude needs to run a destructive operation and you’re halfway through a meal, you can approve or reject it from your phone and it keeps working.
This is more useful than it sounds. The alternative — auto-approving everything — is how you end up with agents that make irreversible mistakes. The permission relay lets you maintain oversight without being physically present.
What You Can Send Besides Text#
Channels isn’t just a text bridge. You can send images to Claude Code via Telegram, which opens up some genuinely practical workflows:
- Screenshot a UI bug on your iPhone, send it to the agent, ask it to fix the layout
- Photograph a whiteboard diagram and ask the agent to scaffold the data model
- Send a screenshot of an error dialog from a QA device and ask for the fix
Voice messaging isn’t supported yet, which is a notable gap — Telegram’s voice note feature is heavily used, and it would be a natural way to dictate tasks while commuting. Based on the official documentation, this is on the roadmap.
Fakechat for Local Testing#
Before connecting a real messaging account, Channels ships with a mode called Fakechat — an officially supported demo channel that runs a chat UI on localhost. No authentication, no external service, nothing to configure. You install it, enable it, and get a browser tab that acts as a message interface to your Claude Code session.
This is smart product design. It lets you test Channels behavior, experiment with workflows, and verify your setup without creating a Telegram bot or joining a Discord server. Once you understand the interaction model, hooking up a real messaging account is straightforward.
Current Limitations Worth Knowing#
Channels is a research preview, and the limitations are real:
Requires Claude Code 2.1.80 or later and the Bun runtime. If you’re not on Bun, you need to install it first.
Only works with claude.ai accounts, not API keys. If your workflow uses a direct API key without a claude.ai account, Channels won’t work for you. This is likely a temporary restriction given the account linking required for the pairing system.
No persistent background mode. A terminal session has to stay open. You can’t fully close your laptop and expect the agent to keep running. This limits the “fire and forget” use case — it’s more “fire and go make coffee” than “fire and come back tomorrow.”
Platform gaps. Telegram has no message history API, so if you switch devices you lose thread context. Discord requires more setup steps than Telegram. There’s no Slack support yet, which will frustrate enterprise developers — though the plugin architecture suggests it’s coming.
The Bigger Picture#
Claude Code Channels isn’t an isolated feature. It’s part of a clear direction Anthropic is building toward: agents that are available where you are, not just where your computer is.
The async interaction model — delegate, context-switch, receive results — is what makes AI agents genuinely additive to a developer’s workflow rather than just a faster version of what they were already doing. When you have to be present for every step, the agent is a fancy autocomplete. When you can delegate and return, it’s closer to having a developer working in parallel.
The MCP foundation means the channel architecture is extensible. Slack, WhatsApp, and iMessage have already been requested by the community, and the documentation explicitly signals that community-built channels are part of the plan. The Fakechat implementation shows they’ve thought carefully about how developers test and adopt new channel integrations.
Whether Telegram and Discord become permanent fixtures of how developers interact with AI agents, or just the first attempt at a model that evolves into something different, isn’t clear yet. What is clear: the synchronous terminal session is no longer the only way to work with Claude Code, and that’s the right direction.
If you’re a Claude Code user, the setup takes about ten minutes. The experience of getting a Telegram message back from your own development environment after sending a task is strange the first time. By the third time, it feels obvious.
Sources: Anthropic — Claude Code Channels docs, VentureBeat announcement, MacStories hands-on, DEV Community technical breakdown, Anthropic techbuddies.io coverage