乐于分享
好东西不私藏

AI 编程工具的 token 账单到底花在哪了?用 rtk 一行命令砍掉 80%

AI 编程工具的 token 账单到底花在哪了?用 rtk 一行命令砍掉 80%

项目卡片

  • 项目:rtk (Rust Token Killer)[1]
  • 状态:v0.36.0 / 50.8k Stars / 4 个月增长 5 万星
  • 一句话判断:目前最成熟的 AI 编程 token 节省方案,安装即用,零学习成本

AI 编程的钱,花在了看不见的地方

用 Claude Code、Cursor 的开发者,几乎都会撞上同一堵墙:token 消耗比预期快得多

模型回答没问题,问题出在它执行的每一条命令上。git statuscargo testls -la——这些命令的原始输出会完整塞进上下文。一次 git push 的 15 行进度文本看着不多,但一天跑几十次,一周光"噪音输出"就吃掉上万 token。

rtk 的定位很直接:在这些输出到达 LLM 之前,把它们压缩掉

一个 30 分钟的 Claude Code 会话,未经优化大约消耗 118,000 token 的命令输出。经过 rtk 过滤后,只剩约 23,900 token。省掉 80%

它怎么做到的

rtk 是一个 Rust 编写的 CLI 代理。你不需要改变任何工作习惯——它通过 hook 机制,在 AI 编程工具执行 shell 命令之前,自动把原始命令改写成 rtk 版本。

Claude 发出 git status
  → hook 拦截,改写为 rtk git status
    → rtk 执行 git status,拿到原始输出
      → 过滤、压缩,只返回精简结果给 Claude

过滤策略有四层:智能过滤(去掉注释、空白、样板文本)、分组聚合(相似项合并)、截断(保留关键上下文)、去重(重复日志行合并计数)。

实际效果:

命令 原始 token rtk 后 节省
cargo test ~25,000 ~2,500 90%
git push ~200 ~10 95%
pytest ~8,000 ~800 90%
git diff ~10,000 ~2,500 75%

开销几乎可以忽略——rtk 本身是单线程 Rust 二进制,启动 <10ms,内存 <5MB。

三分钟装好,完全无感

安装只需要一行命令(Homebrew):

brew install rtk
rtk init -g    # 为 Claude Code 安装 hook

没有 Homebrew 也可以用快速安装脚本或直接下载预编译二进制——支持 macOS、Linux 和 Windows,仓库 releases 页面都有。

# Linux/macOS 快速安装
curl -fsSL https://raw.githubusercontent.com/rtk-ai/rtk/refs/heads/master/install.sh | sh

重启你的 AI 编程工具,之后一切自动生效。你不需要手动写 rtk git status,hook 会在后台完成改写。

除了 Claude Code,rtk 还支持 13 种 AI 编程工具:Cursor、GitHub Copilot、Windsurf、Cline/Roo Code、Gemini CLI、Codex、Kilo Code 等。每个工具的集成方式略有不同——有的用 PreToolUse hook,有的用插件 API,有的用项目级规则文件——但效果一样:透明拦截,零感知

想看省了多少,跑一下 rtk gain

rtk gain          # 总节省统计
rtk gain --graph  # 最近 30 天的 ASCII 趋势图

它会在本地 SQLite 数据库里记录每次过滤的 token 差值,不依赖外部服务。

压缩失败时的输出会怎样?

这类项目我一般先看失败处理。rtk 的做法是:失败命令的原始输出完整保存

当一个命令执行失败时,rtk 通过 tee 机制把完整的未过滤输出写入本地日志文件,并在精简结果里附上路径。LLM 需要详细信息时可以直接读这个文件,不用重新执行命令。

# 失败时的输出示例
FAILED: 2/15 tests
[full output: ~/.local/share/rtk/tee/1707753600_cargo_test.log]

这意味着你不会因为"过度压缩"而丢掉关键的错误信息。这一点对实际使用体验很重要——很多类似工具的问题恰恰是压缩太激进,导致 AI 反复追问细节。

如果某个命令你确实不想被过滤,可以排除:

# ~/.config/rtk/config.toml
[hooks]
exclude_commands = ["curl""playwright"]

或者直接用 rtk proxy <command> 走原始透传。

100+ 命令覆盖,但不是万能的

rtk 目前覆盖了 100+ 种常用命令,包括 git 全家桶、cargo/npm/pnpm/go/python 的测试和构建工具、docker/kubectl、AWS CLI、ESLint/TSC 等代码检查工具。

但有两个边界需要注意:

第一,只对 Bash 工具调用生效。Claude Code 的内置工具(Read、Grep、Glob)走的是自己的通道,不经过 shell hook,所以 rtk 拦不住。如果你大量使用这些内置工具,实际节省比例会低于官方宣传的 80%。

第二,Windows 原生支持有限。hook 机制依赖 Unix shell,Windows 上只能退回到 CLAUDE.md 注入模式——AI 工具会收到 rtk 的使用说明,但命令不会自动改写。官方推荐在 WSL 里用。

值不值得装

如果你是 AI 编程工具的重度用户(每天 Claude Code 或 Cursor 超过 1 小时),rtk 几乎是确定性收益。安装一行命令,失败时自动回退原始输出,token 节省是实打实的。

即使不在意 API 费用,省下来的 token 也意味着更长的有效上下文——同样 200k 窗口,省出的空间可以放更多代码和对话历史。

从项目状态看,4 个月 5 万 star、版本到 v0.36.0、近 30 天 960+ commits,迭代速度很快。MIT 开源,核心团队三人,社区贡献活跃。

唯一要权衡的是小众 AI 工具的兼容性。但主流的 Claude Code、Cursor、Copilot 都已经覆盖。


如果你想继续看这类 AI 工具拆解,我会把上手路径、关键限制和可复用配置整理成清单,方便你直接判断值不值得试。

引用链接

[1]rtk (Rust Token Killer): https://github.com/rtk-ai/rtk