本页目录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,配置消息相关权限 |
| iMessage | macOS 专属,直接读取 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 正在调试的会话上下文
延伸阅读
- 自定义频道开发:参阅官方 Channels reference
- 定时轮询场景:使用 Scheduled tasks 替代推送
- 远程介入会话:使用 Remote Control