Guide

How to Connect Claude Code to Telegram

Connect Claude Code to Telegram with the official Channels plugin, including bot pairing, remote permission prompts, session limits, and safer setup choices.

Claude Code has an official Telegram integration called Channels. It is a good fit when you want to send a task to a session you already run, receive the answer in Telegram, and handle ordinary tool approvals without opening a laptop.

The important constraint is simple: Telegram does not run Claude Code. A Claude Code process on your computer or server still does the work, and that process must remain online.

Quick answer

Create a private bot with Telegram’s BotFather, install the official Telegram plugin in Claude Code, configure its token, start Claude with the channel enabled, and pair your Telegram account. Keep the bot allowlisted rather than public.

The integration is currently a research preview. Check Anthropic’s Channels documentation before automating it on a sensitive machine because commands and capabilities can change.

What you need

  • A current Claude Code installation authenticated with a supported Anthropic account.
  • Bun installed on the host; the official channel plugin runs on Bun.
  • A Telegram account and a bot token from @BotFather.
  • A terminal that can remain open, or a persistent session such as tmux.

Treat the bot token like a password. Do not paste it into a repository, shell history shared with other users, or a screenshot.

1. Create a private Telegram bot

Open BotFather in Telegram, send /newbot, and follow its prompts. The bot username must end in bot. Copy the token somewhere temporary and private.

There is no reason to add the bot to a group for a personal coding session. Direct messages plus an allowlist are easier to reason about.

2. Install the official plugin

Inside Claude Code, install the Telegram plugin:

/plugin install telegram@claude-plugins-official

If the marketplace is not already registered, add it and retry:

/plugin marketplace add anthropics/claude-plugins-official
/plugin install telegram@claude-plugins-official
/reload-plugins

Use the official marketplace name rather than a similarly named third-party package.

3. Configure the bot token

Run the plugin command inside Claude Code:

/telegram:configure <BOT_TOKEN>

The plugin stores the token in its local channel configuration. If the token has appeared in logs or chat, revoke it through BotFather and configure a new one.

4. Start Claude Code with Telegram enabled

Exit the current session, then start it with the channel:

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

Run this inside the repository Claude should work on. For an always-on host, start it in a named tmux session so an SSH disconnect does not terminate the process:

tmux new -s claude-telegram
claude --channels plugin:telegram@claude-plugins-official

tmux preserves the process; it does not keep a sleeping laptop awake or restore a failed network connection.

5. Pair and allowlist your account

Send a message to the bot. It returns a pairing code. In the Claude Code terminal, approve that code and keep access restricted:

/telegram:access pair <PAIRING_CODE>
/telegram:access policy allowlist

Test with a read-only request such as asking Claude to summarize the current directory. Confirm that the message appears in the intended session before granting broader tool access.

How permission prompts work now

Older descriptions of Channels often say that every permission prompt requires a return to the terminal. That is no longer accurate. The current official Telegram plugin declares Claude Code’s permission-relay capability and can send supported tool requests to Telegram with Allow and Deny buttons.

That does not make unattended approvals risk-free. A small chat card can hide context that would be obvious in a terminal diff. Read the command and affected path, avoid broad “always allow” rules, and use a low-privilege account for an always-on session. Initial project trust, MCP consent, and plugin setup may still require local terminal interaction.

Limits that matter in practice

  • The host process must stay alive. Closing Claude Code stops the channel.
  • Telegram is an event stream, not session storage. The Bot API delivers new updates; it does not give the plugin a complete searchable history.
  • The reply lives in Telegram. The terminal may show the incoming event and delivery status rather than a transcript identical to the chat.
  • It is Claude-specific. The plugin does not expose Codex or other agents.
  • It is preview software. Recheck the official docs after upgrades and avoid relying on undocumented behavior.

Channels vs. Remote Control

Anthropic’s Remote Control is a separate option. It lets Claude on the web or the iOS/Android app drive a host-side session. Files and tools remain on the host, and the phone acts as a remote interface.

Choose Channels when Telegram is the interface you want or when external events should reach a session. Choose Remote Control when you want the first-party Claude interface and a closer view of the active session. Both still depend on the host-side process.

When another remote layer makes sense

The native plugin is usually the simplest answer for one Claude session. A different setup becomes relevant when the requirements change—for example, a full browser terminal, several coding agents, or an always-on VPS that is managed separately from a laptop.

Chatcode is one such option: it connects a server to a browser terminal and Telegram and can run Claude Code alongside Codex, Gemini, and OpenCode. That adds a third-party relay and server-management responsibility, so it is not an automatic upgrade. The practical setup and trade-offs are covered in Claude Code in Telegram with Chatcode.

Frequently asked questions

Does Claude Code have an official Telegram integration?

Yes. Claude Code Channels includes an official Telegram plugin. It connects an allowlisted Telegram bot to a Claude Code session that remains running on your computer or server.

Can I approve Claude Code permission prompts from Telegram?

Yes. The current official Telegram plugin relays supported tool permission requests as Allow and Deny buttons. Initial project trust, plugin consent, and some local setup still need the terminal.

What is the difference between Channels and Remote Control?

Channels lets Telegram or another service send events into a running Claude Code session. Remote Control exposes the session through Claude on the web or mobile. Both use a host-side Claude process, but the interface and trigger model differ.

Does the Telegram bot work while Claude Code is closed?

No. The channel server runs with the Claude Code session. Keep the process alive in a persistent terminal or on an always-on host if you need it to remain reachable.

Share this guide