你有没有遇到过这种情况:出门前给 Claude Code 布置了个重构任务,结果回到家发现它卡在权限确认那一步,等了你三个小时没人点"允许"。

传统模式下,Claude Code 必须有人在终端前盯着。一旦你离开,它就只能原地待命——权限弹窗不点,它就动弹不得;你想让它响应 CI 结果或者外部事件,它根本收不到。

Claude Code Channels 就是来解决这个问题的。它把 Claude Code 变成了一个"随时待命"的服务,你可以通过 Telegram、Discord 这些日常聊天工具,向它发消息、下指令,而它就在后台默默干活。

从"人找 AI"到"AI 找人"

先说清楚 Channels 是什么。

一个 Channel,本质上是一个 MCP 服务器。它的职责是把外部消息推送到正在运行的 Claude Code 会话里,在 Claude Code 和外部世界之间搭了一座桥。

这座桥是双向的。你从 Telegram 发一句"帮我看看刚才的 CI 报错",Claude 读取这条消息,完成分析,然后把结果通过同一个频道发回来——你不用盯着终端,在手机上就能看到 Claude 的回复。

这和传统的"人在回路"完全不同。过去是你坐在电脑前,AI 等你下命令;现在反过来了——你人不在,但只要 Claude Code 进程还跑着,它就能响应外界的事件。

快速上手:fakechat 本地演示

正式接入 Telegram 或 Discord 之前,官方提供了一个叫 fakechat 的本地演示工具。不需要注册账号、不需要配置 token,在浏览器里就能体验整个流程。

首先确保满足前提条件:Claude Code 已安装并用 claude.ai 账号登录,机器上装了 Bun。

然后在 Claude Code 里执行安装命令:

/plugin install fakechat@claude-plugins-official

装完之后重启,这次加上 --channels 参数:

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

fakechat 服务会自动启动。打开浏览器访问 http://localhost:8787,在输入框里随便敲一句话,比如"我的工作目录下有哪些文件",消息会通过 <channel source="fakechat"> 事件的形式进入 Claude Code 会话。Claude 读完消息、执行命令、调用 fakechat 的 reply 工具,结果就显示在浏览器里了。

跑通这个链路,你就明白 Channels 在干什么了——消息从外部进来,Claude 处理,结果回到外部平台。

Telegram 配置:把 Claude Code 接进聊天软件

fakechat 只是演示。真正有用的是把 Claude Code 和日常沟通工具打通。这里以 Telegram 为例,Discord 的步骤基本一致。

创建机器人

打开 Telegram,搜索 BotFather,发送 /newbot。按照提示给机器人起个名字和用户名(用户名必须以 bot 结尾)。完成后 BotFather 会返回一个 token,复制它。

安装并配置插件

回到 Claude Code,执行:

/plugin install telegram@claude-plugins-official
/telegram:configure <你的token>

token 会被保存到 .claude/channels/telegram/.env 文件里。

重启并启用频道

退出当前 Claude Code 会话,用以下命令重新启动:

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

启动时带上 --channels 参数,Telegram 插件才会激活并开始轮询消息。

配对账户

打开 Telegram,找到你刚创建的机器人,随便发一条消息。机器人会自动回复一个配对码。回到 Claude Code,执行:

/telegram:access pair <配对码>

最后一步,锁定白名单,只允许你自己的账户发送消息:

/telegram:access policy allowlist

配置搞定。从现在起,你在 Telegram 上给机器人发消息,它都会转发给 Claude Code 处理,回复也直接回到你的 Telegram 对话框里。

Discord 的配置流程几乎一模一样——创建应用、开启 Message Content Intent、生成邀请链接把机器人加入服务器、装插件、配置 token、重启时启用频道、配对账户、白名单锁定。

安全机制:谁来发消息 Claude 才听

一个最自然的担心是:把消息入口开放给外部平台,会不会被人滥用?

Claude Code 的设计里已经考虑到了这一点。每个 Channel 插件都维护一个发送者白名单。默认情况下,所有非白名单用户的消息都会被静默丢弃,Claude 完全不会收到。

白名单的建立通过配对流程完成。你在 Telegram 或 Discord 上向机器人发消息,机器人回一个配对码,你在 Claude Code 里验证这个码,配对才完成,你的账户 ID 才会被加入白名单。

此外,你对每个会话启用哪些频道有完全的控制权。即使某个 MCP 服务器在 .mcp.json 里配置了,它也必须同时出现在 --channels 参数里才会接收消息。这两个条件缺一不可。

对于团队和企业用户,还有一个额外的控制层级:组织管理员需要在管理后台(claude.ai → Admin settings → Claude Code → Channels)显式开启 channelsEnabled 设置,否则团队成员即使加了 --channels,消息也进不来。

使用场景:什么时候会用到

聊完技术细节之后,说说这个功能实际能干什么。

CI/CD 流水线通知。 假设你配置了一个 Channel 接收 GitHub Actions 或者 Jenkins 的 webhook。流水线失败时,Claude Code 自动收到通知,分析日志,定位问题,然后把结论发到你的 Telegram 群组。整个过程不需要人盯着终端。

外部监控告警。 当 Sentry 收到错误告警,或者某个健康检查接口挂了,告警通过 Channel 推给 Claude Code,它自动去查相关日志、排查问题,给你发一条诊断报告。

随时远程查询。 你在外面吃饭,突然想起项目里有个配置问题不确定,直接手机给 Claude 发消息问一句,它告诉你答案——不需要开电脑、不需要连 VPN。

多角色协作。 产品经理在 Slack 上发了一条需求变更,Claude 读取后自动更新文档、调整代码、提交 MR。整个信息链路是打通的。

研究预览阶段要注意什么

目前 Channels 处于研究预览(research preview)阶段。这意味着几件事:

第一,需要 Claude Code v2.1.80 或更高版本,同时必须使用 claude.ai 账号登录。Console 和 API Key 认证不支持。

第二,--channels 参数的语法和协议可能在后续版本中调整。生产环境使用的话,建议关注官方更新日志。

第三,preview 期间只接受 Anthropic 官方白名单里的插件,不支持第三方未审核的 Channel。如果你想测试自己开发的 Channel,需要加 --dangerously-load-development-channels 参数。

写在最后

Claude Code Channels 的本质,是把 AI 编程助手从"被动响应"变成了"主动待命"。它解决的核心矛盾是:开发者不可能 24 小时守在终端前,但业务事件不等人。

这个功能目前还在快速迭代,配置步骤稍显繁琐。但一旦跑通,它打开的想象空间不小——当 AI 能通过你日常使用的聊天工具接收指令并返回结果,“随时有 AI 帮你干活"这句话就不再是比喻了。

如果你的团队已经在用 Claude Code 搞开发,建议先从 fakechat 演示入手,感受一下消息从外部进来、Claude 在后台处理的完整链路。上手门槛不高,关键是想清楚你想解决什么问题。


常见问题

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

Remote Control 是让你从手机远程操控本地 Claude Code 终端,而 Channels 是把消息从外部平台推进来让 Claude 处理。两者解决的问题不同,可以互补使用。

企业用户能用 Claude Code Channels 吗?

能用,但需要管理员在 claude.ai 管理后台显式开启 channelsEnabled 设置,默认是关闭的。开启后团队成员才能在会话中使用 --channels 参数。

Channels 支持微信或者 Slack 吗?

目前研究预览阶段只支持 Telegram 和 Discord 两个平台,以及 fakechat 本地演示。不过 Claude Code 提供了 Channels 协议文档,你可以在此基础上开发自己的 Channel 插件。