---
title: "How to Connect Claude Code to Telegram"
seoTitle: "How to Connect Claude Code to Telegram (2026)"
navTitle: "Claude Code + Telegram"
description: "Connect Claude Code to Telegram with the native Channels plugin (full setup), see where it falls short, and a sturdier always-on alternative with Chatcode."
slug: how-to-connect-claude-code-to-telegram
date: 2026-06-08
updated: 2026-06-11
author: Chatcode
category: guide
featured: true
order: 1
keywords:
  - claude code telegram
  - connect claude code to telegram
  - claude code channels
  - claude code telegram bot
  - control claude code from phone
faq:
  - q: "Does Claude Code have a native Telegram integration?"
    a: "Yes. As of v2.1.80 (research preview, launched March 2026), Claude Code has Channels — official plugins for Telegram, Discord, and iMessage that push messages into a running Claude Code session. You install the Telegram plugin, pair your bot, and chat with the agent. It requires claude.ai or Console API authentication and the Bun runtime."
  - q: "Can I approve Claude Code permission prompts from Telegram?"
    a: "Not by default. With Channels, if Claude hits a permission prompt while you're away, the session pauses until you approve it in the terminal. A channel can forward prompts only if it declares the permission-relay capability; otherwise the documented options are returning to the terminal or running with `--dangerously-skip-permissions`, which is risky."
  - q: "What's the difference between Claude Code Channels and Remote Control?"
    a: "Channels push chat messages and webhooks from Telegram/Discord/iMessage into a running local session. Remote Control lets you drive that local session from the Claude mobile app or claude.ai/code — more capable, but it uses Anthropic's own app rather than Telegram, and doesn't support Codex or Gemini."
  - q: "Do I have to keep my computer on for the Telegram channel to work?"
    a: "Yes. Channels only deliver while the Claude Code session is open, and there's no message queue — anything you send while it's closed is lost. You keep it alive in a persistent terminal (tmux) or run it on an always-on box. Tools like Chatcode sidestep this by running the agent on a server you own."
---

You want Claude Code reachable from your phone — fire off a task on the train, check a long build over coffee, answer its question without opening a laptop. Telegram is the obvious remote.

The good news: as of **March 2026**, Claude Code has an **official** way to do this — a feature called **Channels** — plus a separate **Remote Control** mode. This guide covers how to set up the native Telegram connection, the honest limits people are hitting, and a sturdier alternative when those limits bite.

## Option 1: Claude Code Channels (the native Telegram bridge)

[Channels](https://code.claude.com/docs/en/channels) are official plugins that push messages into a **running** Claude Code session. Telegram, Discord, and iMessage ship in the research preview. It's a two-way chat bridge: you message your bot, Claude reads it, does the work against your real files, and replies in the same chat.

A few prerequisites before you start:

- **Claude Code v2.1.80+** (Channels are a research preview).
- Authentication through **claude.ai or a Console API key** — not Bedrock, Vertex, or Foundry. On Team/Enterprise plans an admin must enable channels first.
- The **[Bun](https://bun.sh) runtime** — the channel plugins are Bun scripts. Check with `bun --version`.

### Set up the Telegram channel

1. **Create a bot.** Open [@BotFather](https://t.me/BotFather), send `/newbot`, give it a name and a username ending in `bot`, and copy the token.
2. **Install the plugin** inside Claude Code:
   ```
   /plugin install telegram@claude-plugins-official
   ```
   If it isn't found, add the marketplace first with `/plugin marketplace add anthropics/claude-plugins-official`, then retry. Run `/reload-plugins` afterward.
3. **Configure your token:**
   ```
   /telegram:configure <token>
   ```
   This saves it to `~/.claude/channels/telegram/.env`.
4. **Restart with the channel flag.** Exit Claude Code and relaunch so the plugin starts polling:
   ```bash
   claude --channels plugin:telegram@claude-plugins-official
   ```
5. **Pair your account.** Send any message to your bot; it replies with a pairing code. Back in the terminal:
   ```
   /telegram:access pair <code>
   /telegram:access policy allowlist
   ```
   The allowlist locks the bot to your account so no one else can push messages.

Now a message like "what's in my working directory?" sent to the bot lands in your session, and Claude replies in the chat.

### What it actually feels like

Two quirks surprise people immediately. First, when Claude replies through the channel, **the terminal shows the inbound message and a "sent" confirmation, but not the reply text** — the answer only appears in Telegram. Second, the channel runs **inside a session that has to stay open**: close the terminal and the bridge goes offline.

## Option 2: Remote Control (drive from the Claude app)

[Remote Control](https://code.claude.com/docs/en/remote-control) is the other native route. Instead of forwarding chat messages, it lets you **drive your whole local session** from [claude.ai/code](https://claude.ai/code) or the **Claude mobile app** (iOS/Android). Your files, MCP servers, and config stay local; the phone is just a window in.

```bash
claude remote-control          # prints a session URL; press space for a QR code
```

Scan the QR with the Claude app and you're steering the session from your phone, with push notifications when long tasks finish. It's more capable than Channels — but note the trade-off the name hides: it runs through **Anthropic's own app**, not Telegram, and it's Claude-only. It needs a Pro, Max, Team, or Enterprise plan and claude.ai login (API keys aren't supported).

## Where the native options fall short

Both features are genuinely useful and genuinely **research previews**. The friction people report ([MacStories](https://www.macstories.net/stories/first-look-hands-on-with-claude-codes-new-telegram-and-discord-integrations/), the official docs, and early write-ups) clusters around a few things.

**Channels:**

- **The session must stay open, and there's no message queue.** Anything you send while the session is closed simply vanishes. `tmux` keeps the process alive but doesn't fix the fundamental "your machine must be awake and connected" problem.
- **You can't approve permission prompts from Telegram.** Hit one while you're away and the session **pauses until you return to the terminal**. Going unattended means `--dangerously-skip-permissions` — fine on a throwaway box, risky anywhere with credentials or production access.
- **It's a chat bridge, not a cockpit.** No proactive messages (Claude only replies when you write first), no voice notes, and the terminal doesn't show the replies.
- **Setup has sharp edges.** Bun has to be installed, the step order matters, and it's a preview — the `--channels` syntax may change.
- **Claude only.** No Codex, no Gemini.

**Remote Control:**

- It needs **Anthropic's mobile app**, not the Telegram you already live in.
- **Anthropic agents only** — again, no Codex or Gemini.
- **One remote session per process**, and the local `claude` process must keep running; a network outage of ~10 minutes times the session out.

None of this makes the native features bad — they're a big step up from hand-rolling a bot. But "Claude Code in Telegram, always on, with approvals I can actually handle and more than one agent" is still out of reach natively.

## A sturdier Telegram setup: Chatcode

[Chatcode](https://app.chatcode.dev) is built for exactly that gap. It runs your coding agent on **a server you own** — connect DigitalOcean and it spins up a droplet, or bring your own VPS — and makes the session reachable from a **full browser terminal plus Telegram**. The differences that matter here:

- **Always-on by design.** The agent runs on your server, and sessions stay alive between visits — no terminal you have to babysit, no messages lost because your laptop slept.
- **Browser + Telegram, one synced session.** The browser is the full terminal; Telegram (via a Mini App and linked chats) gives you continuity, notifications when long jobs finish, and a way to resume from your pocket.
- **More than one agent.** Claude Code, Codex, Gemini, and OpenCode — not a Claude-only bridge.
- **A per-session sandbox toggle.** Decide the safety posture for each session instead of choosing between blocking on terminal prompts and skipping permissions wholesale.
- **Your own subscription.** Use the Claude or ChatGPT plan you already pay for; the code stays on your machine.

If the native channel is enough for you, use it — it's official and free. If you keep hitting the "session closed, message lost" wall or want Codex in the same place, here's the walkthrough: **[How to use Claude Code in Telegram with Chatcode](/articles/claude-code-telegram-with-chatcode)**.

## Which should you use?

- **Quick, occasional pings to a Claude session you're already running:** native **Channels**.
- **Steering a live Claude session from your phone, and you're happy in Anthropic's app:** **Remote Control**.
- **An always-on setup, Telegram-first, with Codex/Gemini too and no terminal to babysit:** **[Chatcode](https://app.chatcode.dev)**.
