AuthonAuthon Blog
tutorial4 min read

Claude Code Channels: Control Your AI Coding Agent from Telegram

Learn how to set up Claude Code Channels to send messages and receive responses from your running Claude Code session via Telegram.

AW
Alan West
Authon Team
Claude Code Channels: Control Your AI Coding Agent from Telegram

Claude Code just shipped a powerful new feature called Channels — a way to push messages into a running Claude Code session from external platforms like Telegram and Discord.

!Claude Code Channels

Imagine this: you start a long-running coding task, step away from your desk, and then send instructions to Claude from your phone via Telegram. Claude reads your message, does the work, and replies right back in Telegram. That's Channels.

What Are Claude Code Channels?

A Channel is an MCP (Model Context Protocol) server that pushes events into your running Claude Code session. It's two-way: Claude reads the event and replies back through the same channel.

Key features:

  • Telegram & Discord support out of the box
  • Bidirectional communication — send messages AND receive replies
  • Background-friendly — works while you're away from the terminal
  • Secure — sender allowlist ensures only you can push messages

Channels are currently in research preview and require Claude Code v2.1.80+.

Prerequisites

Before setting up, make sure you have:

  • Claude Code v2.1.80 or later installed
  • Bun runtime installed (bun.sh)
  • claude.ai login (Console/API key auth is not supported)
  • bash
    # Check your Claude Code version
    claude --version
    
    # Install Bun if needed
    curl -fsSL https://bun.sh/install | bash
    
    # Verify Bun
    bun --version

    Step 1: Create a Telegram Bot

    Open Telegram and find @BotFather.

  • Send \/newbot\
  • Choose a display name (e.g., "My Claude Bridge")
  • Choose a username ending in \bot\ (e.g., \my_claude_bridge_bot\)
  • Copy the token BotFather gives you — you'll need it next
  • Step 2: Install the Telegram Plugin

    In your Claude Code session, run:

    plaintext
    /plugin install telegram@claude-plugins-official

    This installs the official Telegram channel plugin from the Anthropic-maintained marketplace.

    Step 3: Configure Your Bot Token

    Run the configure command with your BotFather token:

    plaintext
    /telegram:configure <your-bot-token>

    This saves the token to \.claude/channels/telegram/.env\ in your project.

    Alternative: You can also set the \TELEGRAM_BOT_TOKEN\ environment variable before launching Claude Code.

    Step 4: Launch with Channels Enabled

    Exit Claude Code and restart with the \--channels\ flag:

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

    This starts the Telegram plugin, which begins polling for messages from your bot.

    Tip: You can enable multiple channels at once by space-separating them.

    Step 5: Pair Your Telegram Account

  • Open Telegram and send any message to your bot
  • The bot replies with a pairing code
  • Back in Claude Code, run:
  • plaintext
    /telegram:access pair <code>
  • Lock down access so only your account can send messages:
  • plaintext
    /telegram:access policy allowlist

    That's it! You're connected.

    How It Works in Practice

    Once paired, here's the flow:

  • You send a message in Telegram → "Hey, what's in my working directory?"
  • The message arrives in your Claude Code terminal as a channel event
  • Claude processes it — reads files, runs commands, writes code
  • Claude replies back through Telegram
  • The terminal shows the inbound message and the tool call, but the actual reply text appears in Telegram.

    Security Model

    Channels take security seriously:

    • Sender allowlist — only paired IDs can push messages
    • Per-session opt-in — channels only activate with \--channels\ flag
    • Enterprise controls — Team/Enterprise admins can enable/disable via managed settings

    Being in \.mcp.json\ alone isn't enough — a server must be explicitly named in \--channels\ to receive messages.

    Permission Handling

    If Claude hits a permission prompt while you're away, the session pauses until you approve locally. For fully unattended use, you can use \--dangerously-skip-permissions\, but only in environments you trust.

    Quick Test with Fakechat

    Want to try the channel concept before setting up Telegram? Use the built-in fakechat demo:

    bash
    # Install
    /plugin install fakechat@claude-plugins-official
    
    # Run
    claude --channels plugin:fakechat@claude-plugins-official
    
    # Open http://localhost:8787 and start chatting

    Enterprise & Team Setup

    | Plan | Default |
    |------|---------|
    | Pro / Max (no org) | Available, opt-in per session |
    | Team / Enterprise | Disabled until admin enables |

    Admins can enable from claude.ai → Admin settings → Claude Code → Channels.

    What's Next?

    • Build custom channels for Slack, webhooks, or any system using the Channels reference
    • Remote Control — drive a local session from your phone
    • Scheduled Tasks — poll on a timer instead of reacting to pushed events

    Channels turn Claude Code from a local terminal tool into something you can interact with from anywhere. Set it up once, and you've got an AI coding agent in your pocket.

    Claude Code Channels: Control Your AI Coding Agent from Telegram | Authon Blog