夜雨聆风学习资料网

ARTICLE · 1096425

RTK:让 AI 编程助手省下 60%-90% Token 的神器

RTK:让 AI 编程助手省下 60%-90% Token 的神器

用 Claude Code、Cursor 写代码的朋友,大概都遇到过这种情况:让 AI 跑一次测试,终端刷出几百行日志;让它看一眼 git log,又是一大屏。这些输出会原封不动地塞进 AI 的上下文里。

结果有三个:token 烧得飞快,上下文很快被撑满,AI 被无关信息干扰,判断变差。

今天介绍一个专门解决这个问题的开源小工具——RTK。它能在命令输出到达 AI 之前先“瘦身”,官方数据是平均减少 60%–90% 的输出量,而且装好之后基本不用管它。

一、RTK 是什么

RTK 全称 Rust Token Killer,是一个用 Rust 写的命令行代理工具。它夹在“AI 执行的命令”和“AI 读到的输出”之间,把冗长的终端输出压缩成 AI 真正需要的那部分。

几个关键信息:

项目
说明
协议
Apache 2.0 开源,免费,无需账号或 API Key
体积与性能
单个二进制文件,零依赖,每条命令额外开销不到 10 毫秒
支持命令
100 多个,涵盖 git、gh、pytest、jest、cargo、docker、kubectl、aws 等
支持的 AI 工具
Claude Code、Cursor、GitHub Copilot、Gemini CLI、Codex、Windsurf、Cline 等
操作系统
macOS、Linux、Windows
收费
核心免费;另有面向团队的付费版 RTK Pro(安全、治理、可观测性)
隐私
匿名遥测默认关闭,需要手动开启

官网:rtk-ai.appGitHub:rtk-ai/rtk

二、核心原理

一句话:在命令执行前把它改写成走 RTK 的版本,再按命令类型用专门的规则压缩输出,最后才交给 AI。

[embedded content: RTK 工作流程 · 改写、执行、过滤、存档]

1. 拦截并改写命令

Claude Code 有一种叫 PreToolUse hook 的机制:AI 每次调用工具前,会先触发一段脚本。RTK 就挂在这里。AI 想执行 git status 时,RTK 把它改成 rtk git status 再交给 shell。

整个过程是透明的,AI 不知道命令被改过,你也不用改变任何习惯。Cursor、Copilot、Windsurf 等工具也是用各自的 hook 或插件接口实现同样的效果。

2. 按命令类型压缩输出

RTK 不是通用的文本压缩算法,而是针对每种命令写好的“摘要规则”。常用手法有四种:

策略
做法
典型例子
去噪
删掉提示语、空行、样板文字
测试只留失败项,通过的全部隐藏
分组聚合
同类内容归到一起
grep 结果按文件分组,lint 报错按规则归类
截断
只留关键字段
git log 只留哈希、作者、标题
去重
重复行合并并标出次数
docker logs、编译日志里的重复警告
3. 原文兜底,随时取回

压缩难免丢信息。所以命令失败或输出被截断时,RTK 会把完整原文存进本地,并在精简输出末尾附一行:

[full output: rtk recall 3f9c2a81d4e7]

AI 觉得信息不够时,可以直接用这个编号取回全文,不用重新跑一遍命令。

三、安装

任选一种方式即可。

macOS / Linux(Homebrew)

brew install rtk

macOS / Linux(一键脚本)

curl -fsSL https://raw.githubusercontent.com/rtk-ai/rtk/refs/heads/master/install.sh | sh
# 装完后把 ~/.local/bin 加进 PATH
echo'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc

已有 Rust 环境(Cargo)

cargo install --git https://github.com/rtk-ai/rtk

Windows:到 GitHub Releases 下载 rtk-x86_64-pc-windows-msvc.zip,解压后把 rtk.exe 所在目录加入 PATH。

装好后验证一下:

rtk --version
rtk gain

能看到版本号就说明安装成功。

四、配置与使用
1. 接入你的 AI 工具(只需一次)

以 Claude Code 为例,一条命令搞定:

rtk init -g

-g 表示全局安装 hook。装好后重启 Claude Code,之后 AI 执行的 shell 命令都会自动走 RTK。其他工具换个参数:

AI 工具
命令
Claude Code
rtk init -g
Cursor
rtk init -g --agent cursor
GitHub Copilot
rtk init -g --copilot
Gemini CLI
rtk init -g --gemini
Codex
rtk init -g --codex
Windsurf
rtk init -g --agent windsurf
Cline / Roo Code
rtk init --agent cline

检查是否装好用 rtk init --show,卸载 hook 用 rtk init -g --uninstall。

2. 手动使用

装了 hook 后一般不用手动敲。如果想自己试试效果,在命令前加 rtk 即可:

# Git
rtk git status
rtk git log -n 10
rtk git diff

# 测试:只显示失败项
rtk pytest
rtk jest
rtk cargo test

# 文件与搜索
rtk ls .
rtk grep "pattern" .
rtk read file.rs -l aggressive

# 容器与日志:重复行会被合并
rtk docker logs <container>
rtk kubectl logs <pod>

# 没有专门规则的长命令,用通用摘要
rtk summary <命令>

加 -u(--ultra-compact)还能进一步压缩成更紧凑的格式。

3. 查看省了多少
rtk gain            # 总节省量
rtk gain --graph    # 图表
rtk gain --daily    # 按天统计
rtk gain --history# 历史记录
rtk discover        # 找出还没被优化的高消耗命令
4. 配置文件

配置文件位置:Linux / Windows 在 ~/.config/rtk/config.toml,macOS 在 ~/Library/Application Support/rtk/config.toml。常用的两项:

[hooks]
# 这些命令不走 RTK,保持原样输出
exclude_commands = ["curl", "playwright"]

[tee]
enabled = true
mode = "failures"# 保存原文的时机:failures / always / never
五、效果有多大

官方公布的数据是:被改写的命令平均减少 56% 的输出,最啰嗦的命令能减少约 90%。测试失败时效果最明显:原本 200 多行的输出,压缩后大约剩 20 行。

拿一次 pytest 失败来打个比方(下面是示意,不是真实输出):

压缩前:AI 要读完整的收集日志、几百个 PASSED、进度条、警告汇总,最后才是那一两个真正失败的测试。

压缩后:只剩下这样的内容。

pytest: 248 passed, 2 failed
FAILED tests/test_order.py::test_discount - AssertionError: 90 != 85
FAILED tests/test_user.py::test_login - KeyError: 'token'
[full output: rtk recall 3f9c2a81d4e7]

AI 一眼就能看到问题在哪,上下文也省出大量空间。想看自己的真实节省量,用一段时间后跑 rtk gain 就行。

六、注意事项
  • 只管 shell 命令:
    Claude Code 内置的 Read、Grep、Glob 等工具不经过 shell,所以不会被压缩。
  • 压缩会丢细节:
    大多数时候没影响,但偶尔 AI 需要完整输出。建议保持 tee 功能开启,让它能用 rtk recall 取回原文。
  • 有些命令别压缩:
    如果某个命令的输出你希望 AI 原样看到(比如调试接口时的 curl),把它加进配置里的 exclude_commands。
  • 覆盖有限:
    没有专门规则的命令压缩效果会弱很多,可以用 rtk discover 看看哪些命令还没被优化。
  • 遥测默认关闭:
    不放心可以用 rtk telemetry status 确认,或设置环境变量 RTK_TELEMETRY_DISABLED=1。
七、总结

RTK 做的事很简单:在 AI 读终端输出之前,先把废话删掉。它开源免费,两条命令就能装好,装完基本感觉不到它的存在。

适合谁用:经常让 AI 跑测试、编译、看日志的开发者,尤其是按 token 计费、或者经常遇到上下文被撑爆的人。

不太需要的人:只用 AI 聊天、写文档,很少让它执行命令的用户。

最快上手的路径:

brew install rtk   # 安装
rtk init -g        # 接入 Claude Code
# 正常工作几天后
rtk gain           # 看看省了多少

相关学习资料