一日一撸码(No.2):把 Claude Code 装进 Telegram:一个周末的轻量级方案

起因:一个周末的小烦恼

上周末在咖啡馆坐着,突然想起有个 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 的回复不是等全部生成完才显示,而是边思考边更新。你能看到 Claude 实时打字的过程,就像在终端里用 Claude Code 一样。长消息自动分段发送,体验很流畅。

4. 智能交互

  • Claude 的选项题自动转成 Telegram 内联键盘按钮,点一下就能选

  • 回复里的图片、PDF 等文件路径会自动发送为 Telegram 附件

  • 每个用户独立的 SDK 连接,支持并发消息(最多 3 条)

5. 功能完整

  • 支持所有 Claude Code 技能(/skill <name>)和斜杠命令(/commit/xhs-writer 等)

  • 支持模型切换(/model 在 Sonnet/Opus/Haiku 之间切换)

  • 支持会话恢复(/resume 查看和恢复历史对话)

  • 支持流式中断(/stop 立即停止 Claude 的回复)

上手指南

方式一:用 Claude Code 自动安装(推荐)

bash 复制代码
git clone https://github.com/terranc/claude-telegram-bot-bridge

cd claude-telegram-bot-bridge

claude

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

  • 检查系统环境(Python 3.11+、Claude CLI)

  • 收集 Bot Token 和用户白名单

  • 创建虚拟环境并安装依赖

  • 生成 .env 配置文件

完成后启动:

bash 复制代码
./start.sh --path /path/to/your/project

方式二:手动安装

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

bash 复制代码
git clone https://github.com/terranc/claude-telegram-bot-bridge

cd claude-telegram-bot-bridge

./setup.sh

然后启动:

bash 复制代码
./start.sh --path /path/to/your/project

获取 Telegram Bot Token

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

获取你的 Telegram 用户 ID

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

常用命令

bash 复制代码
# 前台运行(默认)

./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 - 查看和恢复历史会话

  • /stop - 停止当前 Claude 回复

  • /skill <name> - 运行 Claude Code 技能

  • /skills - 列出所有可用技能

  • 其他斜杠命令(如 /commit/xhs-writer)直接发送即可

技术细节

架构

  • core/bot.py - Telegram Bot 主逻辑,命令处理、权限控制

  • core/project_chat.py - Claude SDK 集成,消息队列、工具权限回调

  • core/streaming.py - 流式响应处理,实时更新草稿消息

  • session/ - 会话管理,状态持久化到 JSON

  • utils/ - 配置、日志、聊天记录

数据存储

  • 运行时数据: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: github.com/terranc/cla...

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

后记

这个项目从想法到能用,大概花了一个周末。代码不复杂,但解决了我的实际问题。

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

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

下一步可能会加个语音输入功能,这样在路上也能用语音跟 Claude 对话。不过这是后话了。

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

相关推荐
叶落阁主3 小时前
揭秘 Happy:如何实现 AI 编程助手输出的实时同步
人工智能·claude·vibecoding
Nutcracker3 小时前
Claude Code Commands 指南:打造你的专属 AI 工作流
claude
lanshan3 小时前
claude code国内免登录使用指南
claude
崔庆才丨静觅3 小时前
Claude Code GitHub Actions 使用教程
github·api·claude
烛阴17 小时前
Claude CLI 从安装到使用完整教程(Windows 版)
claude
ygxb1 天前
如何去创建一个规范化的Agent SKIll?
后端·ai编程·claude
jerrywus2 天前
前端老哥的救命稻草:用 Obsidian 搞定 Claude Code 的「金鱼记忆」
前端·agent·claude
AlienZHOU2 天前
为 AI Agent 编写高质量 Skill:Claude 官方指南
agent·ai编程·claude
KaneLogger2 天前
【翻译】打造 Agent Skills 的最佳实践
agent·ai编程·claude