先问一个问题:为什么「新开窗口」这么贵?
因为 Claude 是无状态的。每一轮对话,整段历史都要重新发给模型一次。你以为的「记住了」,其实是每次都把前面所有内容重放一遍。
那为什么重放不会贵到离谱?因为有缓存。历史前缀一旦被缓存,命中一次就能省下约 90% 的成本(默认 TTL 1 小时)。所以管理 context 的本质,不是管理「对话」,而是管理这块 cache——前缀还在缓存里,就接着用;一旦清空,下一次就得花全价重新喂一遍。
想通了这一点,你就会发现大多数人只会用 /clear 一键清空重来,其实是在反复支付全价。Claude Code 自带的一整套 context 命令,远比这丰富。
Claude Code 自带的 context 命令手册
先把官方这套工具补齐,再谈怎么把它用得更顺。
临时旁路提问:
/btw <问题>:临时插一个旁路问题,答案照常给你,但不写进对话历史,缓存全命中。它是唯一一个可以在 prompt 处理过程中发起额外会话的命令。
接续已有会话:
--continue(-c):接当前目录最近那场对话往下聊,前缀原样复用。趁缓存还热接上,关机重启第二天也能恢复。--resume(-r):列出目录里所有历史会话挑一个,或在会话里打/resume选。
三条「岔路」命令(重点):
/branch [名字]:当场给对话拉一个分支,把你切进去,原会话留在/resume里。/fork <一句话>:派一个后台分身带着全部上下文去办这一件事,干完把结果带回,你不进去。--fork-session:关键开关。单用--continue或--resume是接着原会话继续写;加上它,Claude 会把到此为止的历史复制成一场全新会话,原会话一字不动,新分支从分叉点岔开。
回退、压缩、导出:
/rewind(输入框空着连按两下 Esc 也行):把对话、代码、或两者一起倒回某个时间点。因为是 cache 前缀匹配,只要还在 TTL 内,缓存依旧有效。/compact:压缩过大的上下文。/export:把当前对话下载成纯文本,分享或留档用。/clear:清空对话,旧的存进/resume。
原生 fork 的问题:能岔,但不顺手
/branch、/fork、--fork-session 看起来已经覆盖了「分叉」这件事,但真用起来你会发现哪哪都别扭:得自己开窗、自己把那串命令敲全、自己起名,每岔一支都得重来一遍。没有任何一个能替你自动开出一场「并排的、能多轮聊的」新会话。
用过 Codex 那个 app 的人会懂那种顺滑:点一下,立刻并排多出一场带着同样上下文的独立会话,直接进去开干。Claude Code 的终端里偏偏少了这关键的一下。
于是有了 branchnew:在会话边上敲一下,终端往右一裂,右边那格就是这场对话的一个 fork。底层是 claude --continue --fork-session——所以分叉那一刻不重放历史,整段上下文 100% 命中缓存,几乎零成本。从此你的两条线各跑各的,左边主线你碰都没碰。
安装:一个 prompt 搞定
最省事的办法:把仓库链接丢给 Claude Code,让它照着 README 帮你装好 branchnew 命令和 /branchnew 斜杠命令,它还会问你要不要把 ⌘F 热键一起装上。仓库在 GitHub 上搜 branchnew 即可。
装好后,在会话里直接打 /branchnew,终端往右一裂,右边那格自动接上 claude --continue --fork-session——开窗、接上下文、起名全替你干了。它替你做的就是三件事:自动向右分屏、自动接上下文、自动起名。
它能解决哪些真实场景?
- 试错不毁主线:想试个更狠的重构,分一支去试,成了把结论搬回来,砸了直接关窗,左边那条线毫不知情。像官方的 fork,但能多轮对话、你全程在场。
- 岔路顺手问:干到一半冒出个问题,分一支过去问,主线纹丝不动。
- 长任务别干等:主窗口跑着慢活,分一支带同样上下文先开下一块,两边并行。
这几个场景的共同点是:缓存完全复用,攒下的上下文一次都不用重讲,也就不需要所谓的 handoff。
进阶:⌘F 一键 fork
前面提过,除了 /btw,其它斜杠命令在 Claude 正跑着的时候基本插不上手。所以这里借了 iTerm2 的能力加了个 ⌘F:一键 fork 当前这格里那条确切的会话,精确到 session id,分出来的支再往下分也不会串台。安装时勾选 ⌘F 热键即可(跟着提示开一下 iTerm2 的 Python API)。
用 Ghostty、Codex CLI 或别的终端、别的 agent?目前还没原生适配,但脚本很短、没写死任何个人路径,欢迎 fork 过去改成顺手的样子,改好提个 PR。
把对话从直线变成一棵树
当你开始把上下文当缓存来管,你和 Claude 的对话就从一条直线,变成一棵能接、能岔、能倒、能存的树。/btw 给你旁路,--fork-session 给你分支,/rewind 给你回退,branchnew 把分支这一下做成了真正顺手的并排窗口。
说到底,branchnew 这一下本该是官方的 branch/fork 自己就该做到的。趁它还没内置,先装上爽着——等哪天官方把这功能补进去,你也能淡淡说一句:这玩意我早用上了。
那么轮到你了:下次卡在两条路之间、不知道走哪条的那场对话,你会先分一支出去试哪一条?