Claude Code Channels: Telegram and Discord Messaging
Integrate Claude Code with Telegram and Discord to receive AI coding updates, trigger tasks, and review diffs. Setup guide with webhook and bot config.
Release Date
Chat Platforms Supported
Discord Slash Commands
Async Notification Model
Key Takeaways
Development teams do not live inside terminals. Product managers review progress in Discord. Designers check status updates in Telegram. QA engineers monitor builds in chat. Yet AI coding tools have historically been terminal-only, creating a hard boundary between where Claude Code works and where teams actually communicate. The channels feature released on March 24, 2026 removes that boundary.
By configuring Claude Code with a Telegram bot token or a Discord webhook, you get bidirectional communication between your AI coder and your team's chat infrastructure. Claude Code pushes structured notifications when tasks complete, errors occur, or code reviews need attention. Discord slash commands let anyone on the team trigger tasks or inspect diffs without leaving the channel. For teams integrating AI deeply into their workflows, this is a meaningful shift — see our guide on AI and digital transformation for the broader context of how tools like Claude Code fit into modern development pipelines.
What Are Claude Code Channels
Claude Code channels is the collective name for the platform's third-party chat integrations. As of the March 24 release, two channels are supported: Telegram and Discord. Each channel acts as a notification and interaction endpoint — Claude Code can post to them, and (in Discord's case) receive commands from them. The feature is designed around an asynchronous model: Claude Code continues working in the background while your team communicates in their usual chat tools, with messages arriving at natural task boundaries rather than as a continuous stream.
The motivation is straightforward. Long-running Claude Code tasks — refactoring a module, writing a test suite, generating a feature branch — can take minutes or more. Watching a terminal for the result is inefficient. Channels let you dispatch the task, return to other work, and receive a clean notification when Claude Code needs your attention or has finished.
Bot-based push notifications to any Telegram chat or group. Supports Markdown formatting, code blocks, and configurable event filtering for completions, errors, and review requests.
Webhook-based notifications plus three slash commands for triggering tasks, checking status, and viewing diffs. Role permissions control who can invoke each command.
Task completion, error alerts, human review requests, code diff summaries, and test result reports. Each event type can be enabled or disabled independently per channel.
The channels feature builds on the same philosophy behind the Claude Dispatch co-work pattern — that AI coding assistance should fit into how teams actually communicate, not force teams to reshape their communication around the tool. Channels extend this principle from phone-to-desktop to chat-to-codebase.
Telegram Bot Setup and Configuration
Setting up the Telegram integration takes under five minutes. You need a Telegram bot token from BotFather and the chat ID of the conversation or group where Claude Code should post. Both are free and require no server infrastructure for basic notification use.
Create a bot via BotFather in Telegram
/newbot — follow prompts, copy the tokenSet environment variables
export CLAUDE_TELEGRAM_BOT_TOKEN="your_token_here"
export CLAUDE_TELEGRAM_CHAT_ID="your_chat_id"Enable Telegram channel in Claude Code
claude channels enable telegramTest the connection
claude channels test telegramTo find your Telegram chat ID, start a conversation with your new bot and send it a message. Then fetch https://api.telegram.org/bot<TOKEN>/getUpdates in a browser. The response includes a chat.id field. For group chats, add the bot to the group first, then send a message in the group before fetching updates.
Claude Code supports event filtering so you can control exactly which events trigger Telegram messages. The default configuration sends notifications for task completion and error events. You can add review requests or disable completions if you only want to be notified when Claude Code cannot proceed autonomously.
Enable only error and review request events
claude channels config telegram --events error,reviewEnable all event types
claude channels config telegram --events allSecurity note: Never commit your Telegram bot token to version control. Use environment variables or a secrets manager. Anyone with your bot token can send messages as your bot and read messages it receives. Treat it with the same care as an API key.
Discord Bot and Slash Commands
The Discord integration goes beyond one-way notifications. By registering Claude Code as a Discord application with slash command support, team members can interact with Claude Code directly from any channel where the bot is present. This turns Discord into a lightweight interface for AI-assisted development without anyone needing terminal access.
Triggers a new Claude Code task from a text prompt entered directly in Discord. The task runs on the configured repository and posts a completion message when done.
Shows the current status of any running or recently completed Claude Code task, including elapsed time, current step, and file paths being modified.
Displays a formatted code diff from the most recent Claude Code edit, rendered in a Discord embed with added lines in green and removed lines in red.
Setting up the Discord integration requires creating an application in the Discord Developer Portal, adding a bot to your server, and configuring a webhook URL. The webhook handles outgoing notifications while the slash commands require a registered Discord application with the bot scope and applications.commands permission.
Set Discord environment variables
export CLAUDE_DISCORD_WEBHOOK_URL="https://discord.com/api/webhooks/..."
export CLAUDE_DISCORD_APP_ID="your_app_id"
export CLAUDE_DISCORD_BOT_TOKEN="your_bot_token"Enable Discord channel
claude channels enable discordRegister slash commands with Discord
claude channels discord register-commandsDiscord role permissions gate access to the slash commands. By default, all server members can use /claude-status and /claude-diff, while /claude-run is restricted to members with a role you designate during setup. This separation lets you give the whole team visibility into what Claude Code is doing while limiting task-triggering to developers who understand the codebase context.
Webhook Configuration and Environment Variables
For advanced setups where you need custom message routing, filtering, or transformation before messages reach Discord or Telegram, Claude Code supports a webhook intermediary. Instead of posting directly to the chat platform APIs, Claude Code posts a structured JSON payload to your webhook endpoint, which then applies business logic before forwarding the message.
Example task completion payload
{
"event": "task.completed",
"task_id": "task_abc123",
"prompt": "Add unit tests for auth module",
"files_changed": ["auth.test.ts"],
"duration_ms": 42310,
"diff_url": "https://..."
}A minimal webhook handler can be deployed as a serverless function in under 20 lines of code. The function receives the Claude Code payload, formats it for the target platform, and forwards it. This pattern also enables routing: critical errors go to a dedicated alerts channel, completed tasks go to a general development channel, and review requests ping specific team members via Discord mentions.
All sensitive values — bot tokens, webhook URLs, application IDs — should live in environment variables that Claude Code reads at runtime. The full list of supported variables is:
CLAUDE_TELEGRAM_BOT_TOKENTelegram bot token from BotFatherCLAUDE_TELEGRAM_CHAT_IDTarget chat or group ID for Telegram messagesCLAUDE_DISCORD_WEBHOOK_URLDiscord channel webhook URL for notificationsCLAUDE_DISCORD_APP_IDDiscord application ID for slash command registrationCLAUDE_DISCORD_BOT_TOKENDiscord bot token for slash command handlingCLAUDE_CHANNELS_WEBHOOK_URLCustom intermediary webhook for advanced routingFormatting Claude Code Outputs as Chat Messages
Raw Claude Code output — terminal streams, JSON responses, raw diffs — does not translate well to chat. The channels feature applies automatic formatting that converts Claude Code's structured output into readable chat messages appropriate for each platform. Understanding how this formatting works helps you design prompts that produce clean, actionable notifications.
Messages use Telegram's MarkdownV2 format. Task names are bold, file paths are monospace, and diffs are inside code blocks with a character limit to prevent overflow. Long diffs are truncated with a “view full diff” link.
Messages use Discord embeds with color-coded status bars: green for completed tasks, yellow for review requests, and red for errors. Fields show task name, duration, and files changed.
You can override the default templates using a .claude/channels.json file in your project root. This file specifies custom message templates for each event type and platform using a simple handlebars-style syntax. Template variables include {{task_name}}, {{files_changed}}, {{duration}}, and {{error_message}} among others.
Triggering Tasks and Reviewing Diffs from Chat
The most powerful aspect of the Discord integration is the ability to trigger Claude Code tasks from a chat message. Instead of opening a terminal, navigating to the project directory, and typing a prompt, a team member can type /claude-run Fix the login redirect bug directly in Discord and Claude Code begins work immediately.
This capability extends to non-developer team members in a meaningful way. A product manager can trigger a documentation update task. A QA engineer can ask Claude Code to regenerate a test fixture. A designer can request a CSS variable audit. The task then executes against the current state of the repository, and the result appears in the same channel where the request was made.
Workflow tip: Pair /claude-run with a dedicated #claude-tasks Discord channel so task requests and results are organized separately from general development discussion. The channel also serves as an audit log of what Claude Code was asked to do and when.
The /claude-diff command is particularly useful during code review. After Claude Code completes a task, any team member can invoke /claude-diff to see the changes rendered in a Discord embed. The diff shows added lines in green and removed lines in red within the Discord embed color scheme, and includes file paths and line numbers for context. For larger diffs, the embed includes a link to the full diff hosted at a configurable URL.
For teams also using Claude Code Auto Mode, the Discord channel integration creates a natural review checkpoint. You can configure Auto Mode to pause and post a review request to Discord whenever Claude Code makes a change above a certain complexity threshold, letting the team weigh in before the task continues autonomously.
Team Workflow Patterns and Access Control
The channels feature enables several team workflow patterns that were previously difficult to implement without custom tooling. Here are the most common configurations teams have adopted in the weeks since the March 24 release.
Configure Claude Code to post a Discord message with a diff summary whenever it completes a task on a feature branch. Reviewers see the changes in their existing workflow channel without needing to open a pull request or check the terminal. The notification includes a direct link to open the diff in VS Code or GitHub.
Route Claude Code error events to a Telegram group with the on-call team. When Claude Code encounters a permission error, a failing test suite it cannot fix, or a merge conflict requiring human judgment, the on-call engineer receives an immediate Telegram message with context and a suggested next step.
Give product managers the Discord role required to use /claude-run in a dedicated channel. Product can request documentation updates, copy changes, and minor UI text edits directly without filing tickets or waiting for developer availability. Engineers review and approve changes via /claude-diff before merging.
Inject Claude Code channel environment variables into GitHub Actions secrets. Configure Claude Code to run automated analysis on pull requests and post structured summaries to a Discord review channel. The CI job completes, Claude Code analyzes the diff, and a message appears in Discord before the first human reviewer opens the PR.
Security Considerations and Rate Limiting
Exposing Claude Code task triggering through Discord introduces security considerations that do not exist in a terminal-only workflow. A poorly configured Discord server could allow unauthorized users to trigger tasks against your codebase. Anthropic has implemented several safeguards, but you need to configure them deliberately.
Restrict /claude-run to a specific Discord role. Never allow the everyone role to trigger tasks. Review your Discord server member list periodically to ensure only intended users have the role.
Set a maximum task-per-hour limit using CLAUDE_DISCORD_RATE_LIMIT to prevent accidental or malicious flooding of Claude Code tasks from Discord. The default is 10 tasks per hour per user.
Enable allowlist mode to restrict which file paths and directories Claude Code can modify when triggered from Discord. Tasks cannot write outside the allowlisted scope, even if the prompt requests it.
For teams concerned about prompt injection through Discord messages — where an attacker could craft a message that tricks Claude Code into executing unintended operations — Anthropic recommends enabling allowlist mode for all Discord-triggered tasks. This limits the blast radius even if a malicious prompt bypasses Claude Code's built-in safeguards. Webhook signature verification is also supported to ensure that only genuine Claude Code payloads reach your webhook endpoint.
Limitations and Best Practices
The channels feature is powerful but has constraints worth understanding before building workflows around it. The March 24 release is the first public version, and several aspects are still being refined based on team feedback.
Claude Code outputs arrive as complete messages when a task finishes or reaches a defined checkpoint. You cannot see a live stream of Claude Code's work in Telegram or Discord the way you can in a terminal. For long-running tasks, configure intermediate checkpoint notifications using the --checkpoint-interval flag.
The /claude-run command needs Claude Code to be running and listening on the configured machine. If the machine is sleeping, turned off, or the Claude Code process has exited, slash commands will time out in Discord. Pair with an always-on environment or a deployment that keeps Claude Code running.
Telegram messages are limited to 4,096 characters and Discord embeds to 6,000 characters across all fields. Large diffs are automatically truncated. For complete diff access, configure a hosted diff URL or use /claude-diff with a --full flag that posts the complete diff as a file attachment rather than an embed.
The current release supports one Telegram chat ID and one Discord webhook URL per Claude Code instance. Multi-channel routing — sending errors to one channel and completions to another — requires the custom webhook intermediary approach described in the webhook configuration section.
Despite these limitations, the channels feature represents a meaningful step toward making AI coding tools genuinely collaborative. The combination of asynchronous notifications and Discord slash commands opens Claude Code to team members who previously had no interface to it. For agencies integrating AI- assisted development into client projects, see our guide on how Claude Dispatch enables mobile-to-desktop co-work for a complementary perspective on asynchronous AI task management.
Best practice: Start with notification-only mode (no slash commands) for the first week. Get comfortable with how Claude Code formats messages and what events are most useful for your team before enabling task triggering from Discord. This reduces the risk of accidental task execution during the configuration learning curve.
For organizations exploring how AI coding tools fit into their broader digital strategy, the channels feature connects Claude Code to the communication layer where decisions are made. Combined with the right access control and workflow design, it removes the terminal-only barrier that has historically limited AI coding adoption beyond individual developers. Learn more about how Digital Applied's AI and digital transformation services can help your team design and deploy AI-assisted development workflows at scale.
Related Articles
Continue exploring with these related guides
Integrate AI into Your Development Workflow
Claude Code channels are one piece of a broader AI-assisted development strategy. Digital Applied helps teams design and implement workflows that bring AI coding tools, chat integrations, and automation into cohesive pipelines that fit how your team actually works.