今天凌晨,Anthropic 给 Claude Code 桌面版推了一轮大更新。
按官方的介绍,这段时间他们一直在把桌面版往「并排跑一大堆会话」的方向打磨。现在开会话更快了,活更容易拆给好几个会话一起干,而且每个会话在干什么,随时都能看到。

Claude Code 团队的 Thariq Shihipar 也发布了公告:
Claude Code 桌面版现在对自己的能力、以及该怎么和你配合,有了强得多的认知,比如会自己拆出子会话。我几乎把它看成一个 v2,为了把它做好,里面下了太多细节上的功夫。

Claude Code 的开发者自己说几乎是个 v2,看来还是很有点分量了。
同组的 Lydia Hallie 也发帖建议说,如果你有段时间没打开过桌面版,或者平时主要用 CLI,那一定要回来再试一次。
这次最核心的变化,是嵌套会话(nested sessions)。
当你让 Claude 并行处理几件事时,它会给每件事单独开一个嵌套会话,各自读代码、改文件、跑测试,干完之后再把结果汇报回主会话,主线程始终保持干净可读。

官方演示里,Claude 在修商品网格的布局抖动时,顺带发现了三处还没处理的地方:购物车缩略图没写宽高、首屏以下的图片没做懒加载、结账表单缺 label,于是直接列出了 3 个建议任务。

点一下「Start all」,三个子会话便同时开工,主会话里依次收到三条「Received message from ……」,最后汇总成一句:三个后续任务都已完成。

子会话中间的试错和大段的终端输出,都留在它们自己的会话里,不会把主对话刷屏。
某个子会话卡住了,或者你想看细节,点进去便是一个完整的会话;侧边栏里,这几个子会话也会挂在发起它们的父会话下面。
Thariq 说的「对自身能力的认知」,大概指的正是这一点。还有哪些活值得做、能拆成几份,Claude 会自己列出来,你点一下,它便自己把会话开好,不用再手动去开三个窗口。
另外按文档的说法,Claude 现在还能看到你的其他会话(默认是最近活跃的 20 个),可以列出、读取、发消息、重命名或者归档。
会话和会话之间,算是能互相通信对话了。
会话一多,新的问题就来了:到底该看哪个呢?
几个会话同时开着,有的还在干活,有的其实早就停在那儿,就等你回一句话……
新版侧边栏把会话按状态分成了三组:Needs input(等你介入)、Working(进行中)、Completed(已完成),哪个在等你,一眼就能看出来。

点进某个会话,有一份实时更新的待办清单,跟着 Claude 的计划一项项打勾;轮到你回应的时候,会有一张回顾卡片把这一轮做了什么概括给你,几秒钟就能接上进度。
会话在后台跑完,桌面版会发系统通知;按住 Cmd 点侧边栏里的会话,还能左右分屏,同时看两个。
并行跑 Agent,瓶颈早就不在模型那边,而在人的注意力上了。
Agent 替你省下来的那点等待时间,转头又花在了来回切窗口、翻聊天记录上……这一版桌面端的大部分改动,其实都是冲着这件事去的。
开工前的准备,这次也有重新进行了开发。
新建会话的界面,把最近用过的文件夹直接摆在了正中间,点一下就能从上次中断的地方接着干。

更实用的是新加的「环境」。
你可以把几个文件夹、一台 SSH 主机或者云端,保存成一套命名好的环境,以后便直接在这套环境里开会话。(非常适合现在将要登机的我……)

演示里新建环境的弹窗分成 Local、Cloud、SSH、Remote Control 四个标签页,Local 下一次加进了 storefront-web、payments-api、design-system 三个仓库,还能给这套环境单独配环境变量。

环境里的每个文件夹,还可以单独决定开不开 worktree,或者指定分支。

几个会话同时改同一个仓库时,各自在独立的 Git worktree 里干活,互不覆盖。
worktree 默认放在项目根目录的 .claude/worktrees/ 下;.env 这类被 gitignore 的文件,要在 .worktreeinclude 里声明一下,才会被复制进新的 worktree(不然新会话一跑就缺配置……)。
另外两个改动看着小,却很可能是日常用得最多的。
第一个是主动跟进。Claude 干活的过程中,如果发现了超出当前任务范围、又值得处理的事,会弹出一张卡片。
你可以选「Do it here」在当前会话里顺带处理,也可以点「Start」,一键把它作为独立会话跑起来,当前会话照常继续。

输入框空着的时候,它还会用灰字提示下一步可以做什么,按 Tab 或右方向键就能采纳。
需要注意的是,生成这些提示要额外发一次后台请求,会计入套餐用量,不想要可以在 Settings > Claude Code > Sessions 里把 Prompt suggestions 关掉。
第二个是 /btw,取自 by the way。

主会话正跑着,你突然想问一句「这个 4:5 的兜底比例是干嘛用的」,输入 /btw 或者按 Cmd+;(Windows 上是 Ctrl+;),就会在旁边单独开一个标签页来问。
旁路对话能读到主线程到目前为止的全部内容,不用重新交代背景;但它不会往主对话里写回任何东西,主会话也不会因此停下来。

只是旁路对话不会存到磁盘上,关掉 App 就找不回来了,问出来的重要结论,记得自己另存一份。
这两天,Lydia Hallie 还介绍了 Claude Code 新加的空闲压缩(idle compaction)。
Claude Code 的提示词缓存,有效期大约是一小时。
以前一个长会话放着不管,等你回来再发消息,整段对话都要重新处理一遍,用量也得跟着再算一遍。
现在,超过 200K token 的会话如果闲置约 54 分钟,Claude Code 会赶在缓存过期前,自动把它压缩成一份摘要,回来继续时只需重新处理这份摘要。
代价 Lydia 自己也提到,之后 Claude 是接着摘要往下干,而不是带着完整的上下文。
不想要的话,在 settings.json 里设置 "idleCompaction": false 就能关掉;触发门槛可以用环境变量 CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS 来改,默认 200K。
严格来说,这一项不算桌面版的更新:v2.1.299 的更新日志里,它写的是加在终端版上的。
但会话一拆便是好几个,每个都挂着一大段上下文,并行得越多,额度也就烧得越快……空闲压缩,多少算是给额度兜了个底。
当然,这么大的改版,有叫好的自然也有吐槽的。
侧边栏改成按父会话嵌套之后,父会话一归档,子会话就浮到了顶层,相关的会话被拆散在两处,原来的「Group by」分组选项也没了。
GitHub 上已经有人为此开了 issue,说在桌面版的更新日志里找不到这些改动,应用里也没有任何提示,要求补上说明,再加一个切回扁平列表的开关。
另一处是上下文用量,现在成了这样:

以前鼠标悬停在用量圆环上就能看,现在挪进了侧边栏,得把侧边栏打开才行,竖屏、分屏和窄窗口的用户首先就不太好受。
对一个主打多会话并行的版本来说,上下文还剩多少,本该是最容易看到的那个数字。
至于 CLI 党要不要搬家……我觉得,是时候认真评估下了。这是我的 CCD 用量(忽略我的 Peak hour):

◇ ◆ ◇
官方推文:https://x.com/ClaudeDevs/status/2110445844675838148
