Claude Code的跨会话消息传递
自v2.1.224起,Mac或Linux机器上的每个交互式Claude Code会话都会在启动时绑定一个Unix套接字,您运行的任何其他会话都可以向其中投递一条文本消息;我的这个套接字位于/tmp/cc-socks/38590.sock,权限仅限所有者。1 原生Windows则改用命名管道,按发布说明自v2.1.239起支持;另有一个延迟绑定的例外,见下文“陷阱”一节。驱动这项功能的是两个工具:ListAgents用于发现您的哪些会话可达,SendMessage按名称把消息送达其中一个。2 无需启用,无需配置。只要两个会话都在同一台机器上运行v2.1.224或更高版本(Windows上为v2.1.239),它们就已经可以互相通信。
Claude Code会话之间通过本地Unix套接字互发消息(自v2.1.239起,Windows上改用命名管道):ListAgents找出可达的会话,SendMessage按名称向它投递纯文本。消息是输入,绝不是授权。它不能批准提示,不能更改配置,也不能执行命令,并且不携带任何对话历史或文件。
TL;DR
Claude Code会话之间现在可以互发消息:在同一台机器上通过本地套接字传递,完全不经过Anthropic的服务器;跨机器则通过Remote Control传递(发布之初只能回复;v2.1.225增加了按名称主动发起对话的能力)。15 消息只是纯文本,绝不包含对话历史、文件或权限,接收会话把它当作输入而非授权:它不能批准提示,不能更改配置,也不能执行命令。1 这项功能让一群彼此独立的终端变得更像一支团队,最佳用途是那些您过去需要手动传递的协调信息:“迁移完成了”“我重命名了那一列”“main现在可以安全地rebase了”。最隐蔽的陷阱是静默缺失:四个互不相关的隐私环境变量,各自都可能因取值不同而悄无声息地禁用这项功能。3 发布以来,v2.1.239让Windows原生加入,v2.1.236新增了notify_when_idle,允许一个会话请求同一台机器上的另一个会话在下次空闲或退出时发送一次通知。910
已发布的内容
v2.1.224版本在macOS和Linux上新增了跨会话SendMessage,并配以ListAgents发现机制;v2.1.225进一步扩展,使会话也能主动发起与您其他机器上Remote Control会话的对话,而此前只能回复。45
有三个界面可以让您看到内部机制:
/list-agents(别名/peers)第一行打印会话自己的名称(即其他会话用来联系它的名称,自v2.1.239起显示),然后列出Claude能够到达的每一个会话:当前会话内的子代理、该会话在线的agent team队友(自v2.1.239起列出;此前一个可达的队友看起来像是不存在)、您本地的其他会话(包括后台会话),以及在Remote Control已连接时,您在其他机器上和Claude Code网页版中的会话。19/status显示一行Peer address,内容是会话自己的收件箱套接字,前缀为uds:。1CLAUDE_CODE_MESSAGING_SOCKET:收件箱绑定后,Claude Code会把这个变量导出给hook和Bash命令(延迟绑定的说明见“陷阱”一节),其值是会话自己的套接字路径。16 它为什么重要,下文详述。
2026年8月25日,我在自己的机器上用Claude Code 2.1.246做了验证:代理列表的第一行是“This session is blakecrosley-com-76 [04e18a] — the name other sessions use to message it (it is not listed below; a message to it would be a message to yourself).”(大意:本会话是blakecrosley-com-76 [04e18a],这是其他会话向它发消息时使用的名称;它不在下方列出,给它发消息等于给自己发消息),接着是11个对等会话,每行形如“resumegeni-25 [10d770] · interactive · idle · started 21h ago”:名称采用“目录名加两字符后缀”的形式并附带方括号中的短标识符,状态为idle、busy和shell,每行有启动时长,另有一个单独的Subagents区块列出该会话自己的子代理。/tmp/cc-socks/下的套接字文件权限为srw-------,目录本身为drwx------:仅我的用户可读写,这就是共享机器上的边界。1
会话以名称相认。可以用/rename或--name标志设置名称;否则Claude Code会根据工作目录派生一个,例如my-app-3f。111 自v2.1.232起,当您启动、恢复或重命名一个交互式会话,而所用名称已被机器上另一个在线会话占用时,Claude Code会把名称留给已占用它的会话,将您的会话改名为name-word-word形式的变体(类似auth-refactor-graceful-unicorn),并告知您。110 以下情况冲突仍会存在:其中一个会话运行的是旧版本;共用的名称是Claude Code自动生成的;或者您启动后台会话或-p会话时带了--name,而Claude Code在启动时不检查这种名称。11 列表总是显示每个本地会话的工作目录,这样同名会话只要运行在不同目录就能区分开;对于共用的名称,Claude还会在每一行加上短标识符,并在地址中使用它。当Claude Code无法检查会话运行的所有位置时,例如某个账户的云端或Remote Control会话列表超出了它读取的页数上限,Claude也会回退到同样的短标识符寻址方式。1
发布以来的变化(2026年8月)
发布后的两周内,五个版本补上了本文曾指出的Windows缺口,收紧了命名和寻址,并堵住了本文未曾指出的四种静默失败模式:910
| 版本 | 变更 |
|---|---|
| v2.1.232 | 唯一名称与@提及。 同一台机器上的交互式会话保持名称唯一(发生冲突时,新来的会话会被改名为name-word-word变体并收到通知);在提示中输入@即可按名称提及另一个在线会话,Claude会直接用SendMessage联系它;/config新增了“Messages from your other sessions”(来自您其他会话的消息)一行,将crossSessionInbound(accept、hold、refuse)写入用户设置,旁边还有“Dialog expiry”(对话框过期时间)一行。同一版本还加固了共享/tmp上自动生成的套接字目录:Claude Code现在会拒绝预先植入的符号链接或其他用户的目录,而不是直接使用。110 |
| v2.1.235 | SendMessage会预先拒绝因体积过大而无法跨会话投递的消息,而不是静默丢弃。10 |
| v2.1.236 | notify_when_idle:请求同一台机器上的另一个会话在下次空闲或退出时发送一次通知(两个会话都需v2.1.236+)。选择加入、一次性、无需轮询。同一版本还会在短时间内的突发消息即将超出接收方收件箱容量时预先拒绝后续消息,而不是一边报告已发送、一边被接收方丢弃。110 |
| v2.1.238 | 投递结果如实反馈:向本机上一个拒绝入站消息(crossSessionInbound: "refuse")的会话发送消息时,现在会向发送方报告“refused”(已拒绝),而不是假装成功;收件箱丢弃了您消息的会话(触发速率限制或队列已满)也会告知您的会话,而不是让消息凭空消失。10 |
| v2.1.239 | Windows。 跨会话消息传递可原生运行,使用同样的SendMessage和ListAgents工具;ListAgents现在会告诉会话它自己的名称(对等会话用来联系它的名称)并列出在线队友,此前队友看起来像是不存在;向自己的名称发送SendMessage时会明确指出这一点,而不是报“no agent named …”(没有名为……的代理)。9 |
实际效果是:下文的“汇报型长任务”模式不再需要一条询问进度的提示。监视会话用notify_when_idle向长任务会话请求一次空闲通知,等长任务下次空闲或退出时就会收到回音。四种失败模式中的两种(消息过大,或突发过快超出收件箱容量)现在在发送方就会预先失败;另外两种(消息被拒绝或被丢弃)则会以明确报告的形式返回给同一台机器上的交互式发送方。
信任模型才是有意思的部分
Anthropic的设计回答了一个大多数多代理系统都处理不好的问题:来自另一个代理的消息值多少?这里的答案很精确:消息是信息,绝不是授权。1
当会话A向会话B发送消息时,四条规则约束着送达的内容:1
- 它不能批准任何事情。 B中待处理的权限提示会无视A说的一切。只有您才能回答提示。
- 它不能更改配置。 Claude Code指示接收方的Claude,绝不因另一个会话的要求而修改权限设置、
CLAUDE.md或任何配置。 - 命令以文本形式到达。 消息正文中的
/compact只是八个字符的文字,绝不会被当作命令执行。 - 权限提示照常触发。 如果按消息行事需要B所没有的权限,您会看到与其他任何工作相同的提示。
入站投递有自己的门槛。每条到达的消息最终归于三种结果之一(已投递、暂留等待您批准、或被拒绝),由crossSessionInbound设置(accept、hold、refuse)控制。1 如果您什么都不设置,Claude Code会根据两个会话的权限模式逐条决定,而默认逻辑相当优雅:绕过权限提示的会话归为一类,其余会话归为另一类(当会话可以使用绕过模式时,plan模式算作绕过;auto、acceptEdits和dontAsk算作提示)。提示类会话可以自由接收消息,但会暂留任何来自绕过类会话的消息;绕过类会话则暂留所有消息,只有来自同为绕过类会话的消息例外。1 这种不对称是有意为之:消息不得借用宽松会话的权限。v2.1.222先在auto模式的出站方向应用了这一原则,由权限分类器在派发前审查每一次发送;v2.1.224则把它应用到了入站方向。7
暂留的消息会打开一个审批对话框,显示发送方和预览;未回应的对话框五分钟后过期(可通过dialogExpiry调整),消息随之丢弃。1 未连接终端的后台会话会让对话框在超过期限后仍保持打开;一旦您连接上,只有对话框在完整的一个期限内仍无人回应,消息才会丢弃。1 同时暂留的消息最多100条。1 还有两项控制把范围收得更窄:isolatePeerMachines: true要求任何消息离开本机前都必须经您明确批准,即使在bypassPermissions模式下也是如此,而且任何设置作用域中的true都会生效,因此签入仓库的项目文件只能收紧而无法放宽它。1 组织可以通过对SendMessage和ListAgents设置拒绝规则,再在托管设置中加上crossSessionInbound: "refuse",彻底关闭这项功能。1
消息如何传递
另一个会话运行在哪里,决定了传输方式和您能发送的内容:1
| 目标 | 传输方式 | 可发送内容 |
|---|---|---|
| 同一台机器 | 每个会话独立的Unix套接字(原生Windows上为命名管道),绝不经过Anthropic服务器 | 新消息和回复 |
| 您的另一台机器 | Anthropic服务器,经由那台机器的Remote Control连接送达 | 回复;自v2.1.225起可在Remote Control已连接时发起新对话5 |
| Claude Code网页版 | Anthropic服务器,直达云端会话 | 回复;在Remote Control已连接时,可向出现在列表中的云端会话发起新对话1 |
本文首次发布时,Anthropic的文档页面仍把所有跨机器消息描述为只能回复,而v2.1.225的发布说明却称SendMessage“can now start a conversation with your Remote Control sessions on other machines by name”(现在可以按名称向您其他机器上的Remote Control会话发起对话)。文档随后已经跟上:该页面现在说明,向您另一台机器上的会话发起对话需要v2.1.225或更高版本,且目标必须出现在列表中。15
同一台机器的判定规则是文件系统可见性:会话在磁盘文件中注册,因此两个会话只有看到相同的文件才能互相到达。容器内的会话与宿主机上的会话无法通信;同一容器内的两个会话则可以。1
投递尊重接收会话的节奏:接收方的Claude在活跃轮次中于两次工具调用之间读取消息,绝不打断正在运行的工具;会话空闲时,Claude Code则用这条消息开启一个新的轮次。1 已投递的消息与您输入的提示一样计入用量。1
值得构建的五种模式
1. Worktree协调。 最显而易见的一种,也是文档用自己的示例消息来说明的场景:在同一仓库的不同worktree中工作的会话,互相告知哪些改动已落地。1 “Schema migration finished: the new column is tenant_id, and rebasing on main is safe now.”(schema迁移完成:新列是tenant_id,现在可以安全地在main上rebase了)就是这类更新,否则您得自己注意到、切换终端、再重新输入一遍。如果几个会话共用一个检出目录而不是各用worktree,协调消息的价值就更大了:“我马上要提交content/guides/,别把它加入暂存区”能避免经典的共享工作树冲突,即一个会话把另一个会话做了一半的工作提交上去。
2. 监视者与工作者。 运行一个监视会话盯着部署、测试套件或日志,一旦出问题就让它立刻给负责修复的会话发消息。接收会话把这一发现当作上下文而非命令;它仍然在自己的权限下决定怎么做。把监视者与后台会话和通知hook搭配起来,就得到了一条只在该惊动人类时才惊动人类的升级链。
3. 汇报型长任务。 在一个会话中启动迁移或长时间的测试运行,然后让它向您实际关注的那个会话汇报。1 状态不再困在一个您早已遗忘的终端里。反过来也行,从监视方发问:“问问我另一个终端里运行的会话,迁移完成了没有”就是一条提示,发现、寻址和措辞都由Claude自行处理。1 自v2.1.236起,连问都可以省了:让监视会话对长任务会话设置notify_when_idle,它会在下次空闲或退出时汇报一次,双方都无需轮询。110 两个会话都需要v2.1.236+,限制则遵循入站控制。每个订阅都有12小时的上限:到时仍无通知,Claude Code会放弃订阅并告诉Claude停止等待。若被监视方设为refuse,该会话会丢弃请求,既不记录也不应答,订阅便在上限到期时无果而终;若发问方设为refuse,Claude Code根本不会订阅。若任一方设为hold,通知会以降级形式到达:被监视会话省略其一行状态,发问会话则只在您的对话记录中显示通知,而不交给Claude。1
4. 无人值守的工作者集群。 无头的claude -p会话同样会绑定收件箱套接字,因此长时间运行的-p工作者可以接收消息,并出现在列表中。8 问题在于:-p会话无法显示审批对话框,所以默认被暂留的消息会一直等到dialogExpiry期限(默认五分钟;dialogExpiry接受60s、5m、10m或never),然后丢弃,并向它能联系到的发送方报告已过期;只有在这个窗口内更改模式或设置,消息才会被投递。1 如果会话结束时仍有消息处于暂留状态,Claude Code会向每一个能联系到的发送方报告这些消息已过期。1 在v2.1.225之前,根本没有任何期限:暂留的消息既无通知也不过期,就那么搁着,而带着暂留消息结束的工作者对发送方只字不提。1 要运行一个无人值守也能接收消息的工作者,启动时在其--settings值中加入crossSessionInbound: "accept":这是按工作者逐个授予的权限,而不是在用户设置中写一个对您运行的每个会话都生效的accept。8 Bare模式的会话完全跳过套接字,始终不可达。8
5. 脚本化收件箱。 低调却强大的一种:因为Claude Code会把CLAUDE_CODE_MESSAGING_SOCKET导出给hook和Bash命令,脚本可以直接向会话自己的收件箱投递消息。6 Claude Code会验证来自自身子进程的消息:在没有显式crossSessionInbound设置生效时,hook或命令向自己所属的会话回发消息可以直接投递,无需任何手续。1 会话自己的提交触发的git hook、它启动的测试包装器、它运行的部署脚本:凡是由会话本身启动的hook或Bash命令,都能把一行上下文回发到那个会话中。Claude Code必须验证投递者确为自己的子进程;当它既无法通过进程证据也无法通过令牌来验证时,就会把这条消息视为不声明任何权限类别的消息,于是绕过类会话会把它暂留等待您批准,而不是直接投递。1 在原生Windows上,连接的第一行必须是携带CLAUDE_CODE_MESSAGING_TOKEN的认证行,否则Claude Code会不读取内容就关闭连接;这个令牌也是Windows验证自身子进程消息的唯一途径。1 在Linux上,进程证据检查在投递进程退出后仍然有效;在macOS上则只在进程仍在运行时有效。在macOS上进程退出之后,以及在Claude Code作为PID 1运行的容器中,Claude Code转而验证那些在认证行中发送了会话导出的CLAUDE_CODE_MESSAGING_TOKEN的子进程。1 沙箱化的命令需要放行该套接字:sandbox.network.allowUnixSockets在macOS上列出套接字路径;而在Linux和WSL 2上,seccomp过滤器无法检查路径,只有sandbox.network.allowAllUnixSockets: true才能放行;如果没有安装这个可选的过滤器,沙箱本来就不会拦截套接字。112
它拒绝成为什么
这些限制都是设计决策,尊重它们能让您免于构建错误的东西。
不是审批通道。 信任模型中的一切都是为了防止一个会话授权另一个会话的行动。这一设计明确排除了任何形如“会话A批准,会话B执行”的工作流。授权永远要经过人。1
不是上下文传输。 消息是一个Claude写给另一个Claude的文本,绝不是对话历史或文件。Anthropic的文档说得很直白:要转移对话,请改为恢复那个会话。1 要摘要,不要倾倒。
不是agent teams。 独立会话之间互发消息属于点对点场景。由Claude生成并监督的协调型团队(结构化协议消息、成员名册、共享任务状态)是agent teams功能,而结构化的团队消息有意只留在团队内部。1 如果您发现自己在跨会话文本之上设计消息协议,那您需要的是agent teams。
不是聊天循环。 Claude Code按发送方对重复消息限速,丢弃短时间内到达的完全相同的重复消息,并把每个会话已接受但未读的消息上限设为50条,因此两个会话之间的消息循环在设计上就会自行枯竭。1 v2.1.236还会在短时间内的突发消息即将超出接收方收件箱容量时预先拒绝后续消息,而不是一边报告已发送、一边被接收方丢弃。10 要构建请求与响应式的交换,而不是对话。
陷阱
隐私变量会静默禁用它。 跨会话消息传递依赖功能标志的评估,而CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC、DISABLE_TELEMETRY、DO_NOT_TRACK或DISABLE_GROWTHBOOK中的任何一个都可能关闭这一评估,连带把消息传递一起悄无声息地关掉。3 诊断方法是/list-agents:如果会话不认识这个命令,说明它完全没有这项功能;如果命令能用但发送的消息始终不到达,那就是范围更窄的原因在起作用:拒绝规则、接收方的入站控制、目标未出现在列表中(Remote Control未连接,或该会话超出了Claude Code读取的页数上限),或者是v2.1.225之前的发送方试图发起跨机器对话。1 从未绑定收件箱的目标不属于静默情况。处于隐私变量之下、bare模式中或容器边界另一侧的会话绝不会出现在/list-agents中,因此向它发送会明确失败,报告为Claude Code找不到的名称;而且自v2.1.234起,SendMessage在无法完整检查您的会话列表时也会明说,而不是把未看到的会话当作不存在。1310 升级后的第一个会话属于延迟绑定,而非缺失:功能标志获取一完成,Claude Code就会绑定收件箱并导出套接字变量,而v2.1.228修复了这个第一会话有时完全没有收件箱就启动的问题。110 真正静默的情况在发送方这边。文档只向同一台机器上的交互式发送方承诺暂留通知及其后续通知、到达时的拒绝通知和丢弃通知,因此跨机器的发送方或-p工作者在这些情况下没有任何承诺的通知。有两种报告确实会发给“each sender it can reach”(它能联系到的每一个发送方):默认暂留消息的过期,以及设置更改导致暂留消息被丢弃时的拒绝。被显式hold设置搁置的消息永不过期,因此也永远不会有过期报告返回。1
平台与提供商的缺口。 原生Windows支持在v2.1.239到来;在此之前只有WSL 2内的Linux可用。19 Anthropic的文档页面把Windows的最低版本定在v2.1.234;发布说明则在v2.1.239才首次宣布。请把v2.1.239当作安全的最低版本。19 同一台电脑上,WSL 2内的会话与原生Windows会话也无法互相到达:它们注册在不同的主目录下,监听的套接字类型也不同。1 在Amazon Bedrock、AWS上的Claude Platform、Google Cloud的Agent Platform或Microsoft Foundry上均不可用。1
单向回复的边缘情况。 向另一台机器上的会话发送回复时,如果回复方会话未连接Remote Control,回复仍会到达,但不带回复地址,因此接收方无法应答。Claude Code在发送时会把这一点告诉Claude,而v2.1.225收紧了寻址:当Claude Code无法检查自己的会话列表时,它绝不会把一个已确认的跨机器接收方换成同名的本地会话。5
无头会话的暂留。 那个莫名其妙不理会消息的-p工作者,几乎总是消息被暂留的问题:没有对话框,就没有投递。给应该接收消息的工作者设置crossSessionInbound: "accept"。8
要点回顾
对于Claude Code的日常用户:
- 运行一次/list-agents,看看您的会话已经能到达哪些会话;用/rename给重要的会话命名,让消息寻址干净利落。Claude Code指南介绍了这项功能所依赖的会话命令和设置。
- 用平实的语言提示发消息(“告诉负责支付的那个会话我们改了什么”),让Claude自己撰写消息内容。1
对于自动化构建者:
- 通过CLAUDE_CODE_MESSAGING_SOCKET从hook和脚本向会话投递消息;在Linux上,自身子进程的消息无需审批即可投递。16
- 在无人值守的-p工作者各自的--settings中设置crossSessionInbound: "accept",而不是全局设置。8
对于团队和安全审查者:
- 这项功能的默认值是正确的:消息不携带任何授权,默认设置会隔离绕过类会话,isolatePeerMachines加上托管设置中的拒绝规则则提供了按机器和全组织范围的关闭开关。1
- 在断定消息传递出了故障之前,先审查那四个隐私环境变量。设为拒绝的会话在列表中和在它自己的/status中看起来毫无二致,所以要检查对该会话生效的设置文件,而不是看它的状态;自v2.1.238起,来自同一台机器上会话的发送也会把拒绝结果报告回来。110
常见问题
Claude Code的跨会话消息传递支持Windows吗?
支持。按发布说明,自v2.1.239起原生支持,工具依旧是SendMessage与ListAgents,只是以命名管道取代了Unix套接字。在此之前,只有WSL 2内的Linux可用。Anthropic的文档页面把Windows的最低版本定在v2.1.234;请把v2.1.239当作安全的最低版本。同一台电脑上,WSL 2内的会话与原生Windows会话仍然无法互相到达。19
一个Claude Code会话可以替另一个会话批准权限提示吗?
不能。消息是信息,绝不是授权。待处理的权限提示会无视发送方会话说的一切,因为只有您才能回答提示。Claude Code指示接收方的Claude,绝不因另一个会话的要求而修改权限设置、CLAUDE.md或任何配置;而消息正文里的/compact不过是八个字符的文字,绝不会被当作命令执行。1
为什么我的其他会话没有出现在/list-agents里?
请先排查隐私相关的环境变量。消息传递依赖功能标志的评估,而CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC、DISABLE_TELEMETRY、DO_NOT_TRACK或DISABLE_GROWTHBOOK中的任何一个都可能关闭这一评估,连带把消息传递一起悄无声息地关掉。以bare模式运行的会话,或位于容器边界另一侧的会话,同样不会出现,因为两个会话只有看到相同的磁盘文件才能互相到达。13
如何让无人值守的claude -p工作者接收消息?
启动时在它的--settings值里加上crossSessionInbound: "accept",这是针对单个工作者的授权,而不是在用户设置里写一个会波及您运行的每一个会话的accept。-p会话会绑定收件箱套接字并出现在列表中,但它无法显示审批对话框,因此默认被暂留的消息会一直等到dialogExpiry期限,然后丢弃。8
我可以把对话历史或文件发送给另一个会话吗?
不能。消息是一个Claude写给另一个Claude的纯文本,绝不包含对话历史、文件或权限。Anthropic的文档说得很直白:要转移对话,请改为恢复那个会话。要摘要,不要倾倒。而如果您发现自己在跨会话文本之上设计消息协议,那您真正需要的是agent teams。1
参考资料
-
Anthropic,“Message your other Claude Code sessions”,Claude Code文档。2026年8月8日访问;2026年8月25日再次核实。 ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩
-
Anthropic,“Tools reference”,Claude Code文档:
ListAgents和SendMessage条目。 ↩ -
Anthropic,“Environment variables”,Claude Code文档:关于
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC、DISABLE_TELEMETRY、DO_NOT_TRACK和DISABLE_GROWTHBOOK的功能标志评估说明。 ↩↩↩↩ -
Anthropic,Claude Code v2.1.224发布说明,2026年8月7日(UTC):“Added cross-session
SendMessage: Claude Code sessions can now message each other, on any of your machines, withListAgentsto discover them (macOS and Linux).” ↩ -
Anthropic,Claude Code v2.1.225发布说明,2026年8月8日(UTC)发布:“SendMessage can now start a conversation with your Remote Control sessions on other machines by name (
ListAgentsshows them asname [ref]), instead of only replying after they message you first.” 同一版本还说明,Claude Code绝不会“when its own list couldn’t be checked”(在无法检查自己的列表时)把已确认的Remote Control接收方换成本机上的同名会话。 ↩↩↩↩↩ -
Anthropic,“Environment variables”,Claude Code文档:
CLAUDE_CODE_MESSAGING_SOCKET在套接字绑定时导出给hook和Bash命令;在启动时已开启消息传递的会话中,它在任何hook运行之前就已绑定;跨会话页面补充说明“includingSessionStart”(包括SessionStart)。 ↩↩↩ -
Anthropic,Claude Code v2.1.222发布说明,2026年8月4日:“Improved auto mode safety: messages sent to other agent sessions via
SendMessageare now evaluated by the permission classifier before dispatch.” 分类器审查适用于auto模式(以及auto分类器审查命令时的plan模式),并非普遍适用。plan模式的条款来自Anthropic,“Permission modes”,Claude Code文档:“The classifier also reviews each message Claude sends to another agent withSendMessage, whether plain text or a structured agent team message, before Claude Code delivers it, both in auto mode and in plan mode while the classifier reviews commands; the send review requires Claude Code v2.1.222 or later.” ↩ -
Anthropic,“Message your other Claude Code sessions: Non-interactive sessions”,Claude Code文档:
-p会话会绑定收件箱套接字并出现在列表中,那里默认被暂留的消息会一直等到dialogExpiry到期,无人值守的投递需要在工作者自己的--settings中设置crossSessionInbound: "accept"。无头模式页面在“Headless mode”一节描述了bare模式。 ↩↩↩↩↩↩ -
Anthropic,Claude Code v2.1.239发布说明,2026年8月21日:“Windows: cross-session messaging is now available, so Claude Code sessions across your machines can message each other with
SendMessageand find each other withListAgents, as on macOS and Linux”;“ListAgentsnow tells a session its own name (the one peers use to message it), andSendMessageto your own name says so instead of "no agent named …"”;“ListAgentsand/list-agentsnow list your live teammates (previously only subagents and other sessions appeared, so a reachable teammate looked absent).” ↩↩↩↩↩↩↩ -
Anthropic,Claude Code发布说明v2.1.228(“Fixed cross-session messaging sometimes starting without an inbox in the first session after install or upgrade”)、v2.1.232(“Type
@in the prompt to mention another Claude session by name; Claude then usesSendMessageto reach that session directly”;“Interactive sessions on one machine now keep unique names: starting or renaming a session to a name another live session already uses gives it aname-word-wordvariant and tells you”;“Added/configrows for "Dialog expiry" and "Messages from your other sessions" (cross-session inbound accept/hold/refuse)”;“Hardened the auto-generated cross-session messaging socket directory on shared/tmp: a pre-planted symlink or another user’s directory is now refused instead of used”)、v2.1.234(“SendMessageandListAgentsnow say when your account’s session list was too long to check completely, instead of treating unseen sessions as absent”)、v2.1.235(“SendMessagenow refuses messages too large for cross-session delivery up front instead of silently dropping them”)、v2.1.236(“Addednotify_when_idleto cross-sessionSendMessage: ask another Claude Code session on this machine to send one notice when it next goes idle — opt-in, one-shot, no polling (macOS and Linux)”;“SendMessagenow refuses further messages to a session up front once a rapid burst would exceed what that session’s inbox accepts, instead of reporting them sent while they were dropped”)以及v2.1.238(拒绝入站与收件箱丢弃的报告)。2026年8月25日对照规范CHANGELOG.md核实。 ↩↩↩↩↩↩↩↩↩↩↩↩ -
Anthropic,“Sessions: Name your sessions”,Claude Code文档。“In three cases Claude Code doesn’t rename the duplicate”(有三种情况Claude Code不会重命名重复项):它不检查AI生成的标题或默认显示名称,不检查“the
--nameof a background or-psession at startup”(后台或-p会话启动时的--name),也无法重命名运行较早版本Claude Code的会话。 ↩↩ -
Anthropic,“Settings reference:
sandbox.network.allowUnixSockets“,Claude Code文档:“List the Unix socket paths sandboxed commands can connect to on macOS. Claude Code ignores this list on Linux and WSL2, where the seccomp filter can’t inspect socket paths; useallowAllUnixSocketsthere instead.”allowAllUnixSockets条目补充说明,在Linux和WSL2上seccomp过滤器会拦截socket(AF_UNIX, ...)调用,这使得该键成为在那里允许Unix套接字的唯一途径。 ↩