Skip to content

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

  1. 访问 Discord Developer Portal
  2. 创建新 Application,进入 Bot 页面
  3. 启用 Message Content Intent
  4. 生成邀请链接,授予以下权限:
    • Read Messages / View Channels
    • Send Messages
    • Read Message History
  5. 邀请 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_TOKENDiscord Developer Portal 中的 Bot Token
ALLOWED_DISCORD_CHANNELS允许 Bot 响应的频道 ID(逗号分隔多个)
CLAUDE_WORKSPACEClaude Code 的工作目录
ALLOWED_DIRClaude Code 可访问的文件系统范围

Telegram 配置

创建 Telegram Bot

  1. 在 Telegram 中找到 @BotFather
  2. 发送 /newbot,按提示创建 Bot
  3. 获取 Bot Token
  4. 找到 @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_CHANNELSALLOWED_TELEGRAM_USER_ID 是否正确配置。Bot 只响应白名单中的频道或用户。

Q: 任务执行到一半断了怎么办? A: 重新发送同样的消息,Bot 会创建新任务。之前的任务状态会保存在 session_store 中,但不会自动恢复执行。

Q: 可以同时用 Discord 和 Telegram 吗? A: 不可以,MESSAGING_PLATFORM 只能选一个。如果需要同时支持,启动两个代理实例,分别配置不同的端口和平台。

Q: Bot 发送的消息格式为什么乱了? A: Discord 和 Telegram 的 Markdown 语法不同。Free Claude Code 会自动适配平台的渲染格式。如果仍有问题,检查代理日志中的格式化错误。