Claude Code Channels:配置外部消息推入运行会话

Channels 是 Claude Code 的研究预览功能,让 Telegram、Discord、iMessage 等外部平台的消息直接推入你正在运行的本地 Claude Code 会话。配置思路:安装对应插件、用 Bot Token 或配对码完成身份绑定、用 claude --channels plugin:<name> 启动带频道功能的会话。企业环境需管理员在 managed settings 中设置 channelsEnabled: true 才可使用。

Channels 是研究预览功能,需要 Claude Code v2.1.80 或更新版本。认证方式支持 claude.ai 登录或 Console API key。不支持 Amazon Bedrock、Google Vertex AI、Microsoft Foundry。Team/Enterprise 组织需管理员显式启用(见企业控制)。

一个 Channel 是一个 MCP 服务器插件,能把事件推送到你正在运行的 Claude Code 会话,让 Claude 在你不坐在终端前时也能响应发生的事情。Channel 可以是双向的:Claude 读取事件并通过同一 Channel 回复。事件只在会话打开时到达,长期运行需要在后台进程或持久终端中运行 Claude。

典型场景:

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

支持的 Channel

研究预览版内置 TelegramDiscordiMessage(macOS 专属)。配置前需要安装 Bun(运行 bun --version 检查)。

Telegram

  1. 创建 Bot:在 Telegram 找 @BotFather,发 /newbot,设置名称和唯一 @username(必须以 bot 结尾),复制返回的 token。

  2. 安装插件

    /plugin install telegram@claude-plugins-official

    安装后运行 /reload-plugins 激活配置命令。
    如果提示找不到插件,先更新市场:

    /plugin marketplace update claude-plugins-official
  3. 配置 Token

    /telegram:configure <你的token>

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

  4. 启用频道重启

    claude --channels plugin:telegram@claude-plugins-official
  5. 配对账号:在 Telegram 给你的 Bot 发任意消息,Bot 会回复一个配对码。在 Claude Code 里运行:

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

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

Discord

  1. 创建 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. 安装插件

    /plugin install discord@claude-plugins-official

    安装后运行 /reload-plugins。市场问题处理同 Telegram。

  5. 配置 Token

    /discord:configure <你的token>
  6. 启用频道重启

    claude --channels plugin:discord@claude-plugins-official
  7. 配对账号:在 Discord 给 Bot 发私信,Bot 回复配对码,然后在 Claude Code 里运行:

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

iMessage(macOS 专属)

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

  1. 授权全文磁盘访问:The Messages database at ~/Library/Messages/chat.db is protected by macOS. 首次运行时 macOS 会弹出授权窗口,点 Allow。若错过,手动前往 系统设置 > 隐私与安全性 > 完整磁盘访问 添加你的终端。否则 server 会立即因 authorization denied 退出。

  2. 安装插件

    /plugin install imessage@claude-plugins-official
  3. 启用频道重启

    claude --channels plugin:imessage@claude-plugins-official
  4. 自测试:在任意设备上给自己的 Apple ID 发一条 iMessage,会立即到达 Claude。自聊无需配对,直接可用。

  5. 添加其他联系人(可选):

    /imessage:access allow +15551234567

    手机号格式为 +country,或 Apple ID 邮箱。


快速体验:fakechat 演示

fakechat 是官方提供的演示 Channel,在 localhost 运行一个聊天 UI,无需认证和外部服务。

前提

步骤

  1. 安装插件:

    /plugin install fakechat@claude-plugins-official
  2. 退出 Claude Code,用 --channels 重启:

    claude --channels plugin:fakechat@claude-plugins-official
  3. 浏览器打开 http://localhost:8787,输入消息,Claude 会处理并通过 fakechat 回复。

注意:如果 Claude 遇到权限提示而你不在终端,会话会暂停。支持权限中继的 Channel 可以把确认框转发到手机上。非交互模式下(-p),需要终端输入的工具(如选择题、计划模式确认)会被禁用,以免阻塞。


安全机制

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

  • Telegram/Discord 配对流程:找到 Bot 发一条消息 → Bot 回复配对码 → 在 Claude Code 会话中确认 → 你的 ID 被计入白名单。
  • iMessage:自聊自动绕过验证,添加其他联系人用 /imessage:access allow <handle>
  • 会话级控制:只有 --channels 参数里明确列出的服务器会推送消息。放在 .mcp.json 里不够,必须在 --channels 里指定。
  • 权限中继:如果 Channel 声明了该能力,能通过该 Channel 回复的人可以批准或拒绝当前会话中的工具调用。因此只把您信任的人加入白名单。

企业控制

管理员通过 managed settings 控制 Channels 可用性。默认行为取决于认证方式:

认证方式 默认 Channels 状态
claude.ai Team/Enterprise 禁用,需管理员启用
Console API key 允许(除非组织部署了 managed settings)

设置项

设置 用途 未配置时的行为
channelsEnabled 主开关。必须为 true 才能传递消息。设为 false 时阻止所有 Channel(包括开发标志)。 claude.ai Team/Enterprise:禁用。Console:允许(除非部署了 managed settings,此时同样禁用)。
allowedChannelPlugins 指定允许注册的插件(替换 Anthropic 默认列表)。仅当 channelsEnabledtrue 时生效。 使用 Anthropic 默认列表。

管理员启用 Channels

通过 claude.ai → Admin settings → Claude Code → Channels 开启,或在 managed settings 里设置 channelsEnabled: true
启用后,组织内用户可用 --channels 为单个会话启用 Channel。若设置未开启,MCP 服务器会连接、工具能用,但 Channel 消息不会到达,启动时显示警告提示联系管理员。

限制可用 Channel 插件

Team/Enterprise 管理员可在 managed settings 中设置 allowedChannelPlugins 来替换 Anthropic 默认列表。示例:

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

设置后只有列出的插件能注册(完全替换 Anthropic 默认列表)。留空则使用默认列表。设为空数组可阻止所有白名单插件,但 --dangerously-load-development-channels 仍可绕过。要完全禁用 Channel(包括开发标志),请用 channelsEnabled 而非 allowedChannelPlugins


研究预览限制

  • --channels 只接受 Anthropic 维护的白名单插件(claude-plugins-official 中的插件),或组织管理员设置的 allowedChannelPlugins 列表中的插件。
  • 要测试你开发的 Channel,需要使用 --dangerously-load-development-channels,详见研究预览期间测试
  • 参数语法和协议合约可能根据反馈变化。

Channels 与其他功能对比

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

下一步


常见问题

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

Remote Control 是你从 claude.ai 或手机 App 主动驾驶本地会话;Channels 是外部系统(如 Telegram 消息、CI webhook)主动推事件到本地会话。Channels 适合事件驱动的自动响应,Remote Control 适合你离开桌面时的手动干预。

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

Team/Enterprise 计划中 Channels 默认关闭。管理员需要在 claude.ai 的 Admin settings 中开启 channelsEnabled: true,或通过 managed settings 设置。开启后用户才能使用 --channels 标志激活频道。

配置 Telegram 时 Bot 不回复怎么办?

确保 Claude Code 正在运行并且使用了 --channels 标志(如 claude --channels plugin:telegram@claude-plugins-official)。Bot 只在频道(Channel)激活时才能响应。如果 Bot 仍不回复,检查 Token 是否正确、Bot 是否已启动(/telegram:configure <token> 已执行)。