Skip to main content
Glama

Mila Telegram

从 Telegram 运行你的 Claude Code 会话——并让它持续运行。

这是官方 Telegram 频道插件(Apache-2.0)的扩展分支。原版将 Telegram 机器人连接到 Claude Code 会话。这个分支增加了你真正每天这样工作时才会开始需要的东西:群聊中的团队协作、语音消息,以及一个在会话重启时不会丢失消息的轮询器。

这个分支新增了什么

一个比会话存活更久的守护进程。 在原版中,Telegram 轮询器存在于会话进程内部:重启 Claude Code,期间发送的每条消息都会丢失。在这里,轮询器作为长期运行的守护进程运行,将事件追加到日志文件中,会话在启动时从游标处重放这些事件。重启、崩溃、升级——传入的消息会保存在文件中,等会话恢复时送达。

群组自动加入,一键批准。 将机器人添加到群组并发送 /channel_join。群主会在私聊中收到一张四按钮卡片:回复所有人、仅提及、仅监听(机器人能听到群聊,但向群聊的回复会被机械地阻止),或拒绝。每个决定——包括拒绝——都会追加到 auth-log.jsonl 日志中,每个已连接的聊天都会在 chats/<id>.md 中获得一张上下文卡片,外加一个自动生成的 CHATS.md 注册表。无需数字聊天 ID,无需手动编辑 JSON;群组消息永远无法自行更改允许列表——批准只发生在群主的私聊中。

语音转写。 语音消息会交给您选择的转写命令(设置 TELEGRAM_VOICE_TRANSCRIBE_CMD),文本会与音频一起到达助手那里。未设置则语音消息直接透传而不转写——没有默认值,没有供应商。

回复引用上下文。 当有人回复较早的消息时,被引用的文本会随新消息一起传递,这样助手回答的就是您实际指向的那条消息,而不是聊天中的最后一条内容。

原插件的一切功能仍然有效:配对、允许列表、提及检测、reply / react / edit_message、照片、附件、输入指示器。

Related MCP server: tsgram-mcp

安全性

在把它放到一台重要的机器上之前,请先阅读这部分。

消息是不可信的输入。 任何人发送给机器人的内容都会作为内容到达您的助手。允许列表聊天中的某个人可以尝试指示它。请将频道视为通往一个能读取文件和运行命令的会话的公共入口。

群组默认需要提及。 已批准的群组以 requireMention: true 添加,因此机器人只在被点名时才会响应。关闭它意味着每个成员的每条消息都会直接进入会话——这是一个真实的提示注入面,而不是理论上的。只为您信任每个成员的聊天关闭它。

附件可以发出去。 reply 工具会发送助手传给它的任何绝对路径。这是有意为之——这是您从会话中取出文件的方式——但结合上述几点,它也是一条外泄路径。您的权限设置,而不是这个插件,才是消息与文件离开您机器之间的屏障。

事件日志是一个信任边界。 守护进程将事件写入文件,会话重放它们;任何能写入该文件的东西都在以 Telegram 的声音说话。日志及其目录以 0600/0700 权限创建,桥接器只重放两个方法的允许列表,因此伪造的行无法调用任意方法。请将状态目录放在只有您能写入的文件系统上。

您的令牌存放在 ~/.claude/channels/telegram/.env,权限为 0600,并且在任何内容被记录之前会从错误输出中剥离。

前置条件

  • Bun — MCP 服务器运行在 Bun 上:curl -fsSL https://bun.sh/install | bash

设置

1. 创建机器人。@BotFather 发消息,发送 /newbot,然后复制它给您的令牌(整个字符串,包括开头的数字和冒号)。

2. 安装插件。 在 Claude Code 会话中:

/plugin marketplace add shakhruz/mila-telegram
/plugin install mila-telegram@mila

3. 将令牌交给服务器。

/telegram:configure 123456789:AAHfiqksKZ8...

这会将 TELEGRAM_BOT_TOKEN=... 写入 ~/.claude/channels/telegram/.env。您也可以自己编写该文件,或在 shell 中设置该变量——shell 中的设置优先。

要在一台机器上运行多个机器人,请为每个实例将 TELEGRAM_STATE_DIR 指向不同的目录。

4. 使用频道标志重新启动。 没有它服务器不会连接:

claude --channels plugin:mila-telegram@mila

5. 配对。 给您的机器人发私信;它会回复一个 6 字符的代码。在会话中:

/telegram:access pair <code>

6. 锁定它。 配对的存在是为了捕获您的 ID。一旦您进入,就切换到允许列表,这样陌生人就不会再收到配对代码:

/telegram:access policy allowlist

运行守护进程

守护进程是让重启变得无代价的关键。将 receiver.ts 作为服务运行在您选择的进程管理器下——macOS 上用 launchd,Linux 上用 systemd——并在其环境中设置 RECEIVER_DAEMON=1

RECEIVER_DAEMON=1 bun /path/to/plugin/receiver.ts

它将事件写入 $TELEGRAM_STATE_DIR/inbound/events.jsonl。当会话启动并发现守护进程存活时,它会从该日志读取而不是轮询,因此两者永远不会争夺 Telegram API。如果没有守护进程在运行,会话会像原插件一样直接轮询——守护进程是可选的。

配置

变量

用途

TELEGRAM_BOT_TOKEN

来自 BotFather 的机器人令牌。必填。

TELEGRAM_STATE_DIR

状态目录。默认 ~/.claude/channels/telegram

TELEGRAM_VOICE_TRANSCRIBE_CMD

转写语音文件的命令。未设置表示不转写。

RECEIVER_DAEMON

设置为 1 以将 receiver.ts 作为轮询守护进程运行。

访问控制

有关私信策略、群组、提及检测、投递配置、技能命令和 access.json 模式,请参阅 ACCESS.md

ID 是数字用户 ID——从 @userinfobot 获取您的 ID。ackReaction 只接受 Telegram 固定的表情符号白名单。

向助手暴露的工具

工具

用途

reply

发送到聊天。接受 chat_id + text,可选 reply_to 用于原生线程回复,以及 files(绝对路径)用于附件。图片以照片形式发送,其他一切以文档形式发送,每个 50MB。长文本会被分块。返回已发送的消息 ID。

react

按消息 ID 添加表情符号反应。仅限 Telegram 固定白名单(👍 👎 ❤ 🔥 👀 …)。

edit_message

编辑机器人发送的消息。适合"处理中…" → 结果。仅限自己的消息。

download_attachment

file_id 从入站消息获取文件并返回其本地路径。

入站消息会自动触发输入指示器。

没有历史记录,没有搜索

Telegram 的 Bot API 两者都不提供。机器人只能看到到达时的消息——无法获取聊天的过去内容。如果助手需要更早的上下文,它必须向您询问。这是 Telegram 的限制,不是这个插件的限制,这也是照片在到达时被急切下载的原因。

许可证与署名

Apache-2.0。这是 anthropics/claude-plugins-officialtelegram 频道插件的修改分支,版权所有 Anthropic, PBC。变更列表见 NOTICE

A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    A
    quality
    F
    maintenance
    Enables remote control of AI coding assistants (Claude Code/Codex) via Telegram, allowing you to manage long-running tasks, send commands, and receive notifications from anywhere. Supports unattended mode with smart polling for up to 7 days and multi-session management.
    8
    29
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Connects Claude Code sessions to Telegram, enabling AI-powered code assistance and file management directly from Telegram chats.
    92
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables Claude Code to act as an autonomous Telegram agent with tools for replying, reacting, editing messages, searching history, and handling attachments. Includes a TUI watchdog for unattended operation.
    1
    AGPL 3.0

View all related MCP servers

Related MCP Connectors

  • Telegram bridge for your MCP-compatible agent. Bidirectional, no LLM in our stack.

  • Multi-tenant Telegram gateway for AI agents — HTTP+stdio, 8 tools, MTProto User API

  • Persistent context for Claude. Your AI always knows your projects and next actions across sessions.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/shakhruz/mila-telegram'

If you have feedback or need assistance with the MCP directory API, please join our Discord server