平时做技术实践时,很多问题不是概念不会,而是细节没串起来。拿“一文分享Claude Code中省Token的小妙招”来说,它看着像小点,放到项目里常会牵出环境、配置、兼容性和维护成本。下面按实际使用顺序,把思路、关键写法和容易踩坑的地方讲清楚,方便你直接对照操作。
Claude Code 省 Token,可以先从两个工具入手:
RTK:压缩命令输出,减少 Bash 工具调用带来的输入 Token。

Caveman:压缩 Claude 的回复,减少输出 Token。

它们解决的问题不一样。
| 工具 | 省哪部分 Token | 典型场景 |
|---|---|---|
| RTK | 命令输出 | git diff、测试日志、构建日志、搜索结果 |
| Caveman | Claude 回复 | 代码分析、review、commit、短任务回答 |
轻松理解:
落到代码里,RTK 是一个 CLI proxy。它会在命令输出进入 LLM 上下文前做过滤和压缩。
实际处理时,README 里给出的定位是:单个 Rust 二进制、零依赖,兼容 100+ 常用开发命令,目标是把常用命令输出减少 60%-90%。
它主要处理这些内容:
macOS 建议用 Homebrew:
brew install rtk
Linux / macOS 可以用安装脚本:
curl -fsSL https://raw.githubusercontent.com/rtk-ai/rtk/refs/heads/master/install.sh | sh
也可以用 Cargo 从 GitHub 安装:
cargo install --git https://github.com/rtk-ai/rtk
安装后验证:
rtk --version rtk gain
给 Claude Code 安装 hook:
rtk init --g
然后重启 Claude Code。
结合项目来看,重启后,Claude Code 里借助 Bash 工具执行的命令会被 RTK hook 透明改写。
比如 Claude 触发:
git status
RTK 可能会改写为:
rtk git status
Claude 本身不需知道这个改写过程。它只会看到压缩后的输出。
RTK README 里把核心策略分成四类:
RTX工作原理:

所以 RTK 不是轻松截断输出,而是按命令类型做结构化压缩。
文件和搜索:
rtk ls . rtk read file.rs rtk read file.rs -l aggressive rtk smart file.rs rtk find "*.rs" . rtk grep "pattern" . rtk diff file1 file2
Git:
rtk git status rtk git log -n 10 rtk git diff rtk git add rtk git commit -m "msg" rtk git push rtk git pull
测试:
rtk jest rtk vitest rtk playwright test rtk pytest rtk go test rtk cargo test rtk test npm test rtk err npm run build
构建和 lint:
rtk lint rtk tsc rtk next build rtk prettier --check . rtk cargo build rtk cargo clippy rtk ruff check
容器和日志:
rtk docker ps rtk docker images rtk docker logs <container> rtk kubectl pods rtk kubectl logs <pod> rtk log app.log
统计:
rtk gain rtk gain --graph rtk gain --history rtk gain --daily rtk discover rtk session
RTK hook 只拦截 Bash 工具调用。
Claude Code 内置的这些工具不会自动经过 RTK:
Read Grep Glob
从实现思路看,若你希望读取文件或搜索结果也走 RTK,需让 Claude 采用 shell 命令,或者手动调用:
rtk read src/main.ts rtk grep "keyword" . rtk find "*.vue" .
在这个场景下,RTK 兼容 Windows,但原生 Windows 下 hook 自动改写能力有限。
落到代码里,README 建议在 Windows 上采用 WSL。WSL 里可以获得完整 hook 兼容。
原生 Windows 可以这样用:
rtk init -g rtk cargo test rtk git status
结合项目来看,但命令通常不会像 Linux / macOS / WSL 那样自动透明改写。
适合用:
git diff 很大不适合只靠 RTK 解决:
如果你必须保留完整日志,可以用:
npm run build 2>&1 | tee /tmp/build.log
然后让 Claude 只看关键片段:
tail -n 120 /tmp/build.log
落到代码里,Caveman 是一个 Claude Code skill / plugin,也兼容 Codex、Gemini CLI、Cursor、Windsurf、Cline 等多种 AI 编程工具。
它的核心目标是让 agent 用更短的方式表达同样的技术内容。
README 里的示例很直观:
它主要省的是输出 Token。
一键安装:
curl -fsSL https://raw.githubusercontent.com/JuliusBrussee/caveman/main/install.sh | bash
Windows PowerShell:
irm https://raw.githubusercontent.com/JuliusBrussee/caveman/main/install.ps1 | iex
Claude Code 手动安装:
claude plugin marketplace add JuliusBrussee/caveman claude plugin install caveman@caveman
借助 skills 安装:
npx skills add JuliusBrussee/caveman
安装脚本兼容一些参数:
| 参数 | 作用 |
|---|---|
--minimal | 从实现思路看,只安装插件 / 扩展,不装 hooks、MCP shrink 等额外内容 |
--all | 安装完整设置,并在当前目录写入规则文件 |
--dry-run | 预览,不写文件 |
--only <agent> | 只给指定 agent 安装 |
--force | 强制重新安装 |
--list | 打印兼容的 agent 列表 |
Claude Code 里开启:
/caveman
也可以直接用自然语言触发:
开启 Caveman 模式,回答尽量短一点。 用更精简的方式回复,少说客套话。 进入省 Token 模式,只保留关键结论。
关闭时可以说:
退出 Caveman 模式,恢复正常回答。 恢复正常模式。 这次请完整解释,不要过度压缩。
落到代码里,Codex 里 README 提到采用 $caveman。
Caveman 有几档模式:
| 模式 | 触发方式 | 说明 |
|---|---|---|
| Lite | /caveman lite | 去掉填充词,保留正常语法 |
| Full | /caveman full | 默认 caveman 风格,更短,句子更碎 |
| Ultra | /caveman ultra | 最大压缩,类似电保风格 |
README 还提供了文言文模式:
| 模式 | 触发方式 | 说明 |
|---|---|---|
| Wenyan-Lite | /caveman wenyan-lite | 半文言,仍保留可读性 |
| Wenyan-Full | /caveman wenyan | 更完整的文言压缩 |
| Wenyan-Ultra | /caveman wenyan-ultra | 极限文言压缩 |
日常建议:
普通编码:/caveman lite 短 review / commit:/caveman full 极限压缩演示:/caveman ultra 复杂设计讨论:normal mode
README 里列了一些常用能力:
/caveman-commit /caveman-review /caveman-help /caveman-stats /caveman:compress <file>
用途大概是:
| 命令 | 用途 |
|---|---|
/caveman-commit | 结合项目来看,生成简短 commit message,偏 Conventional Commits 风格 |
/caveman-review | 生成一行式 PR review 评论 |
/caveman-help | 查看模式、技能、命令 |
/caveman-stats | 查看 Claude Code 会话 token 采用和估算节省 |
/caveman:compress <file> | 压缩记忆文件,比如 CLAUDE.md |
/caveman:compress <file> 会把文件改写成更短格式,同时保留备份。适合压缩长期会被自动加载的记忆文件,但不要直接拿它压缩重要规范文档,最好先 review diff。
适合:
不适合:
核心原则:
需要短结论:开 Caveman。 需要完整解释:关 Caveman。
两个工具可以一起用,因为它们优化的是不同阶段。
命令执行阶段:RTK 压缩工具输出 Claude 回复阶段:Caveman 压缩最终表达
建议组合:
brew install rtk rtk init -g
然后重启 Claude Code,进入会话后:
/caveman lite
日常提问可以这样写:
只读取和当前任务直接相关的文件。 如果需要跑命令,优先保留关键错误,不贴完整日志。 输出简洁,但不要省略风险和验证结果。
对于短任务:
/caveman full
对于复杂排查:
normal mode
建议工作流
1. 用 RTK 常驻压缩 Bash 命令输出。
2. 默认开 /caveman lite,减少回复废话。
3. 写 commit、review 时用 /caveman full。
4. 做架构设计、复杂排查时切回 normal mode。
5. 遇到疑难日志,保存原始日志,再只给 Claude 看关键片段。
RTK 一般不会让模型降智,因为它主要去掉命令输出里的噪音。
但它可能漏掉长日志中的细节。排查疑难问题时,建议保留原始日志。
Caveman 也不是减少模型思考,而是减少表达长度。
但 ultra 模式可能太短,不适合复杂任务。
比较稳的原则是:
可以省:
不要省:
如果你只是想更快省 Token:
brew install rtk rtk init -g
然后在 Claude Code 里:
/caveman lite
这是最建议的默认组合。
实际处理时,若你经常让 Claude 跑测试、看 diff、查日志,RTK 的收益会更明显。
结合项目来看,若你觉得 Claude 回答太长、太客套,Caveman 的收益会更明显。
结合项目来看,总的来说,Claude这部分内容适合结合实际项目边做边理解。先抓住核心思路,再逐步补上细节和边界处理,最后效果会更稳定,也更容易复用。