5 个 Claude Code 命令,把我的上下文切换砍掉一半
经验丰富的终端开发者每天都在用的 Claude Code 隐藏斜杠命令 —— /statusline、!、@、/add-dir、/btw、/branch,各自省下什么、/add-dir 在规模化时会在哪里失效、以及一个会毁掉肌肉记忆的 Codex CLI 陷阱。
如果你一直在终端窗口之间粘贴 cd /path/other-repo && claude,你就是在为上下文支付溢价。Claude Code 内置了五个经验丰富的开发者每天都在用的命令 —— 入门教程里一个都没有,全在没人读的文档里。其中最短的那个,每个任务大约能省三分钟。一天五个任务。你自己算。
这篇文章整理了一位资深开发者上周发到 r/ClaudeAI 的清单 —— 1,000+ 赞不是没有原因的 —— 并补上那个帖子跳过的部分:每个命令在哪里停止规模化,以及该用什么替代。 然后是 Codex CLI 部分,因为如果你在多个代理之间切换上下文,那里的斜杠语义会把你烧到。
1. /statusline —— 把”这是哪个模型?“的答案钉在屏幕上
Claude Code 里 ROI 最高的单一命令。默认情况下,终端不会告诉你这个会话的任何信息 —— 哪个模型、哪个分支、还剩多少上下文、你是不是用着 Pro 套餐却因为当天 Sonnet 配额烧光而被降级到 Haiku。你只能靠输入一个问题、看回复质量、然后猜。
/statusline 解决这个问题。跑一次,Claude 问你想显示什么,写一个小脚本实时更新终端底部,搞定。经验丰富的开发者会放上去的字段:
- 模型 ——
sonnet-4.6vshaiku-4.5vsopus-4.7。在会自动降级的套餐上尤其关键。 - 分支 —— cwd 的 git 分支。当你不小心把 Claude 指向错误的仓库时它会告诉你。
- 上下文 % —— 上下文窗口的填满程度。你需要这个信号在代理悄悄开始丢掉早期指令之前进行压缩或
/clear。 - 当前花费 —— 本次会话的累计 token 开销。
它在哪里失效: statusline 是按机器配置的,不是按项目。如果你在多台笔电之间切换,就得重新配置。把配置存到你的 dotfiles 仓库里,这样在新机器上 /statusline 就是 setup.sh 里的一行。
它省下什么: 每个会话大约 90 秒,省掉那个”我现在在哪个模型?“的诊断 —— 否则你得输入 what model are you 并烧掉 4k token。
2. ! —— 不离开聊天就跑 shell 命令
在一行前面加 !,Claude Code 就把它当 shell 命令跑。输出留在对话里,所以代理的下一条回复可以直接引用,不用你粘贴任何东西。
> ! npm test
... (real test output appears in chat)
> What's broken in the auth test?
代理现在看到的是真实的失败,不是你转述的版本。没有复制粘贴。没有”让我再看一下输出”。
两个高级用法:
- 当
!命令运行时按Ctrl+B把它送到后台。开一个长时间运行的npm run e2e,在同一个会话里继续迭代。 - 和
@(下一条提示)组合用 git diff 工作流:! git diff @src/orders/order_service.py—— diff 落到聊天里,代理就此推理,你在同一轮接受它的修复。
它在哪里失效: 代理把完整的 stdout 读进上下文。一次 5 万行的 npm install 会啃光你的上下文窗口。用 ! npm install 2>&1 | tail -20 或者管道到文件然后用 @ 引用那个文件。
它省下什么: 取决于工作流,但中位数的开发者每个代理会话大约跑 30 次快速 shell 检查。每次复制粘贴约 10 秒,加起来五分钟。复利。
3. @filename —— 少打字,精确指向文件
输入 @ 后跟文件名的一部分。Claude Code 显示一个模糊匹配的路径选择器。Tab 自动补全。文件被直接注入上下文 —— 没有代理搜索,没有 grep 调用,没有在文件发现上浪费 token。
最大的赢面不是速度,而是精确度。当你输入 @order_service,代理拿到的就是那个文件。当你说”看一下 order service”,代理会搜索你的仓库,常常会 grep 所有包含 “order” 这个词的内容并读 8 个文件以确保万无一失。其中一个是你真正想要的文件。另外七个让你付了 token。
给那些痴迷成本计算的人:在一个中等规模的仓库里,一次模糊的文件引用可能因为不必要的读取花掉约 $0.30。@ 是免费的。
它在哪里失效: 跨仓库不工作。如果你的认证代码在 ~/work/auth-svc/ 里,而你坐在 ~/work/api/ 里,@auth_service.py 不会自动补全。这就把我们带到下一个命令。
4. /add-dir —— 当你的项目其实是三个项目
/add-dir <path> 把另一个目录挂到当前会话的工作上下文里。现在 @ 自动补全在两个目录上都工作。在你的”项目”是一个前端仓库、一个后端仓库、再加一个共享类型仓库时很有用 —— 这是任何超过十名工程师的公司的标准形态。
Marmelab 那个帖子把这个叫作”对于跨多个仓库拆分的项目堪称完美”。在三个仓库时确实完美。到五个就开始裂。
/add-dir 在规模化时在哪里失效:
- 每加一个目录都会膨胀 Claude 要考虑的文件树。三个仓库时,搜索还很紧凑。到七个,代理开始命中无关文件 —— 你的
infra/、tools/、废弃的服务。Token 成本上升。延迟上升。幻觉风险上升。 /add-dir是按会话的。每次对话你都要重新添加相同的目录。烦到大多数开发者就直接放弃了,手动粘贴文件,完全失去多仓库视角。- 没有语义感知。
/add-dir让文件可达;它不告诉代理哪些文件实际被依赖。代理还是 grep。文件还是回来。大部分是噪音。
解法不是更多的 /add-dir。解法是一个依赖图,代理取代枚举文件去查询它。这就是我们在 Coograph 构建的东西 —— 把相关仓库克隆为兄弟目录,运行 /coograph-init,代理的 get_minimal_context() 调用就返回一个任务真正重要的 3–5 个文件,包括跨仓库边界的。每个会话不用重新配置 /add-dir。没有文件树膨胀。在已提交的基准测试中测得 80% 的 token 减少。
如果你在三个仓库,/add-dir 没问题。到七个,你需要一张图。
5. /btw 和 /branch —— 不丢失位置的旁路对话
两个命令,一个工作流问题:你正在一次重构的深处,想问 Claude 一些题外的东西 —— “嘿,这个模式在 Python 里地道的写法是什么?” —— 又不想炸掉代理的工作状态。
/btw <question>—— Claude 回答这个旁路问题,然后回到之前的任务。用于一次性查找。/branch—— 派生出一个新会话,继承当前上下文但允许你分叉。用于较长的”等等,让我探索这个方向一会儿”绕道。
/branch 的隐藏价值:你可以在并行中比较两种实现方式,又不丢失原始对话。派生一个分支,让 Claude 实现方式 B,把输出 A/B 并排对比,杀掉分支,回到原始会话拿胜者。
它在哪里失效: /branch 会话不共享文件变更。如果你让分支编辑了 src/orders/order_service.py,然后回到主会话,主会话毫不知情。这样很容易丢工作。把 /branch 当作只读,或者在分支前先提交。
加餐:Codex CLI 的陷阱
如果你在 Claude Code 和 OpenAI 的 Codex CLI 之间切换,这里有个会在第一天就绊倒你的耙子。
在 Claude Code 里,/foo 跑名为 foo 的斜杠命令 —— 包括你的自定义命令。在 Codex CLI 里,/ 是为内置命令保留的。 自定义技能不能用前导斜杠调用。你要么按名字调用(coograph-init 而不是 /coograph-init),要么让它们通过描述自动触发(Codex 偏好的模式)。
每个 Coograph 用户第一次在 Codex CLI 里试的时候都会被这个绊倒。技能装好了,文件在那里,斜杠自动补全显示什么都没有,你就假设它坏了。它没坏 —— 输入 coograph-init 不要斜杠,它就跑起来。
同样的技能,两种不同的调用方式。值得在你的 statusline 里留个 30 秒的心理标记。
经验丰富的开发者实际上用这些做什么
把模式串起来:
/statusline装好的时候设一次。忘了它。!成为跑任何东西的默认方式。别再 alt-tab 了。@是你的动词,表示”看这个文件” —— 不是搜索查询,是显式指针。/add-dir到 ~3 个仓库都还行。再多,加一张依赖图,别再和文件树死磕。/btw用于单行题外。/branch用于并行实验,但先提交。- Codex CLI:自定义技能去掉斜杠。
这些没有一个是奇技淫巧。Marmelab 那个帖子拿到 1k 赞是因为评论区全是开发者在那里说*“等等,这是个命令?”* 这些东西一直藏着,是因为 Claude Code 出厂自带一个低调的入门 —— 你可以从来没发现 /statusline 也能高效产出,所以大多数开发者就真的从来没发现。
复利模式:上面每个命令都在每个任务上省下摩擦。摩擦是那种你修好之前都看不见的成本。一天五个任务,一年 250 个工作日 —— 即使每个任务只省 30 秒,那也是 10 小时。终端开发者不是更好的工程师。他们只是读了文档。
想要更少命令?
给 Coograph 的诚实推销:上面的工作流大部分是给”让 Claude Code 看到正确文件”打的水管。/add-dir、@、一半的 ! —— 它们存在是因为代理对你的代码没有结构性视图。一张依赖图把水管移除。代理调用一次 get_minimal_context() 就拿到相关文件,包括跨仓库的。每个会话不用 /add-dir。不用 @ 在自动补全里钓正确路径。
Coograph 是 MIT 许可、永久免费。五分钟安装。如果你一天里 /add-dir 输入过两次以上,你会在第一个任务里就感受到差别。
立即开始 · 基准测试 · 在 GitHub 查看
这和只是多记几个斜杠命令有什么不同?
斜杠命令给你更好的摩擦。一张依赖图把摩擦完全移除。如果你用 Claude Code 的第一天是 @src/orders/... 把它指到正确文件,到第一百天应该是代理已经知道哪个文件重要。这就是 get_minimal_context() 返回的 —— 也是 /add-dir 做不到的,因为它是把文件加进搜索空间,而不是收窄它。
为什么 Codex CLI 不直接支持相同的斜杠语法?
Codex CLI 把 / 命名空间保留给 OpenAI 的内置命令。自定义技能注册它们的名字和一段描述;当描述匹配用户意图时模型自动调用它们。这是不同的设计选择 —— 更不显式,更声明式 —— 你只能接受。实用的绕过办法是用清晰、无歧义的技能描述,让自动触发可靠地触发;并且在需要显式调用时输入 coograph-init(不带斜杠)。
/branch 会额外花钱吗?
每个 /branch 都是一个新会话,所以会 —— 它会承担自己的上下文窗口加载。如果主会话已经 60% 满,分支会把那一大堆 token 复制到新会话里。对快速实验便宜,对长时间并行运行昂贵。在重的会话上分支前先看一眼你 /statusline 上的上下文 %。
削减你的 AI 编程账单 30–80%。Coograph 采用 MIT 许可、永久免费。Pro 提供定制服务。