Appearance
Free Claude Code 的消息模块可以将 Claude Code 封装成 Discord 或 Telegram 聊天机器人。你在聊天窗口发消息,机器人在后端启动 Claude CLI 执行任务,实时回传进度。支持树状对话分支(回复某条消息创建独立分支)、/stop 停止任务、/clear 清理会话。
Free Claude Code 接入 Discord 和 Telegram:用聊天机器人远程写代码
它能做什么
- 在 Discord 或 Telegram 聊天窗口发送编程指令
- 机器人在后端启动 Claude Code CLI 执行
- 实时回传 Claude 的思考过程和工具调用结果
- 支持回复分支:回复某条任务消息,创建独立的对话分支
/stop停止当前或指定任务,/clear清理会话,/stats查看状态
Discord 配置
创建 Discord Bot
- 访问 Discord Developer Portal
- 创建新 Application,进入 Bot 页面
- 启用 Message Content Intent
- 生成邀请链接,授予以下权限:
- Read Messages / View Channels
- Send Messages
- Read Message History
- 邀请 Bot 进入你的服务器
配置 .env
dotenv
MESSAGING_PLATFORM="discord"
DISCORD_BOT_TOKEN="你的 Discord Bot Token"
ALLOWED_DISCORD_CHANNELS="123456789"
CLAUDE_WORKSPACE="./agent_workspace"
ALLOWED_DIR="C:/Users/你的用户名/projects"| 变量 | 说明 |
|---|---|
DISCORD_BOT_TOKEN | Discord Developer Portal 中的 Bot Token |
ALLOWED_DISCORD_CHANNELS | 允许 Bot 响应的频道 ID(逗号分隔多个) |
CLAUDE_WORKSPACE | Claude Code 的工作目录 |
ALLOWED_DIR | Claude Code 可访问的文件系统范围 |
Telegram 配置
创建 Telegram Bot
- 在 Telegram 中找到 @BotFather
- 发送
/newbot,按提示创建 Bot - 获取 Bot Token
- 找到 @userinfobot 获取你的 User ID
配置 .env
dotenv
MESSAGING_PLATFORM="telegram"
TELEGRAM_BOT_TOKEN="123456789:ABC..."
ALLOWED_TELEGRAM_USER_ID="你的用户ID"
CLAUDE_WORKSPACE="./agent_workspace"
ALLOWED_DIR="C:/Users/你的用户名/projects"聊天命令
| 命令 | 说明 |
|---|---|
/stop | 停止当前任务。回复某条任务消息发送 /stop 只停止该分支 |
/clear | 清理会话。回复某条消息发送 /clear 只清除该分支 |
/stats | 显示当前会话状态 |
树状对话分支
这是 Free Claude Code 消息系统的核心设计。当 Bot 回复你的消息后,你可以:
- 直接发新消息:创建新的独立任务
- 回复 Bot 的某条消息:在该任务的上下文中继续对话,形成分支
你: 写一个 TODO App
Bot: 🔄 Processing... (任务 A)
你: [回复任务 A] 加一个删除功能
Bot: 🔄 Processing... (任务 A 的分支)
你: 帮我写个 README
Bot: 🔄 Processing... (任务 B,独立任务)每个分支独立运行,互不干扰。分支内的消息按队列顺序处理。
会话管理
- 每个任务会创建独立的 Claude CLI 会话
- 任务完成后会话自动释放
- 通过回复分支可以 fork 父任务的会话上下文
- 会话状态会持久化到
session_store,重启代理后可以恢复
速率限制
dotenv
MESSAGING_RATE_LIMIT=1 # 每窗口最大消息数
MESSAGING_RATE_WINDOW=1 # 窗口大小(秒)默认配置下每秒最多处理 1 条消息。如果 Bot 在多人频道中使用,建议适当调大限制。
FAQ
Q: Bot 启动后不响应消息? A: 检查 ALLOWED_DISCORD_CHANNELS 或 ALLOWED_TELEGRAM_USER_ID 是否正确配置。Bot 只响应白名单中的频道或用户。
Q: 任务执行到一半断了怎么办? A: 重新发送同样的消息,Bot 会创建新任务。之前的任务状态会保存在 session_store 中,但不会自动恢复执行。
Q: 可以同时用 Discord 和 Telegram 吗? A: 不可以,MESSAGING_PLATFORM 只能选一个。如果需要同时支持,启动两个代理实例,分别配置不同的端口和平台。
Q: Bot 发送的消息格式为什么乱了? A: Discord 和 Telegram 的 Markdown 语法不同。Free Claude Code 会自动适配平台的渲染格式。如果仍有问题,检查代理日志中的格式化错误。