ps: 注意 此文curl npx 等涉及下载相关命令大多都需要魔法
Claude Code 省 Token,可以先从两个工具入手:
它们解决的问题不一样。
| 工具 | 省哪部分 Token | 典型场景 |
|---|---|---|
| RTK | 命令输出 | git diff、测试日志、构建日志、搜索结果 |
| Caveman | Claude 回复 | 代码分析、review、commit、短任务回答 |
简单理解:
text
RTK:让 Claude 少看长日志。
Caveman:让 Claude 少说废话。
一、RTK:压缩命令输出
RTK 是一个 CLI proxy。它会在命令输出进入 LLM 上下文前做过滤和压缩。
README 里给出的定位是:单个 Rust 二进制、零依赖,支持 100+ 常见开发命令,目标是把常见命令输出减少 60%-90%。
它主要处理这些内容:
- 目录列表
- 文件读取
- 搜索结果
- Git 状态和 diff
- 测试输出
- 构建和 lint 输出
- Docker / Kubernetes / AWS 等 CLI 输出
1. 安装 RTK
macOS 推荐用 Homebrew:
bash
brew install rtk
Linux / macOS 可以用安装脚本:
bash
curl -fsSL https://raw.githubusercontent.com/rtk-ai/rtk/refs/heads/master/install.sh | sh
也可以用 Cargo 从 GitHub 安装:
bash
cargo install --git https://github.com/rtk-ai/rtk
安装后验证:
bash
rtk --version
rtk gain
2. 接入 Claude Code
给 Claude Code 安装 hook:
bash
rtk init --g
然后重启 Claude Code。
重启后,Claude Code 里通过 Bash 工具执行的命令会被 RTK hook 透明改写。
例如 Claude 触发:
bash
git status
RTK 可能会改写为:
bash
rtk git status
Claude 本身不需要知道这个改写过程。它只会看到压缩后的输出。
3. RTK 的工作方式
RTK README 里把核心策略分成四类:
- Smart Filtering:去掉噪音,比如空白、样板信息、无关行。
- Grouping:把相似结果合并,比如按目录、错误类型分组。
- Truncation:保留关键上下文,裁掉重复内容。
- Deduplication:重复日志折叠成计数。
RTX工作原理: 
所以 RTK 不是简单截断输出,而是按命令类型做结构化压缩。
4. 常用命令
文件和搜索:
bash
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:
bash
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
测试:
bash
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:
bash
rtk lint
rtk tsc
rtk next build
rtk prettier --check .
rtk cargo build
rtk cargo clippy
rtk ruff check
容器和日志:
bash
rtk docker ps
rtk docker images
rtk docker logs <container>
rtk kubectl pods
rtk kubectl logs <pod>
rtk log app.log
统计:
bash
rtk gain
rtk gain --graph
rtk gain --history
rtk gain --daily
rtk discover
rtk session
5. 自动改写的边界
RTK hook 只拦截 Bash 工具调用。
Claude Code 内置的这些工具不会自动经过 RTK:
text
Read
Grep
Glob
如果你希望读取文件或搜索结果也走 RTK,需要让 Claude 使用 shell 命令,或者手动调用:
bash
rtk read src/main.ts
rtk grep "keyword" .
rtk find "*.vue" .
6. Windows 注意事项
RTK 支持 Windows,但原生 Windows 下 hook 自动改写能力有限。
README 推荐在 Windows 上使用 WSL。WSL 里可以获得完整 hook 支持。
原生 Windows 可以这样用:
bash
rtk init -g
rtk cargo test
rtk git status
但命令通常不会像 Linux / macOS / WSL 那样自动透明改写。
7. 什么时候用 RTK?
适合用:
- 测试输出很长
- 构建失败日志很多
git diff很大- 搜索结果很多
- Docker / Kubernetes / AWS 命令输出很吵
不适合只靠 RTK 解决:
- Claude 回复太啰嗦
- Claude 读了太多源码文件
- 需要逐行分析完整日志
如果你必须保留完整日志,可以用:
bash
npm run build 2>&1 | tee /tmp/build.log
然后让 Claude 只看关键片段:
bash
tail -n 120 /tmp/build.log
二、Caveman:压缩 Claude 回复
Caveman 是一个 Claude Code skill / plugin,也支持 Codex、Gemini CLI、Cursor、Windsurf、Cline 等多种 AI 编程工具。
它的核心目标是让 agent 用更短的方式表达同样的技术内容。
README 里的示例很直观:
text
普通表达:解释原因、背景、建议,比较长。
Caveman 表达:直接给根因和修复建议。
它主要省的是输出 Token。
1. 安装 Caveman
一键安装:
bash
curl -fsSL https://raw.githubusercontent.com/JuliusBrussee/caveman/main/install.sh | bash
Windows PowerShell:
powershell
irm https://raw.githubusercontent.com/JuliusBrussee/caveman/main/install.ps1 | iex
Claude Code 手动安装:
bash
claude plugin marketplace add JuliusBrussee/caveman
claude plugin install caveman@caveman
通过 skills 安装:
bash
npx skills add JuliusBrussee/caveman
安装脚本支持一些参数:
| 参数 | 作用 |
|---|---|
--minimal |
只安装插件 / 扩展,不装 hooks、MCP shrink 等额外内容 |
--all |
安装完整配置,并在当前目录写入规则文件 |
--dry-run |
预览,不写文件 |
--only <agent> |
只给指定 agent 安装 |
--force |
强制重新安装 |
--list |
打印支持的 agent 列表 |
2. 开启和关闭
Claude Code 里开启:
text
/caveman
也可以直接用自然语言触发:
text
开启 Caveman 模式,回答尽量短一点。
用更精简的方式回复,少说客套话。
进入省 Token 模式,只保留关键结论。
关闭时可以说:
text
退出 Caveman 模式,恢复正常回答。
恢复正常模式。
这次请完整解释,不要过度压缩。
Codex 里 README 提到使用 $caveman。
3. 压缩强度
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 |
极限文言压缩 |
日常建议:
text
普通编码:/caveman lite
短 review / commit:/caveman full
极限压缩演示:/caveman ultra
复杂设计讨论:normal mode
4. Caveman 技能命令
README 里列了一些常用能力:
text
/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。
5. Caveman 适合什么?
适合:
- 日常 bugfix
- 简短代码分析
- commit message
- PR review
- 改完代码后的验证总结
- 高频 Claude Code 会话
不适合:
- 教程文章
- 复杂架构设计
- 需求澄清
- 需要完整推理过程的排查
核心原则:
text
需要短结论:开 Caveman。
需要完整解释:关 Caveman。
三、RTK 和 Caveman 怎么搭配?
两个工具可以一起用,因为它们优化的是不同阶段。
text
命令执行阶段:RTK 压缩工具输出
Claude 回复阶段:Caveman 压缩最终表达
推荐组合:
bash
brew install rtk
rtk init -g
然后重启 Claude Code,进入会话后:
text
/caveman lite
日常提问可以这样写:
text
只读取和当前任务直接相关的文件。
如果需要跑命令,优先保留关键错误,不贴完整日志。
输出简洁,但不要省略风险和验证结果。
对于短任务:
text
/caveman full
对于复杂排查:
text
normal mode
推荐工作流
text
1. 用 RTK 常驻压缩 Bash 命令输出。
2. 默认开 /caveman lite,减少回复废话。
3. 写 commit、review 时用 /caveman full。
4. 做架构设计、复杂排查时切回 normal mode。
5. 遇到疑难日志,保存原始日志,再只给 Claude 看关键片段。
四、会不会降智?
RTK 一般不会让模型降智,因为它主要去掉命令输出里的噪音。
但它可能漏掉长日志中的细节。排查疑难问题时,建议保留原始日志。
Caveman 也不是减少模型思考,而是减少表达长度。
但 ultra 模式可能太短,不适合复杂任务。
比较稳的原则是:
text
可以省:
- 客套话
- 重复总结
- 长日志噪音
- 无关上下文
不要省:
- 关键需求
- 关键错误
- 关键代码
- 风险说明
五、最终建议
如果你只是想快速省 Token:
bash
brew install rtk
rtk init -g
然后在 Claude Code 里:
text
/caveman lite
这是最推荐的默认组合。
如果你经常让 Claude 跑测试、看 diff、查日志,RTK 的收益会更明显。
如果你觉得 Claude 回答太长、太客套,Caveman 的收益会更明显。
参考资料
- RTK:github.com/rtk-ai/rtk
- Caveman:github.com/JuliusBruss...

