架构原理
整套方案的核心是 Anthropic 官方的 Claude Agent SDK。这个 SDK 并非云服务,而是一个本地 npm 库。它通过 spawn 调用本机已登录的 claude CLI,复用现有的认证信息。本质上,就是给 Claude Code 加了一个 Telegram 前端。
完整链路如下:
Telegram Bot → daemon 进程 → Claude Agent SDK → spawn 本地 claude CLI → Anthropic API → 原路返回
全程没有额外的"服务",所有环节都是本地进程间的通信。
通信机制:不需要公网 IP
这是整个方案中最反直觉的部分。实现"在外面发消息、家里电脑执行"这件事,并不需要公网 IP、端口映射或 NAT 穿透。
它采用的是**长轮询(Long Polling)**机制——你的电脑主动向 Telegram 服务器询问"有没有新消息",有就拉回来处理,没有就挂起等待,过几十秒再问一次。所有连接都是从本机向外发起的,和用浏览器上网没有区别。不需要公网 IP,不需要开端口,在 NAT 后面也完全没问题。
仔细想想,微信、邮箱客户端、手机推送通知,底层都是同一个原理——不是别人来找你,而是你一直在主动问别人。
运行条件与限制
因为所有逻辑都跑在本机,所以有几个前提:
- 电脑必须保持开机且联网
- 如果需要代理才能访问 Telegram,代理必须保持开启
- 电脑关机或休眠,Bot 就无法响应
好消息是,daemon 进程由 macOS 的 launchd 托管,崩溃后会自动重启,稳定性有保障。如果想彻底脱离本机限制,可以把整套方案部署到云服务器上。
实操启发
这个案例打破了一个常见的认知障碍:做远程控制类的工具,不一定要先搞定公网、NAT、服务器这些基础设施。单向发起连接 + 长轮询,就足以覆盖大量场景。对于独立开发者而言,把 Claude Code 挂在一台常开的机器上,配合 Telegram Bot,就能实现一个随身携带的 AI 开发助手——成本几乎为零,架构也足够简单。