用 Claude Code 写代码的时候,我总觉得它在"浪费粮食"
一个 git status 就要 2000 tokens,=cargo test= 更是能飙到 25000。这些命令的默认输出确实详细,但大部分时候我只需要知道"改了哪些文件"或"测试有没有通过",不需要看那些花里胡哨的边框和进度条。
之前想过在 CLAUDE.md 里写一堆规则,让 Claude 主动用 --porcelain=、–oneline= 这些精简标志。但说实话,这有点考验 LLM 的"记性",有时候它记得,有时候忘,挺不靠谱。
后来发现了 RTK
RTK 这个工具的想法很简单:在命令执行前偷偷替换掉。你输入 git status=,它背后实际跑的是 =rtk git status —— 也就是带 --porcelain 的版本。关键是这一切对 Claude 来说完全透明,它根本不知道自己被"骗"了。
安装倒也省事:
brew install rtk
rtk init --global重启 Claude Code 后就自动生效了。它会往你的 ~/.claude/settings.json 里塞一个 PreToolUse hook,每次 bash 命令执行前先过一遍 rtk 的过滤逻辑。
效果怎么样?
官方给的数据是 30 分钟开发会话能省 80% token,从 118000 降到 23900。我自己的使用数据是 10 条命令省了 48%,虽然没那么夸张,但也不错。开销方面,平均每条命令多花 27 毫秒,基本感觉不到。
支持的工具还挺全的:git 系列、cargo test/pytest 这类测试框架、tsc/webpack 之类的构建工具,甚至 docker 和 kubectl 也能处理。=rtk gain= 可以看历史统计,挺有意思的。
相比手动加标志的好处
最大的优点是"稳定可靠"。hook 机制写死在配置文件里,不依赖 LLM 的"心情"或"记忆"。而且它用的是工具自带的精简选项,比如 --porcelain=、–oneline=,不会丢失信息。
这个思路其实和 Claude Code 官方的 Issue #32311 不谋而合:Use compact output flags for common Bash commands。不过官方还在讨论阶段,RTK 已经可以用了。
如果你也在用 Claude Code,又不想每个月 token 账单吓死人,可以试试。至少对我来说,看着 rtk gain 里节省的 token 数量,心理上舒服不少。