Skip to content

RTK — Rust Token Killer,AI 编程助手的省钱利器

你有没有算过每天和 Claude Code、Cursor、Copilot 这些 AI 编程助手聊天到底花了多少钱?一个 30 分钟的编程会话就能吃掉将近 12 万 token。RTK 用一种近乎暴力的方式——在终端输出到达 AI 之前过滤掉垃圾——把 token 消耗砍掉 60-90%。


目录


Token 消耗的黑洞

你以为只是让 AI 看一眼测试结果,但实际发生了什么?

你以為的                          實際發生的
─────────────────────────────────────────────
AI 讀測試結果                      AI 讀了 200+ 行測試輸出
AI 看 git status                  AI 讀了所有變更文件路徑
AI 查日誌                         AI 讀了幾百行重複的日誌
                                  ANSI 顏色碼、進度條、
                                  時間戳、元數據全塞進上下文

真实成本估算(30 分钟中等项目)

操作                    頻率    Token 消耗
─────────────────────────────────────────
ls / tree               10x     2,000
cat / read              20x     40,000
grep / rg               8x      16,000
git status              10x     3,000
git diff                5x      10,000
cargo test / npm test   5x      25,000
─────────────────────────────────────────
合計                           ≈ 120,000 tokens

噪音滚雪球效应

對話 1                          對話 5
─────────────────────────────────────────
少量噪音進入上下文               噪音像滾雪球一樣累積
AI 依然理解良好                  上下文窗口被塞爆
花費正常                        AI 開始失焦
                                支付更昂貴的長上下文費用

本质问题:信息信噪比。AI 需要的信息被淹没在海量的噪音之中。


RTK 的核心思路

沒有 RTK                              有 RTK
─────────────────────────────────────────────
AI ← 原始輸出(含噪音)               AI ← 過濾後輸出(精華)
  ↑                                       ↑
Shell → git status                   Shell → RTK → git status
  │                                       │
~2,000 tokens                         ~200 tokens(過濾後)
─────────────────────────────────────────────
類比:搬來整個檔案室的目錄             類比:直接把需要的文件放在桌上

设计哲学:极简、透明、可控、无入侵。

RTK 的設計原則
┌─────────────────────────────────────┐
│  ❌ 不改造你的 AI 工具               │
│  ❌ 不修改你的工作流                 │
│  ❌ 不在屏幕上多出一個圖標           │
│  ✅ 安靜地坐在系統和 AI 之間         │
│  ✅ 像一道精密的濾網                 │
│  ✅ 把雜質濾掉,把精華留下           │
└─────────────────────────────────────┘

四大过滤策略

每种命令都会组合使用以下四种策略:

策略 作用 示例
结构压缩 树状视图替代平铺 ls -la 45 行 → rtk ls 12 行
冗余消除 去重重复行 同一错误出现 30 次 → 保留 1 次
噪音过滤 去掉无意义元数据 ANSI 颜色码、时间戳、进度条、文件权限
智能截断 保留关键上下文 测试输出:只保留失败用例及原因

三类典型的信息垃圾

1. 格式標記(ANSI 顏色碼)
   ├── \x1b[32m(綠色)
   ├── \x1b[1m(粗體)
   └── \x1b[4m(下劃線)
   → 對 AI 理解問題毫無幫助,但每個字都在收費

2. 重複性內容
   ├── 同一條錯誤出現 30 次
   └── AI 看一遍和看 30 遍結論一樣
   → 賬單卻翻了 30 倍

3. 無關元數據
   ├── 文件權限(-rwxr-xr-x)
   ├── 時間戳、系統路徑
   └── 進度百分比、環境變量
   → 對排查問題毫無幫助

工作原理:命令拦截与重写

完整工作流程

┌──────────┐     ┌──────────┐     ┌──────────┐     ┌──────────┐
│ AI 工具   │────→│   RTK    │────→│  Shell   │────→│  命令     │
│(Claude等) │     │ (代理)   │     │          │     │(git等)    │
└──────────┘     └────┬─────┘     └──────────┘     └────┬─────┘
                      │                                  │
                      │     ┌──────────┐     ┌──────────┘
                      └────→│ 過濾器    │←────│ 原始輸出  │
                            │ 網絡      │     │
                            │ 100+ 命令 │     │
                            └──────────┘     └──────────┘

Hook 机制:RTK 在系统层面注册代理,所有经过的命令先经过它判断 → 调用过滤器 → 返回干净结果。上层完全透明。


Token 节省实测数据

官方 30 分钟 Claude Code 会话对比(中等 TypeScript/Rust 项目):

操作 频率 标准 Token RTK Token 节省
ls / tree 10x 2,000 400 -80%
cat / read 20x 40,000 12,000 -70%
grep / rg 8x 16,000 3,200 -80%
git status 10x 3,000 600 -80%
git diff 5x 10,000 2,500 -75%
cargo/npm test 5x 25,000 2,500 -90%
git add/commit/push 8x 1,600 120 -92%
总计 ~118,000 ~23,900 -80%

输出对比示例

# git push 原始輸出(~200 tokens)
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 8 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 285 bytes | 285.00 KiB/s, done.
Total 3 (delta 2), reused 0 (delta 0)
To github.com:user/repo.git
   abc1234..def5678  main -> main

# rtk git push(~10 tokens)
ok main
# cargo test 原始輸出(200+ 行)
running 15 tests
test utils::test_parse ... ok
test utils::test_format ... ok
...(省略 13 個通過的測試)

# rtk cargo test(~20 行)
FAILED: 2/15 tests
  test_edge_case: assertion failed
  test_overflow: panic at utils.rs:18

实际收益换算

原本只能用 10 次的免費額度  →  現在能用 40-50 次
每月 API 賬單從幾百塊        →  可能降到幾十塊
每次點擊前先算經濟賬          →  更從容地嘗試 AI 工具

有用户报告在 Claude Code 会话中节省了 1000 万 token(89%)


支持的工具与命令覆盖

支持的 AI 工具(13+)

工具 集成方式
Claude Code PreToolUse hook(bash)
GitHub Copilot (VS Code) PreToolUse hook
Cursor preToolUse hook (hooks.json)
Gemini CLI BeforeTool hook
Codex AGENTS.md + RTK.md
Windsurf .windsurfrules
Cline / Roo Code .clinerules
OpenCode Plugin TS
OpenClaw Plugin TS
Hermes Python plugin adapter
Kilo Code .kilocode/rules
Jules CLAUDE.md
Aider .aider.conf.yml

命令覆盖(100+)

覆蓋深度
├── 文件操作      ls, tree, cat, head, tail, find ...
├── 版本控制      git status, diff, log, add, commit, push ...
├── 測試框架      pytest, cargo test, npm test, go test, jest ...
├── 構建檢查      ruff, eslint, prettier, mypy, clippy ...
├── 包管理        npm, pip, cargo, yarn, brew ...
├── 雲平台        docker, kubectl, terraform ...
└── 容器編排      docker-compose, k9s ...

安装方式

macOS / Linux

# Homebrew(推薦)
brew install rtk

# 快速安裝
curl -fsSL https://rtk-ai.app/install | bash

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

初始化

# 全局 hook,所有 AI 工具自動啟用
rtk init -g

# 特定工具
rtk init -g --copilot
rtk init -g --agent cursor
rtk init -g --gemini
rtk init -g --codex

Windows 限制

RTK 的 hook 机制深度依赖 Unix Shell 的管道和重定向特性,Windows 需要选择:

方案 说明 优缺点
CLAUDE.md 模式 项目根目录放配置文件,引导 AI 调用 RTK 零依赖,但需手动维护
WSL Windows Subsystem for Linux 完整功能,推荐

关键限制

RTK 的 hook 只在 Bash tool calls 上运行。Claude Code 的内置工具(Read、Grep、Glob)不经过 Bash hook,不会被自动重写。需要用 shell 命令(cat/rg/find)或直接调用 rtk readrtk greprtk find


为什么选 Rust

特性 对 RTK 的意义
零成本抽象 保证过滤逻辑高性能
内存安全 处理大量终端输出时不崩溃
编译为单一二进制 零运行时依赖、零环境配置
近瞬时启动 <10ms overhead,不感知延迟
一个文件搞定一切 各种场景下都便携

思维转换:与其追求更大的桶,不如让水更纯净

❌ 模型厂商的路線                    ✅ RTK 的路線
─────────────────────────────────────────────
把上下文窗口做得更大                 讓進入上下文的信息更純
20萬 → 100萬 tokens                過濾掉 60-90% 的噪音
桶更大了,但噪音也一起灌進去了        桶不用更大,裝的全是精華

这种精益思维在以下场景尤其重要:

  • 项目有成千上万个文件
  • CI 流水线每天跑几百次
  • 团队每个人都在用 AI 助手
  • API 费用已经超过云服务器开销

核心洞察:AI 编程助手本质上是在购买一种「注意力服务」。AI 的注意力是按字收费的,且不区分重要信息和垃圾信息。100 字的废话和 100 字的精华花的是一样的钱。RTK 做的就是确保你买的每一分注意力都花在刀刃上。


参考资料

相关笔记