你有没有看过AI编程工具的账单明细------一次让Claude Code跑测试,光pytest的输出就吃掉几千token,而这上千行里AI真正需要的只有"哪个用例挂了"。一次对话下来,token像流水一样冲进下水道。
GitHub上有个Rust写的小工具专门治这个:rtk(Rust Token Killer),84.8K星、还在日增,拦截你AI助手里所有shell命令的输出,压缩60%-90%再送进模型上下文。零依赖,单个二进制文件,开销不到10ms。
中文教程目前基本空白,这篇带你从零装好。以下所有数据来自2026-10-29的真实安装实测,不是抄README。
一、rtk是干什么的
一句话:shell命令输出的"压缩代理"。
原理:AI编程助手(Claude Code / Codex / OpenCode等)执行bash命令时,rtk在中间拦一道,把输出压缩成AI真正需要的部分。支持100+常用命令,AI全程无感。
核心命令一览(rtk --help实测输出,v1.1.0):ls / tree / read / git / gh / psql / docker / kubectl / grep / rg / diff / log / err / test / json / deps / env / find / wc / aws / dotnet / smart / gain / cc-economics......40+个。
两个宝藏命令别的教程没提过:
rtk gain:全局省token统计,装完跑这个看战绩rtk cc-economics:直接对比你Claude Code的花费vs rtk省下的钱
二、安装(Linux实测版,5分钟)
先说清三个版本,别下错(Release页有三种包,新手第一坑):
rtk:主版,功能全rtk-oss:纯Apache 2.0开源版(引擎功能有裁剪)rtk-proxy:守护进程版
Linux(x86_64,推荐musl静态版,不挑glibc):
bash
# 1. 下载(v1.1.0,2026-10-25发布)
curl -sL -o rtk.tar.gz \
https://github.com/rtk-ai/rtk/releases/download/v1.1.0/rtk-x86_64-unknown-linux-musl.tar.gz
# 2. 校验(强烈建议,别跳过------见踩坑实录第3条,这项目有仿冒风险敞口)
curl -sL -o checksums.txt \
https://github.com/rtk-ai/rtk/releases/download/v1.1.0/checksums.txt
sha256sum rtk.tar.gz # 和checksums.txt里的对应行比对
# 3. 解压安装
tar xzf rtk.tar.gz
mkdir -p ~/.local/bin && mv rtk ~/.local/bin/
export PATH="$HOME/.local/bin:$PATH" # 写进 ~/.bashrc 持久化
# 4. 验证
rtk --version # 输出 rtk 1.1.0
实测:全流程约40秒(含下载),解压后单个二进制15.8MB,零依赖。
容器环境解压时会报
tar: Cannot change ownership to uid 1001警告------文件正常解出,忽略即可。
Windows: Releases页有 rtk-x86_64-pc-windows-msvc.zip,解压得exe,加PATH即可。【待补:本机装一遍+截图】
macOS: brew install rtk 或 cargo install rtk。【待补:brew仓库名实测确认】
三、接到你的AI助手上(实测,一条命令)
bash
# 在你的项目根目录执行
rtk init
实测v1.1.0干了三件事:
- 往项目
CLAUDE.md注入一段指令,告诉AI"输出已压缩,正常用、批量用、别慌" - 生成
.rtk/filters.toml------自定义过滤器模板(比如压掉你自家工具的构建噪音) - 注册hooks(本地)
全局版(推荐,一次配置所有项目生效):
bash
rtk init -g
它会要求把下面这段合进 ~/.claude/settings.json(interactive模式下会问你要不要自动patch):
json
{
"hooks": { "PreToolUse": [{
"matcher": "Bash",
"hooks": [{ "type": "command", "command": "rtk hook claude" }]
}]}
}
重启Claude Code,敲个git status试试------从此AI每次跑bash,输出都先过rtk压缩。
其他AI工具 :rtk init --agent cursor / --gemini / --opencode------实测支持Claude Code、Cursor、Trae、Windsurf、Cline、Kimi、Gemini CLI等14个agent,一条命令切一个。
逃生门 :AI觉得压缩结果不对劲时,可以跑 rtk bypass <命令> 绕过过滤直接看原始输出(老版本叫rtk proxy,仍兼容)。
四、验证效果(核心证据,全部实测)
测试对象:一个真实的66KB Python脚本(66,321字节)。
| 读取方式 | 输出大小 | 压缩率 |
|---|---|---|
原生 cat |
66,321 B | --- |
rtk read -l minimal |
63,659 B | 4% ⚠️ |
rtk read -l aggressive |
1,150 B | 98.3% ✅ |
rtk read -m 30(结构预览) |
1,081 B | 98.4% |
-l aggressive的输出形态:函数签名+// ... implementation占位------AI先看代码骨架,需要哪个函数再精准定位。这就是rtk的哲学:不是压缩文件,是压缩"AI需要知道的部分"。
目录列表对比:
- 原生
ls -la(前20行):317 B rtk ls(全量+文件大小):170 B,还省一半
rtk smart(两行技术摘要,审代码神器):
rust
Python module (10 fn, 1 struct) - 843 lines
uses: asyncio, glob, datetime | patterns: async
rtk gain(累计战绩,实测4条命令后):
yaml
Tokens saved: 258 (46.2%)
Efficiency meter: ███████████░░░░░░░░░░░░ 46.2%
五、踩坑实录(真实踩到,条条值钱)
坑1:rtk read默认不压缩------装完以为在省,实际原样透传。 默认--level none全量输出。必须显式加-l aggressive或-m N才压缩。这是最反直觉的设计,gain统计里还会把这些超大输出排除在节省计算外("Excluded: 6 oversized outputs")。新手自查方法:跑rtk gain,如果节省率是0%,你就在白跑。
坑2:-l minimal名不副实。 对源码文件只压缩4%(66KB→63.6KB),接近没压。想要真效果直接上aggressive或-m结构预览。
坑3:它不是纯开源项目,商用前看协议。 压缩包里有两个LICENSE:CLI外壳是Apache 2.0,但核心引擎rtk-engine是BSL 1.1(Business Source License)。翻译成人话:
- ✅ 个人使用、公司内部用:免费合法,随便装
- ❌ 拿它或它的二改做付费/托管服务转卖:需要商业授权(联系 contact@rtk-ai.app)
- ⏳ 2030-09-09后引擎自动转为Apache 2.0
写教程的人大多没看这个------给公司批量部署前,把这个协议结构甩给安全团队看一眼,别默认它是MIT。
坑4(小):rtk grep对短文件收益有限。 实测一个小文件grep "def":原生462B → rtk 427B,只省8%。grep的压缩价值在长输出场景(大仓库全局搜索)。
六、内网/离线环境适配【壁垒段------只有你能写】
【提示:musl静态二进制天然适合离线分发------单个文件、无glibc依赖、sha256可校验,从Releases下载后U盘拷入即可(15.8MB)。这里展开写:你们环境怎么过安全扫描、离线sha256校验怎么做、没有外网时checksums怎么核对。200字就够,全网独一份。】
七、谁该装,谁不用装
- 该装:重度AI编码用户,账单里命令输出占比高的(跑测试/查日志/看diff/读大文件)
- 不用:纯对话用法、月账单本来就几十块的
- 特别适合:让AI读大型仓库的场景,
read -l aggressive+smart组合拳,上下文窗口压力骤降
数据来源
- 仓库:github.com/rtk-ai/rtk(84.8K star,2026-10-29)
- 实测环境:Linux x86_64,rtk v1.1.0(2026-10-25发布),musl静态版
- 所有压缩数据为本机实测,非README宣传数字