Claude Code 学习站

Claude Code Channels 实战:把外部消息推进本地会话

Claude Code Channels 功能详解:通过 Telegram、Discord、iMessage 等频道将外部事件实时推送到本地 Claude 会话,支持企业白名单管控,现处于 research preview 阶段。

本页目录7
要点速览
  • Channels 是 MCP 服务器机制,可将聊天消息、CI 通知、Webhook 等外部事件推送到正在运行的本地 Claude Code 会话,无需重开会话
  • 官方提供 Telegram、Discord、iMessage 三个频道插件,均需 Bun 运行时,通过 `--channels` 参数按会话启用
  • fakechat 是本地演示频道,无需任何外部账号,在 localhost:8787 即可完整体验推送与回复流程
  • 每个频道维护发送者白名单,需配对流程才能向 Claude 推送消息,仅写入 .mcp.json 不会自动激活频道
  • Team/Enterprise 组织需管理员开启 `channelsEnabled`,并可用 `allowedChannelPlugins` 限制允许的插件列表
  • 功能处于 research preview,需 v2.1.80+,不支持 Bedrock/Vertex/Foundry,`--channels` 语法可能随反馈调整

本文是对官方文档《Push events into a running session with channels》的中文要点摘要,完整内容以原文为准。原文链接:https://code.claude.com/docs/en/channels

什么是 Channels

Channels 是一种 MCP 服务器机制,可将外部事件推送到正在运行的 Claude Code 本地会话中,让 Claude 在你离开终端时仍能响应外部消息。与轮询或新建云端会话不同,事件直接进入你已经打开的会话,Claude 可以访问你的实际文件和上下文。

目前该功能处于 research preview 阶段,需要 Claude Code v2.1.80 或更高版本,并通过 claude.ai 账号或 Console API key 进行 Anthropic 身份验证。暂不支持 Amazon Bedrock、Google Vertex AI 和 Microsoft Foundry。

支持的频道

官方提供三个开箱即用的频道插件,均需安装 Bun 运行时:

频道说明
Telegram通过 BotFather 创建 Bot 并获取 token
Discord在 Discord Developer Portal 创建 Bot,配置消息相关权限
iMessagemacOS 专属,直接读取 Messages 数据库,无需 token 或外部服务

通用安装流程(以 Telegram 为例):

# 安装插件
/plugin install telegram@claude-plugins-official

# 配置 token
/telegram:configure <token>

# 启动时启用频道
claude --channels plugin:telegram@claude-plugins-official

安装后需完成账号配对:向 Bot 发送任意消息获取配对码,在 Claude Code 中执行 /telegram:access pair <code>,再通过 /telegram:access policy allowlist 锁定白名单访问。

快速体验:fakechat 演示

fakechat 是官方提供的本地演示频道,无需任何外部账号或 token:

# 安装
/plugin install fakechat@claude-plugins-official

# 启动
claude --channels plugin:fakechat@claude-plugins-official

启动后打开浏览器访问 http://localhost:8787,输入消息即可触发 Claude 响应,回复结果同步显示在浏览器界面。这是体验 Channels 功能的最低门槛方式。

安全机制

每个频道维护一个发送者白名单,只有通过配对或手动添加的账号才能推送消息:

  • 配对流程:向 Bot 发消息 → 获取配对码 → 在会话中确认 → 加入白名单
  • 会话级控制:只有在 --channels 参数中明确列出的服务才能推送,写入 .mcp.json 并不自动激活
  • 权限中继:若频道声明支持 permission relay 能力,白名单内的发送者可远程批准或拒绝工具调用,需谨慎授权
  • 无人值守模式:使用 --dangerously-skip-permissions 可绕过大多数权限提示,仅限受信任环境

企业管控

Team/Enterprise 组织需要管理员在 managed settings 中配置,用户无法自行覆盖:

{
  "channelsEnabled": true,
  "allowedChannelPlugins": [
    { "marketplace": "claude-plugins-official", "plugin": "telegram" },
    { "marketplace": "acme-corp-plugins", "plugin": "internal-alerts" }
  ]
}
设置项作用默认值
channelsEnabled总开关Team/Enterprise 默认关闭;Console API key 用户默认开启
allowedChannelPlugins替换 Anthropic 默认插件白名单未设置时使用 Anthropic 维护的默认列表

Pro/Max 个人用户无需任何组织配置,直接用 --channels 参数启用即可。

与其他功能的对比

功能工作方式适用场景
Claude Code on the web在云端沙箱运行任务委托独立异步任务
Claude in Slack从 @Claude 提及启动云端会话在团队对话中触发任务
标准 MCP 服务器Claude 主动查询,不推送给 Claude 按需访问能力
Remote Control从 claude.ai 或手机远程控制本地会话不在桌旁时介入进行中的任务
Channels外部事件推送到本地运行中的会话CI 通知、聊天桥接、Webhook 接收

典型使用场景:

  • 通过手机 Telegram 向 Claude 发指令,Claude 在本机操作真实文件后回复结果
  • 将 CI 系统的 Webhook 推送到 Claude 会话,让 Claude 自动处理构建失败
  • 监控告警直接进入 Claude 正在调试的会话上下文

延伸阅读