Claude Code 推出跨会话消息 API,允许不同 Claude Code 实例之间直接发送消息,实现多会话协同工作流。
交接发现:当一个会话发现了破坏性变更或做出了决策时,Claude 将其总结后发送给受影响区域工作的会话,而无需你再去重新解释。
协调并行工作树:当多个会话在独立的工作树中操作同一个仓库时,Claude 可以告知其他会话哪些变更已经合并。
获取长时间运行任务的状态:让迁移或测试运行向你所观察的会话报告结果,或由你主动向它询问。
跨设备回复:回复来自另一台机器或网页上其他会话发来的消息。跨设备场景下,Claude 只能回复,无法主动发起对话。
若要在一个终端中继续另一个会话的对话,或与新会话共享其上下文,请使用「恢复会话」功能。
若要让 Claude 生成并监督一组协同工作的会话,请使用 Agent 团队。
若要从单一入口监控和引导多个会话,请使用 Agent View。
若要自己通过手机或其他设备引导会话,而不是让会话之间相互发消息,请使用 Remote Control。
若要将外部事件(如 CI 结果或聊天消息)推入某个会话,请使用 Channels。
Ask the session running in my other terminal whether the migration finished
Explain what we just did to the session working on the payments API
已送达:Claude Code 将消息传递给接收方的 Claude。
待确认:Claude Code 将消息搁置,暂不投递。待确认的消息只有在你批准后,或后续模式/设置变更允许时,才会送达 Claude。
已拒绝:Claude Code 直接丢弃消息,不做任何投递。
子代理:在当前会话内运行的代理。Agent 团队中的队友不会列在此处;Claude 通过团队自己的名册与他们通信。
你的其他本地会话:在同一台机器上运行的 Claude Code 会话,包括后台会话。会话只有在绑定了收件箱 socket 后才会显示。
本机以外的会话:在 Remote Control 连接时显示,标记为 Remote Control。这些是你在其他机器上的会话以及网页上的 Claude Code。Claude 无法向这些会话发送消息来发起对话,只能回复来自这些会话的消息。详见「向其他机器上的会话发消息」。
无法替代你审批任何操作:来自其他会话的消息不等于你的授权,因此无法代表你回答待处理的权限提示。
无法更改配置:Claude Code 指示接收方的 Claude 不得因其他会话的要求而更改权限设置、CLAUDE.md 或其他配置。
命令不会执行:消息文本中的命令(如 /compact)会作为纯文本到达。Claude Code 绝不会执行它。
权限提示仍会触发:如果处理该消息需要接收会话不具备的权限,你会看到与任何其他工作时相同的提示。
Schema migration finished: the new column is tenant_id, and rebasing on main is safe now.
接收会话正常提示权限:Claude Code 投递每条消息。仅当发送会话声明自己绕过权限提示时,消息才会等待你批准。
接收会话绕过权限提示:Claude Code 搁置每条消息等待你批准。仅当发送会话也声明自己绕过时,消息才会被投递。
批准:将该消息投递给你。
拒绝或关闭对话框:丢弃该消息。
超过 dialogExpiry 期限未处理:对话框关闭,Claude Code 丢弃该消息。期限默认五分钟。
如果该会话的权限模式类别在消息等待期间发生变化:Claude Code 重新应用入站规则,投递现在允许的消息,并显示通知。
如果变更导致拒绝规则生效:Claude Code 丢弃所有待处理消息,并向其能触及的每个发送方报告被拒绝。
/status 在 Peer address 行显示它。路径以 uds: 为前缀。
Claude Code 将其作为 CLAUDE_CODE_MESSAGING_SOCKET 环境变量导出给钩子和 Bash 命令。导出在任何钩子运行之前发生,包括 SessionStart。每个会话导出自己的 socket,不会继承父会话的 socket。
自有子进程消息:当没有 crossSessionInbound 规则适用时,Claude Code 投递它验证过来自本会话子进程(如钩子或 Bash 命令向自己会话的 socket 回传消息)的消息。在 Linux 上(包括 WSL 2 内),即使子进程已退出,它仍可验证;而在 macOS 上,仅能在 posting 进程仍在运行时验证;在 Claude Code 作为进程 ID 1 运行的容器中,完全无法验证。每当无法验证时,它像对待任何其他未声明权限类别的消息一样处理,因此绕过权限提示的会话会将其挂起等待你批准。
沙盒会话:通过沙盒的 Unix-socket 设置 sandbox.network.allowAllUnixSockets 和 sandbox.network.allowUnixSockets 来控制 Bash 命令是否可以从沙盒内访问该 socket。
{
"isolatePeerMachines": true
}
停止接收:将 crossSessionInbound 设为 refuse,Claude Code 将丢弃入站的对等消息而不投递。来自项目或本地设置时,refuse 优先于所有其他来源;来自用户设置时,除非托管设置或 --settings 标志设置了值,否则 refuse 生效。
停止发送和列举:添加命名 SendMessage 和 ListAgents 的权限拒绝规则。两者都接受裸工具名,不带限定符。
{
"permissions": {
"deny": ["SendMessage", "ListAgents"]
},
"crossSessionInbound": "refuse"
}
操作系统:适用于 macOS 和 Linux,包括 WSL 2 内的 Linux。Claude Code 在原生 Windows 上不提供跨会话消息功能。
提供商:在 Amazon Bedrock、AWS 上的 Claude Platform、Google Cloud 的 Agent Platform 或 Microsoft Foundry 上不可用。
功能标志评估:当 CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC、DISABLE_TELEMETRY、DO_NOT_TRACK 或 DISABLE_GROWTHBOOK 中任何一个关闭了该功能所依赖的功能标志评估时,跨会话消息保持关闭状态。每个变量的行说明了哪些值会导致这种情况。请取消设置适用的变量。这些变量可能来自你的 shell、来自设置文件的 env map 或来自托管设置。
/list-agents 无法识别:该会话不具备跨会话消息功能。请按照上述要求逐一排查,从 claude --version 的版本要求开始。
/list-agents 可用但发送未到达:消息功能已开启,但有更具体的限制在起作用。权限拒绝规则会移除 SendMessage 和 ListAgents 工具;接收会话的入站控制可以搁置或丢弃你发送的内容;本机以外的会话只能是回复模式。
仅限纯文本:Claude 只在会话之间发送纯文本。结构化的 Agent 团队协议消息保留在团队内部。
消息循环会被限流:Claude Code 对每个发送方的重复消息进行速率限制,在短时间内丢弃完全相同的重复消息,并将等待 Claude 阅读的已接受消息上限设为每个会话 50 条。因此,两个会话之间的消息循环会自动停止。
子代理和 Agent 团队:单一会话或团队内的消息传递
后台代理:调度和监控你可能需要联系的并行会话
Remote Control:连接跨设备消息传递所经过的会话
设置参考:crossSessionInbound、isolatePeerMachines 和 dialogExpiry
权限模式:入站默认的两个类别背后的模式
工具参考:工具表中 ListAgents 和 SendMessage 的条目
并行运行代理:Claude Code 运行多个代理的方式对比