字节笔记本
2026年2月22日
Claude Telegram Bot:将 Claude Code 变成你的个人 Telegram 助手
本文介绍 Claude Telegram Bot,一个开源项目,让你能够通过 Telegram 随时随地访问 Claude Code,将其变成你的个人智能助手。该项目由 Fabrizio Rinaldi(linuz90)开发,在 GitHub 上已获得 375+ stars。
项目简介
Claude Telegram Bot 是一个基于 TypeScript 开发的 Telegram 机器人,它将 Claude Code 的强大功能扩展到移动端。通过这个机器人,你可以:
- 在手机上与 Claude 进行自然对话
- 发送语音消息、图片、文档给 Claude 分析
- 让 Claude 帮你处理文件、编写代码、管理任务
- 随时随地访问你的个人助手
虽然 Claude Code 被描述为一个强大的 AI 编程代理,但当给予正确的指令、上下文和工具时,它实际上也是一个非常有能力的通用代理。
核心特性
- 💬 文本对话:提问、给出指令、进行对话
- 🎤 语音支持:自然语音交流 - 通过 OpenAI 转录后由 Claude 处理
- 📸 图片分析:发送截图、文档或任何视觉内容进行分析
- 📄 文档处理:PDF、文本文件和压缩包(ZIP、TAR)会被提取并分析
- 🎵 音频处理:音频文件(mp3、m4a、ogg、wav 等)通过 OpenAI 转录后处理
- 🎬 视频支持:处理视频消息和视频笔记
- 🔄 会话持久化:跨消息继续对话
- 📨 消息队列:Claude 工作时可以发送多条消息 - 它们会自动排队。使用
!前缀或/stop命令可中断并立即发送 - 🧠 扩展思考:使用 "think" 或 "reason" 等词触发 Claude 的推理能力 - 你会看到它的思考过程(可通过
THINKING_TRIGGER_KEYWORDS配置) - 🔘 交互式按钮:Claude 可以通过内置的
ask_userMCP 工具将选项显示为可点击的内联按钮
技术栈
- TypeScript (99.8%) - 主要开发语言
- Bun - 运行时和包管理器
- @anthropic-ai/claude-agent-sdk - Claude Agent SDK
- node-telegram-bot-api - Telegram Bot API
- OpenAI API - 语音转录功能
安装指南
前置要求
- Bun 1.0+ - 安装 Bun
- Claude Agent SDK -
@anthropic-ai/claude-agent-sdk(通过 bun install 安装) - Telegram Bot Token - 从 @BotFather 获取
- OpenAI API Key(可选,用于语音转录)
快速开始
# 克隆仓库
git clone https://github.com/linuz90/claude-telegram-bot.git
cd claude-telegram-bot
# 配置环境变量
cp .env.example .env
# 编辑 .env 填入你的凭证
# 安装依赖
bun install
# 启动机器人
bun run src/index.tsClaude 认证方式
该机器人支持两种认证方式:
| 方式 | 适用场景 | 设置方法 |
|---|---|---|
| CLI Auth(推荐) | 高频使用,成本效益高 | 运行 claude 一次完成认证 |
| API Key | CI/CD、无 Claude Code 的环境 | 在 .env 中设置 ANTHROPIC_API_KEY |
CLI Auth(推荐):SDK 自动使用你的 Claude Code 登录。只需确保至少运行过一次 claude 并完成认证。这使用你的 Claude Code 订阅,对于高频使用来说更具成本效益。
API Key:适用于未安装 Claude Code 的环境。从 console.anthropic.com 获取密钥并添加到 .env:
ANTHROPIC_API_KEY=sk-ant-api03-...
注意:API 使用按 token 计费,高频使用可能产生较高费用。
配置说明
1. 创建机器人
- 在 Telegram 上打开 @BotFather
- 发送
/newbot并按照提示创建机器人 - 复制 token(格式如
1234567890:ABC-DEF...)
然后发送 /setcommands 给 BotFather 并粘贴以下命令列表:
start - 显示状态和用户 ID
new - 开始新会话
resume - 从最近 5 个会话中选择恢复
stop - 中断当前查询
status - 检查 Claude 正在做什么
restart - 重启机器人2. 配置环境变量
创建 .env 文件:
# 必需
TELEGRAM_BOT_TOKEN=1234567890:ABC-DEF... # 从 @BotFather 获取
TELEGRAM_ALLOWED_USERS=123456789 # 你的 Telegram 用户 ID
# 推荐
CLAUDE_WORKING_DIR=/path/to/your/folder # Claude 运行的工作目录
OPENAI_API_KEY=sk-... # 用于语音转录查找 Telegram 用户 ID:在 Telegram 上向 @userinfobot 发送消息。
文件访问路径:默认情况下,Claude 可以访问:
CLAUDE_WORKING_DIR(或未设置时的主目录)~/Documents、~/Downloads、~/Desktop~/.claude(用于 Claude Code 计划和设置)
如需自定义,在 .env 中设置 ALLOWED_PATHS(逗号分隔)。注意:这会覆盖所有默认值,如需使用计划模式,请包含 ~/.claude:
ALLOWED_PATHS=/your/project,/other/path,~/.claude3. 配置 MCP 服务器(可选)
复制并编辑 MCP 配置:
cp mcp-config.example.ts mcp-config.local.ts
# 编辑 mcp-config.local.ts 添加你的 MCP 服务器机器人包含一个内置的 ask_user MCP 服务器,让 Claude 可以将选项显示为可点击的内联键盘按钮。你可以添加自己的 MCP 服务器(Things、Notion、Typefully 等)来让 Claude 访问你的工具。
机器人命令
| 命令 | 描述 |
|---|---|
/start | 显示状态和用户 ID |
/new | 开始新会话 |
/resume | 从最近 5 个会话中选择恢复(带摘要) |
/stop | 中断当前查询 |
/status | 检查 Claude 正在做什么 |
/restart | 重启机器人 |
作为服务运行(macOS)
# 复制并编辑 plist 文件
cp launchagent/com.claude-telegram-ts.plist.template ~/Library/LaunchAgents/com.claude-telegram-ts.plist
# 编辑 plist 填入你的路径和环境变量
# 加载服务
launchctl load ~/Library/LaunchAgents/com.claude-telegram-ts.plist机器人将在登录时自动启动,崩溃时自动重启。
防止休眠:要让机器人在 Mac 空闲时保持运行,前往系统设置 → 电池 → 选项,启用"当显示器关闭时防止自动休眠"(使用电源适配器时)。
日志查看:
tail -f /tmp/claude-telegram-bot-ts.log # 标准输出
tail -f /tmp/claude-telegram-bot-ts.err # 标准错误Shell 别名(添加到 ~/.zshrc 或 ~/.bashrc):
alias cbot='launchctl list | grep com.claude-telegram-ts'
alias cbot-stop='launchctl bootout gui/$(id -u)/com.claude-telegram-ts 2>/dev/null && echo "Stopped"'
alias cbot-start='launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/com.claude-telegram-ts.plist 2>/dev/null && echo "Started"'
alias cbot-restart='launchctl kickstart -k gui/$(id -u)/com.claude-telegram-ts && echo "Restarted"'
alias cbot-logs='tail -f /tmp/claude-telegram-bot-ts.log'安全说明
⚠️ 重要提示:该机器人运行 Claude Code 时绕过所有权限提示。Claude 可以在允许的路径内无需确认地读取、写入和执行命令。这是为了无缝的移动体验而有意设计的,但在部署前你应该了解其影响。
多层保护防止滥用:
- 用户白名单 - 只有你的 Telegram ID 可以使用机器人
- 意图分类 - AI 过滤器阻止危险请求
- 路径验证 - 文件访问限制在
ALLOWED_PATHS - 命令安全 - 阻止
rm -rf /等破坏性模式 - 速率限制 - 防止失控使用
- 审计日志 - 所有交互记录到
/tmp/claude-telegram-audit.log
阅读完整的安全模型文档了解权限工作原理和保护措施。
故障排除
机器人无响应
- 验证你的用户 ID 是否在
TELEGRAM_ALLOWED_USERS中 - 检查机器人 token 是否正确
- 查看日志:
tail -f /tmp/claude-telegram-bot-ts.err - 确保机器人进程正在运行
Claude 认证问题
- CLI 认证:在终端运行
claude验证是否已登录 - API Key:检查
ANTHROPIC_API_KEY是否设置且以sk-ant-api03-开头 - 在 console.anthropic.com 验证 API 密钥有余额
语音消息失败
- 确保
.env中设置了OPENAI_API_KEY - 验证密钥有效且有余额
Claude 无法访问文件
- 检查
CLAUDE_WORKING_DIR指向存在的目录 - 验证
ALLOWED_PATHS包含你想要 Claude 访问的目录 - 确保机器人进程有读写权限
MCP 工具不工作
- 验证
mcp-config.ts存在并正确导出 - 检查 MCP 服务器依赖是否已安装
- 在日志中查找 MCP 错误
个人助手指南
作者提供了详细的个人助手指南,介绍如何设置 Claude Code 作为个人助手,包括:
- 创建包含个人偏好、笔记位置、工作流程的 CLAUDE.md
- 根据需求设置工具和脚本
- 配置 MCP 服务器扩展功能
项目链接
- GitHub 仓库:https://github.com/linuz90/claude-telegram-bot
- 演示 GIF:https://github.com/linuz90/claude-telegram-bot/blob/main/assets/demo.gif
- 个人助手指南:https://github.com/linuz90/claude-telegram-bot/blob/main/docs/personal-assistant-guide.md
- 安全模型文档:https://github.com/linuz90/claude-telegram-bot/blob/main/SECURITY.md
许可证
MIT License