Skip to content

Channels(向运行中的会话推送事件)

通过 MCP server 把外部消息、告警、webhook 推进正在运行的 Claude Code 会话。

是什么

Channel 是一个会把事件推送进正在运行的 Claude Code 会话的 MCP server,让 Claude 在你不在终端前时也能对发生的事情做出反应。它可以是双向的:Claude 读取事件并通过同一 channel 回复,像一座聊天桥。事件只在会话开启期间到达,因此常驻使用需把 Claude 跑在后台进程或常驻终端里。

与"另起一个云端会话"或"等待轮询"的集成不同,事件直接到达你已打开的会话。你以插件方式安装 channel,并用自己的凭据配置它。研究预览阶段内置 Telegram、Discord 和 iMessage,另有 localhost 演示用的 fakechat。

怎么工作

  • 以插件形式安装:/plugin install <name>@claude-plugins-official;安装后运行 /reload-plugins 激活其 configure 命令。
  • 退出后用 --channels 标志重启会话来启用,例如 claude --channels plugin:fakechat@claude-plugins-official;可空格分隔传入多个插件。
  • Telegram/Discord 通过 BotFather 或 Discord 开发者门户创建 bot,用 /<plugin>:configure <token> 配置 token(保存到 ~/.claude/channels/<plugin>/.env)。
  • 事件以 <channel source="..."> 形式进入会话,Claude 读取后调用该 channel 的 reply 工具回复;终端只显示工具调用与确认(如 sent),回复正文出现在对端平台。
  • 通过配对建立发送者 allowlist:给 bot 发消息→bot 返回配对码→在会话中用 /<plugin>:access pair <code> 批准→用 /<plugin>:access policy allowlist 锁定。
  • iMessage 直接读取本机 Messages 数据库并经 AppleScript 回复,无需 token;给自己发消息自动绕过门禁。
  • 遇到权限提示时会话会暂停等待响应;声明了 permission relay 能力的 channel 可远程转发该提示。

怎么配置 / 用法

启用与重启:

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

配置 token(Telegram 示例,保存到 ~/.claude/channels/telegram/.env):

/telegram:configure <token>

iMessage 放行其他联系人:

/imessage:access allow +15551234567

组织级 managed settings 限制可注册插件:

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

什么时候用

  • 作为聊天桥:通过 Telegram/Discord/iMessage 从手机问 Claude,工作在本机你的真实文件上运行,答案回到同一聊天。
  • 作为 webhook 接收端:CI、错误跟踪、部署流水线等外部服务的 webhook 直接到达 Claude 已打开你文件的会话。
  • 需要在你离开终端时让 Claude 对外部事件实时反应(区别于另起云端会话或定时轮询)。
  • 转发 CI 结果、聊天消息、监控事件,让 Claude 在你不在场时处理。

限制 / 坑

  • 处于 research preview,需 Claude Code v2.1.80 或更高版本;--channels 语法与协议契约可能变化。
  • 需通过 claude.ai 账号或 Console API key 的 Anthropic 认证;不支持 Amazon Bedrock、Google Vertex AI、Microsoft Foundry。
  • Team/Enterprise 组织默认被阻止,须管理员显式启用(channelsEnabled);事件只在会话开启时到达。
  • 预览期 --channels 仅接受 Anthropic 维护的 allowlist(或组织 allowedChannelPlugins)中的插件;自建 channel 测试需 --dangerously-load-development-channels
  • 各 channel 插件需要 Bun;iMessage 仅限 macOS 且需 Full Disk Access。

硬事实速查(12 条)

  • 启用标志为 --channels,可空格分隔传多个插件;仅写进 .mcp.json 不足以推送,server 必须在 --channels 中被命名。
  • 内置/官方支持的 channel:Telegram、Discord、iMessage,以及 localhost 演示 fakechat(UI 在 http://localhost:8787)。
  • 插件源自 marketplace claude-plugins-official;缺失时用 /plugin marketplace add anthropics/claude-plugins-officialupdate 刷新。
  • token 保存路径为 ~/.claude/channels/<plugin>/.env,也可用环境变量如 TELEGRAM_BOT_TOKENDISCORD_BOT_TOKEN
  • 配对命令 /<plugin>:access pair <code>,锁定命令 /<plugin>:access policy allowlist
  • iMessage 读取 ~/Library/Messages/chat.db(受 macOS 保护,需 Full Disk Access),handle 为 +国家码 电话或 Apple ID 邮箱。
  • Discord 需启用 Message Content Intent,并授予 View Channels、Send Messages 等权限。
  • 两个 managed settings:channelsEnabled(总开关,必须为 true)与 allowedChannelPlugins(设定后完全替换 Anthropic 默认 allowlist)。
  • claude.ai Team/Enterprise 默认阻止 channels;Console API key 认证默认允许(除非部署了 managed settings);Pro/Max 个人用户跳过这些检查。
  • 无人值守可用 --dangerously-skip-permissions 绕过权限提示(仅限可信环境);-p 非交互模式下需终端输入的工具(多选、plan 模式审批)被禁用。
  • Claude 回复时终端不显示回复正文,只显示工具调用与确认;回复出现在对端平台。
  • 自建 channel 见 Channels reference,测试用 --dangerously-load-development-channels

官方出处:https://code.claude.com/docs/en/channels