Token 成本困境
每次你让 AI 运行 git status,它可能消耗了你根本不需要的 2000 个 Token——RTK 解决这个问题。
什么是 Token?为什么它让你花钱?
Token 是 AI 的「货币」。你付的钱,按 token 数量计算。 上下文窗口 是 AI 每次能读多少文字的上限。
问题是:当 Claude Code 运行 git status,原始输出可能长这样:
On branch main
Your branch is ahead of 'origin/main'
by 1 commit.
(use "git push" to publish your local commits)
Changes not staged for commit:
(use "git add <file>..." to update)
(use "git restore <file>..." to discard)
modified: src/components/Button.tsx
modified: src/utils/api.ts
...
✓ main (ahead 1)
M src/components/Button.tsx
M src/utils/api.ts
(移除了所有 git 帮助提示,AI 根本不需要那些文字)
节省了 90% 的 token
一次 30 分钟开发会话的真实 Token 账单
RTK 团队测量了一次典型的 Claude Code 开发会话——这些数字是真实测量值:
ls / tree
标准: 2,000 tokens → RTK: 400 tokens,节省 80%
cat / read
标准: 40,000 tokens → RTK: 12,000 tokens,节省 70%
git status
标准: 3,000 tokens → RTK: 600 tokens,节省 80%
cargo test / npm test
标准: 25,000 tokens → RTK: 2,500 tokens,节省 90%
总计(~30分钟)
标准: ~118,000 tokens → RTK: ~23,900 tokens,整体节省 80%
测试输出通常包含大量「ok」结果——100 个通过的测试会打印 100 行「test_xxx ... ok」。RTK 把这 100 行压缩成「100 tests passed」——AI 只需要知道失败的那几个。
Token 浪费的四个根源
为什么普通命令输出这么浪费 token?RTK 找到了四个结构性原因:
帮助文字
git 每条命令都附带「how to fix」提示——AI 不需要这些,它已经知道了。
成功噪声
100 个测试通过 = 100 行 ok。AI 只关心失败,成功是噪声。
ASCII 艺术
prisma generate 的进度条、docker 的 Logo——美观但对 AI 毫无价值。
重复内容
日志里相同的错误重复出现 50 次——RTK 折叠为「×50」。
测验:Token 成本理解
为什么 RTK 对测试输出(cargo test、pytest)能节省 90%,而对 git diff 只能节省 75%?
RTK 代理架构
RTK 像一个「翻译官」坐在 Claude 和命令行之间——Claude 请求命令输出,RTK 过滤、压缩后才发给 Claude。
代理模式:不改变任何东西,只压缩输出
RTK 是一个代理——它不改变你的命令,只压缩输出。Claude 不知道 RTK 的存在,它只看到更简洁的命令输出:
RTK 的核心:Rust 实现的单一二进制文件
RTK 用Rust编写,编译成一个单一二进制文件,开销极低:
mod analytics;
mod cmds;
mod core;
mod filters;
mod hooks;
mod parser;
use cmds::git::{git, diff_cmd};
use cmds::rust::{cargo_cmd};
use cmds::js::{npm_cmd, tsc_cmd};
引入分析模块——追踪 token 节省统计
引入命令模块——每种工具一个子模块
引入核心模块——过滤、流处理、配置
引入过滤器模块——通用的内容过滤规则
引入 hooks 模块——Claude Code 钩子安装逻辑
引入解析器模块——把 JSON/文字解析成结构化数据
每个工具(git、cargo、npm)都有专属的过滤逻辑
Hook 机制:自动拦截所有命令
RTK 最聪明的部分是 Claude Code 的 PreToolUse Hook。一行配置,让所有 Bash 调用自动通过 RTK 过滤:
rtk init -g
安装全局钩子,将 git status 自动重写为 rtk git status(Claude Code 专用)
rtk init -g --gemini
Gemini CLI 版钩子,使用 BeforeTool 机制
rtk init --agent cursor
Cursor 版钩子,写入 hooks.json
rtk gain
查看 RTK 帮你节省了多少 token,以及换算成美元的费用
因为是 Rust 写的单一二进制,RTK 本身几乎不增加命令执行时间。80% 的 token 节省,换来的是几乎为零的性能损耗——这个交换非常合算。
测验:RTK 架构理解
安装 RTK 后,Claude Code 的行为会怎样变化?
压缩算法深度解析
RTK 不只是「少输出一点」——它用四种策略精确识别并移除 AI 不需要的内容,同时保留所有关键信息。
四种压缩策略
RTK 的压缩策略精确针对四种类型的冗余内容:
帮助文字过滤
git、npm 等工具的 usage 提示、修复建议——这些是给人类看的提醒,AI 模型的训练数据里已经包含了完整的文档。RTK 自动识别并移除 (use "git add ..." to update) 这类提示。
成功噪声压缩
测试框架输出的 100 行 test_foo ... ok,RTK 压缩为 100 tests passed。如果其中 3 个失败,保留失败详情,只折叠通过的重复行。
ASCII 艺术移除
Prisma 的旋转进度条、Docker 的 whale Logo、编译器的装饰分隔线——对 AI 来说全是零价值的 token。ASCII 艺术检测基于行模式匹配,不误删代码。
重复内容折叠
相同的错误日志重复出现 50 次?RTK 检测连续重复行,折叠为 ERROR: ... (repeated ×50)。保留第一行完整内容,只折叠后续完全相同的行。
压缩效果:真实数据对比
以下是 RTK 团队在实际开发会话中测量的token 节省率——每个数字都是真实测量值:
git 命令
3,000 → 600 tokens,节省 80%
测试输出
25,000 → 2,500 tokens,节省 90%
cat / read
40,000 → 12,000 tokens,节省 70%
30 分钟会话总计
~118,000 → ~23,900 tokens,整体节省 80%
running 120 tests
test filters::test_compress ... ok
test filters::test_strip_ansi ... ok
test core::test_pipeline ... ok
test core::test_stream ... ok
... (116 more "ok" lines)
test hooks::test_install FAILED
test hooks::test_parse FAILED
118 tests passed, 2 failed
FAILED filters::test_compress — expected 200, got 500
FAILED hooks::test_install — hook file not found
(118 行 ok 折叠为 1 行,仅保留失败详情)
压缩算法只会删掉确定无用的信息,有歧义的内容会保留。RTK 不做语义理解——它只做模式匹配和统计折叠。这意味着它永远不会删掉可能重要的输出,但能可靠地移除确定是噪声的部分。
测验:压缩算法理解
RTK 压缩 git status 输出时,主要删掉的是哪种内容?
真实世界集成
下载、配置、重启——三步让你的 AI 编程工具开始节省 80% 的 token 消耗。
支持的平台
RTK 通过不同Hook 机制支持三大 AI 编程工具:
Claude Code
通过 PreToolUse Hook 自动拦截所有 Bash 工具调用。运行 rtk init -g 即可全局安装。
Gemini CLI
通过 Gemini CLI 的 BeforeTool 机制实现拦截。运行 rtk init -g --gemini 安装对应的钩子配置。
Cursor
通过 hooks.json 配置文件实现命令拦截。运行 rtk init --agent cursor,RTK 会自动写入正确的配置到项目或全局的 hooks 文件中。
三步安装配置
从零到生效,只需三个步骤:
下载 RTK 二进制文件
从 GitHub Releases 下载适合你系统的单一二进制文件。macOS / Linux / Windows 均支持。放到 ~/.local/bin/ 或任何 PATH 目录即可。
配置 AI 工具的 Hook
运行一条命令:rtk init -g(Claude Code)、rtk init -g --gemini(Gemini CLI)或 rtk init --agent cursor(Cursor)。RTK 会自动写入正确的 Hook 配置。
重启 AI 工具,自动生效
重启 Claude Code / Gemini CLI / Cursor。从此,所有 Bash 命令的输出都会自动经过 RTK 压缩。运行 rtk gain 可随时查看节省了多少 token 和对应的费用。
完整压缩流程演示
看看开发者、RTK 和 Claude Code 之间发生了什么: