惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Last Week in AI
Last Week in AI
有赞技术团队
有赞技术团队
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
人人都是产品经理
人人都是产品经理
博客园 - 司徒正美
博客园 - 聂微东
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 叶小钗
罗磊的独立博客
IT之家
IT之家
博客园 - 三生石上(FineUI控件)
V
Visual Studio Blog
T
Tailwind CSS Blog
大猫的无限游戏
大猫的无限游戏
Hugging Face - Blog
Hugging Face - Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
N
Netflix TechBlog - Medium
MyScale Blog
MyScale Blog
J
Java Code Geeks
L
LangChain Blog
S
SegmentFault 最新的问题
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Apple Machine Learning Research
Apple Machine Learning Research
G
Google Developers Blog

V2EX

我用 AI 写代码,但终端管理反而成了累赘——于是我做了 codux [调研] 各位在公司都用什么 ide 和 agent 写代码? 老运维 share 一个运维平台 新电脑 brew install node 之后,一个小设置可以提升对供应链投毒的防御 GLM-Coding 调用持续报错: z.ai 的 Lite 套餐几乎无法使用,官方 Pro/Max 是否稳定? 上海漕河泾内推,本组有 2 个 hc,一个后端,一个前端,预算都是 20k 左右,不打卡,氛围好 如果 V2EX 上有一组不永久保存聊天记录(比如只保存 7 天或者 24 小时)的聊天室,那么会开启哪些有用或者有趣的可能? gemini cli 貌似挂了,一直返回 403 第一次在自媒体上赚到钱 收集了最近在使用的低价 GPT, Gemini,邮箱等 AI 会员的小店合集 讨论个大实话:现在企业还在说 AI 编程提效 20%, 30%的,真的太落后,没用懂 AI。因为包括很多前沿公司,已经狂奔到提效 200%-500%的情况 [招聘][远程][币安] 前端/后端/QA/iOS/Android 至少 3 年以上经验 目前有大量 HC 欢迎投递 Chatgpt Pro 用量用不完的可以开这些设置 面试的时候好像遇到钓鱼了,给各位避个坑 cursor 年续费 22 号到期, 自动续费是否还是老的计次套餐呢 被两件破事毁掉的一下午,琐碎的内耗消磨人的精力 使用 Planet 存储 Codex 的会话或者重要信息 如果业务部门领导不要你开发功能,而是要求你教会它用 claude code 开发功能,你会怎么做? 分享一个 MacOS 接绿联 CM818 USB 转 DP 转接器使用感受 我的 HR 朋友 10 年老 Java ,非全大专,大家帮忙看看简历 开源了一个 AI 口语练习工具,音素级发音评分,完全免费可自部署 V2EX 上有哪些你觉得很有趣、印象深刻的妹纸? 字节为啥不出个国内版 Vercel? 有在大马的朋友吗? 问个运营商问题 你们在有领导的公司大群发过的最大胆的消息是什么 公司裁员,目前没有工作。想试试摆摊,做一个移动鲜啤打酒车 我的硬盘 Memblaze Pblaze 5 Linux 下不识别,给 Linux 内核提交了补丁, AI 说有望被合并 只有我一个人觉得 codex 不好用? 做了个 AI + 真人专家监督的广告投放平台 Auxora, 7 个品牌跑出 6x ROAS
一日一撸(No.2):把 Claude Code 装进 Telegram:一个周末...
TerranC · 2026-03-05 · via V2EX

Telegram Skill Bot:把 Claude Code 装进手机

起因:一个周末的小烦恼

上周末突然要出门,结果出门后突然想起有个 bug 没修。打开手机想用 Claude Code 看一眼,结果发现——它只能在终端里跑

回家开电脑?太麻烦了。用 OpenClaw ?我试过,配置 Web 服务器、Nginx 反向代理、HTTPS 证书……折腾了一下午,最后发现我只是想改几行代码而已。

这时候我想:能不能直接在 Telegram 里跟 Claude 聊天?

Telegram 有现成的 Bot API ,不需要自己搭服务器,消息推送也是长连接,安全性由 Telegram 保证。听起来很适合做这件事。

于是周末两天,撸了个 Telegram Bot 版本的 Claude Code 遥控器。

痛点:为什么不用 OpenClaw ?

OpenClaw 是个很棒的项目,但它解决的是"把 Claude 搬到云端"的问题,适合团队协作或者需要完整 Web IDE 的场景。

我的需求更简单:

  • 只想在手机上偶尔操作一下,不需要完整的浏览器界面
  • 不想折腾服务器配置,端口暴露、防火墙、SSL 证书这些东西太重了
  • 已经在用 Claude Code CLI,只是想加个远程入口

所以我需要的是一个"轻量级的后门",而不是一个完整的 Web 应用。

项目特点

1. 零基础设施

不需要 Web 服务器、不需要端口暴露、不需要配置 HTTPS 。Telegram 自带长连接,消息推送由 Telegram 服务器处理。启动一次就作为守护进程在后台运行,崩溃自动重启,macOS 上还能配置开机自启。

2. 默认安全

  • 文件访问沙箱化(--path 参数设置项目根目录)
  • 项目内文件自动允许访问,项目外需要 Telegram 内联按钮确认
  • 支持用户白名单(ALLOWED_USER_IDS
  • 超过 20 分钟的旧消息自动丢弃

3. 实时流式响应

Claude 的回复不是等全部生成完才显示,而是边思考边更新。使用 Telegram 草稿消息 API ,每 150 字符或 1 秒更新一次。你能看到 Claude 实时打字的过程,就像在终端里用 Claude Code 一样。长消息(超过 4000 字符)自动分段发送,体验很流畅。

4. 语音消息支持

直接发送 Telegram 语音消息,Bot 会自动:

  • 下载并检测音频格式( OGG/AMR/MP3 等)
  • 使用 ffmpeg 转换为标准格式
  • 通过 OpenAI Whisper API 转录为文字
  • 显示转录预览:🎤 Voice: [转录文本]
  • 将文字转发给 Claude 处理

在路上也能用语音跟 Claude 对话,不用打字。

5. 智能交互

  • Claude 的选项题自动转成 Telegram 内联键盘按钮,点一下就能选
  • 回复里的图片、PDF 等文件路径会自动发送为 Telegram 附件
  • 每个用户独立的 SDK 连接,支持并发消息(最多 3 条)
  • /stop 命令优先级处理:即使消息队列满了也能立即中断 Claude 回复或语音转录

6. 功能完整

  • 支持所有 Claude Code 技能(/skill <name>)和斜杠命令(/commit/xhs-writer 等)
  • 支持模型切换(/model 在 Sonnet/Opus/Haiku 之间切换)
  • 支持会话恢复(/resume 查看和恢复历史对话)
  • 支持历史查看(/history 显示当前会话最近 5 条消息)
  • 支持流式中断(/stop 立即停止 Claude 的回复或语音转录)

上手指南

用 Claude Code 自动安装(推荐)

git clone https://github.com/terranc/claude-telegram-bot-bridge
cd claude-telegram-bot-bridge
claude

然后在 Claude Code 提示符里输入 /setup,它会自动帮你:

  • 检查系统环境( Python 3.11+、Claude CLI 、ffmpeg )
  • 收集 Bot Token 和用户白名单
  • 询问是否启用语音消息功能(需要 OpenAI API Key )
  • 创建虚拟环境并安装依赖
  • 生成 .env 配置文件

/setup 技能支持多语言交互,你可以用中文、英文、日文等任何语言完成安装。

完成后启动:

./start.sh --path /path/to/your/project

手动安装

如果不想用 Claude Code ,也可以直接运行安装脚本:

git clone https://github.com/terranc/claude-telegram-bot-bridge
cd claude-telegram-bot-bridge
./setup.sh

获取 Telegram Bot Token

@BotFather 创建一个 Bot ,拿到 Token 。

获取你的 Telegram 用户 ID

@userinfobot 发消息,它会告诉你你的用户 ID 。

语音消息配置(可选)

如果想使用语音消息功能,需要:

  1. OpenAI API Key (用于 Whisper 转录)
  2. ffmpeg (用于音频格式转换)

.env 文件中配置:

OPENAI_API_KEY=your_openai_api_key
WHISPER_MODEL=whisper-1  # 可选,默认 whisper-1
MAX_VOICE_DURATION=300   # 可选,最大时长(秒),默认 300

语音转录费用约为 $0.006/分钟(以 OpenAI 官方定价为准)。

常用命令

# 前台运行(默认)
./start.sh --path /path/to/project

# 后台守护进程
./start.sh --path /path/to/project -d

# 调试模式(详细日志 + 聊天记录)
./start.sh --path /path/to/project --debug

# 检查运行状态
./start.sh --path /path/to/project --status

# 停止
./start.sh --path /path/to/project --stop

# macOS 开机自启
./start.sh --path /path/to/project --install

# 取消开机自启
./start.sh --path /path/to/project --uninstall

Telegram 内的命令

  • /new - 开始新对话
  • /model - 切换模型( Sonnet/Opus/Haiku )
  • /resume - 查看和恢复历史会话
  • /history - 显示当前会话最近 5 条消息
  • /stop - 停止当前 Claude 回复或语音转录(优先级命令,绕过队列限制)
  • /skill <name> - 运行 Claude Code 技能
  • /skills - 列出所有可用技能
  • 其他斜杠命令(如 /commit/xhs-writer)直接发送即可

技术细节

架构

  • core/bot.py - Telegram Bot 主逻辑,命令处理、权限控制
  • core/project_chat.py - Claude SDK 集成,消息队列、工具权限回调
  • core/streaming.py - 流式响应处理,实时更新草稿消息
  • utils/audio_processor.py - 音频格式检测、ffmpeg 转换、临时文件清理
  • utils/transcription.py - Whisper API 调用、重试/退避、空文本验证
  • session/ - 会话管理,状态持久化到 JSON
  • utils/ - 配置、日志、聊天记录

关键数据流

文本消息流程: 用户消息 → TelegramBot 处理器 → 权限检查 → ProjectChatHandler.process_message() → Claude SDK 流式响应 → 实时更新草稿消息 → 返回 Telegram

语音消息流程: 用户语音 → 下载音频文件 → 格式检测 → ffmpeg 转换(如需要)→ Whisper 转录 → 显示 🎤 Voice: 预览 → 转发给 Claude → 同文本消息流程

权限控制: 工具请求 → _permission_callback() → 项目内自动允许 / 项目外弹出内联按钮 → 用户选择( Allow / Deny / Allow All )→ asyncio.Future 模式等待响应( 60 秒超时)

流式响应: Claude SDK 流 → 每 150 字符或 1 秒触发更新 → Telegram 草稿消息 API → 超过 4000 字符自动分段 → 最终消息发送

优先级命令/stop/revert → 绕过消息队列限制 → 立即取消活动任务(asyncio.Task.cancel())→ 清理草稿消息 / 停止 SDK 流 / 删除临时音频文件

数据存储

  • 运行时数据:PROJECT_ROOT/.telegram_bot/
    • sessions.json - 用户会话状态
    • logs/bot.log - 主日志(每日轮转)
    • logs/error_YYYYMMDD.log - 错误日志
    • logs/{user_id}_{session_id}_{date}.log - 调试聊天记录
  • SDK 对话历史:~/.claude/projects/{PROJECT_DIR_NAME}/*.jsonl

守护进程特性

  • 崩溃自动重启,记录退出码和运行时长
  • 60 秒内崩溃 5 次后停止重启(防止无限循环)
  • 基于 MD5 的依赖缓存,requirements.txt 未变时跳过重装
  • 14 天日志轮转

项目地址

GitHub: https://github.com/terranc/claude-telegram-bot-bridge

欢迎提 Issue 或 PR 。如果你也觉得 OpenClaw 太重,可以试试这个方案。

后记

这个项目从想法到能用,大概花了一个周末。后来陆续加了语音消息、流式响应优化、优先级命令等功能,现在已经是我日常开发的必备工具。

有时候工具不需要很完美,够用就行。OpenClaw 是一辆卡车,我这个是一辆自行车——看你要运货还是通勤。

现在我在地铁上也能用手机跟 Claude 对话,让它帮我改代码、跑测试、查日志。实时流式响应让整个体验很流畅,就像在终端里用 Claude Code 一样。语音消息功能让我在路上也能用语音跟 Claude 交流,不用打字。

下一步可能会加个会话回滚功能(/revert),可以回到对话历史的任意节点,恢复代码状态或重新开始。不过这是后话了。

先这样,继续撸代码去了 🚀