Skip to content

Channels:把外部消息推入你的 Claude Code 会话

Channels 是 Claude Code 的研究预览功能,本质是一个 MCP 服务器插件,可以把外部事件(Telegram/Discord/iMessage 消息、CI webhook 等)推送到你正在运行的 Claude Code 会话。不同于 Remote Control(你主动驾驶)或 Slack 集成(生成新云会话),Channels 填补的是"外部系统主动推送事件到本地正在运行的会话"这个空白。Team/Enterprise 用户需管理员用 channelsEnabled 开启,Pro/Max 用户可直接用 --channels 标志按会话启用。

Channels 是研究预览功能,需要 Claude Code v2.1.80+。需要 claude.ai 登录,不支持 Console/API key 认证。Team/Enterprise 组织需管理员启用。

Channel 是什么? 一个 MCP 服务器插件,可以把事件推送到你正在运行的 Claude Code 会话,让 Claude 在你不在终端时响应发生的事情。

举几个例子:

  • 用手机通过 Telegram 发消息给 Claude,让它在你的机器上完成任务,答案直接回到 Telegram
  • CI 失败了,webhook 把错误推给 Claude,Claude 已经有你的文件打开着,可以直接调试
  • Discord 里的消息触发代码审查

Channel 可以是双向的:Claude 读取事件,通过同一 channel 回复。事件只在会话打开时到达,长期运行需要在后台进程或持久终端里跑 Claude。


支持的 Channel

目前研究预览版包含 TelegramDiscordiMessage(macOS 专属)。

以下配置需要先安装 Bunbun --version 检查)。

配置 Telegram

1. 创建 Telegram Bot

打开 Telegram 找 @BotFather,发送 /newbot,设置显示名和 @username(必须以 bot 结尾),复制 BotFather 返回的 token。

2. 安装插件

text
/plugin install telegram@claude-plugins-official

安装后运行 /reload-plugins 激活配置命令。

如果提示找不到插件,先更新插件市场:

text
/plugin marketplace update claude-plugins-official

3. 配置 Token

text
/telegram:configure <你的token>

Token 保存到 ~/.claude/channels/telegram/.env。也可以设置环境变量 TELEGRAM_BOT_TOKEN

4. 启用 Channels 重启

bash
claude --channels plugin:telegram@claude-plugins-official

5. 配对你的账号

在 Telegram 给你的 Bot 发任意消息,Bot 会回复一个配对码。在 Claude Code 里运行:

text
/telegram:access pair <配对码>
/telegram:access policy allowlist

allowlist 策略确保只有你的账号能向 Claude 发消息。


配置 Discord

1. 创建 Discord Bot

进入 Discord Developer Portal,点 New Application,在 Bot 部分点 Reset Token 复制 token。

2. 启用 Message Content Intent

在 Bot 设置里,找到 Privileged Gateway Intents,开启 Message Content Intent

3. 邀请 Bot 到服务器

OAuth2 > URL Generator 选择 bot scope,开启权限:View Channels、Send Messages、Send Messages in Threads、Read Message History、Attach Files、Add Reactions。打开生成的 URL 把 Bot 加入服务器。

4. 安装插件

text
/plugin install discord@claude-plugins-official

安装后运行 /reload-plugins

5. 配置 Token

text
/discord:configure <你的token>

6. 启用 Channels 重启

bash
claude --channels plugin:discord@claude-plugins-official

7. 配对账号

DM 你的 Bot,它会回复配对码,然后在 Claude Code 里运行:

text
/discord:access pair <配对码>
/discord:access policy allowlist

配置 iMessage(macOS 专属)

iMessage channel 直接读取你的 Messages 数据库,通过 AppleScript 发送回复。无需 Bot Token 或外部服务,只需 macOS。

1. 安装插件

text
/plugin install imessage@claude-plugins-official

2. 启用 Channels 重启

bash
claude --channels plugin:imessage@claude-plugins-official

3. 安全配置

给自己发消息会自动绕过验证。添加其他联系人:

text
/imessage:access allow <对方手机号或邮箱>

快速体验:fakechat 演示

想先体验 Channels 的工作方式,不需要配置真实平台?用 fakechat——在本地 localhost 启动一个聊天 UI:

1. 安装 fakechat 插件

text
/plugin install fakechat@claude-plugins-official

2. 启用 Channels 重启

bash
claude --channels plugin:fakechat@claude-plugins-official

3. 打开浏览器发消息

访问 http://localhost:8787,输入消息。消息会出现在你的 Claude Code 会话里,Claude 的回复会显示在浏览器里。


安全机制

发送方白名单:每个 Channel 插件维护一个发件人允许列表。只有你添加的 ID 才能推送消息,其他人被静默丢弃。

配对流程:Telegram 和 Discord 通过配对码初始化白名单——只有你的账号 ID 被添加进去。

会话级控制:只有在 --channels 参数里明确列出的服务器才会推送消息。在 .mcp.json 里存在不够,必须在 --channels 里指定。

权限中转(Permission Relay):如果 Channel 声明了权限中转能力,Claude 遇到权限确认时可以把对话框转发到你的手机上批准或拒绝。能通过 Channel 回复的人就能批准 Claude 的工具调用——只把你信任的人加入白名单。


企业控制

Channels 由 channelsEnabled 设置项控制:

计划默认行为
Pro / Max(无组织)可用,用户用 --channels 按会话开启
Team / Enterprise默认禁用,需管理员开启

管理员开启方式

claude.ai → Admin settings → Claude Code → Channels 开启,或在 managed settings 里设置 channelsEnabled: true

开启后,用户可以用 --channels 为单个会话启用 Channel。如果设置未开启,MCP 服务器会连接、工具也能用,但 Channel 消息不会到达,启动时会显示警告提示联系管理员。

限制允许的 Channel 插件

默认情况下,Anthropic 维护的白名单上的任意插件都可以注册为 Channel。Team/Enterprise 管理员可在 managed settings 中设置 allowedChannelPlugins 来替换该白名单:

json
{
  "channelsEnabled": true,
  "allowedChannelPlugins": [
    { "marketplace": "claude-plugins-official", "plugin": "telegram" },
    { "marketplace": "claude-plugins-official", "plugin": "discord" },
    { "marketplace": "acme-corp-plugins", "plugin": "internal-alerts" }
  ]
}

设置后只有列出的插件才能注册(完全替换 Anthropic 默认列表)。留空则使用 Anthropic 默认列表。


Channels 与其他功能对比

功能说明适合场景
Claude Code on the web在云端新沙箱运行,从 GitHub clone 代码委托自包含的异步工作
Claude in Slack从 @Claude 提及生成 Web 会话从团队对话启动任务
普通 MCP 服务器Claude 任务中主动查询,不推送给 Claude 按需读取/查询系统
Remote Control你从 claude.ai/手机驱动本地会话离开桌面时控制进行中的会话
Channels外部系统主动推送事件到运行中的本地会话CI 通知、聊天桥接、webhook 响应

核心区别:Channels 填补了"外部事件触发本地正在运行的会话"这个空白。


研究预览限制

  • 目前 --channels 只接受 Anthropic 维护的插件白名单(即 claude-plugins-official 里的插件)
  • 测试自己开发的 Channel 需要使用 --dangerously-load-development-channels 标志
  • --channels 的参数语法和协议合约在预览期间可能变化

相关文档

常见问题

Q: Claude Code Channels 和 Remote Control 有什么区别?

Remote Control 是"你主动驾驶本地会话"——从 claude.ai 或手机 App 远程操控本地正在运行的 Claude Code。Channels 是"外部系统主动推送事件"——Telegram 消息、CI webhook 等主动触发本地会话响应。两者互补:Channels 适合事件驱动的自动响应,Remote Control 适合你离开桌面时的手动干预。

Q: Claude Code 如何通过 Telegram 控制?

安装 telegram 插件(/plugin install telegram@claude-plugins-official),配置 Bot Token,通过 --channels plugin:telegram@claude-plugins-official 启动 Claude Code,然后完成配对。之后直接在 Telegram 给 Bot 发消息,Claude Code 在你的本地机器上处理并把结果回复到 Telegram。

Q: Team/Enterprise 用户为什么看不到 Channels 功能?

Team/Enterprise 计划中,Channels 默认关闭,需要管理员在 claude.ai Admin 控制台或 managed settings 中将 channelsEnabled 设为 true 才能启用。