TL;DR:RTK 是一個用 Rust 編寫的 CLI 代理工具,在 LLM 程式設計工具(如 Claude Code、Cursor、Gemini CLI)執行指令時,自動過濾和壓縮輸出內容,減少 60-90% 的 token 消耗。單一執行檔、零相依、支援 100+ 指令,安裝只需一行指令。
如果你每天都在用 Claude Code、Cursor、Gemini CLI 等 AI 程式設計助手,你一定會遇到這個痛點:每次 AI 助手執行 git status、ls、cat、cargo test 等指令時,完整的原始輸出都會被塞進 LLM 上下文視窗,瘋狂消耗 token。
一個 30 分鐘的編碼會話,大約消耗 118,000 個 token,其中 94,100 個都是冗餘資訊。
RTK 就是來解決這個問題的。它用 Rust 編寫,體積小巧(單一二進位檔案,零相依),在指令執行路徑上攔截輸出,智慧過濾噪音,只保留關鍵資訊。30 分鐘會話的 token 消耗從 118,000 降到約 23,900 —— 節省 80%。
RTK 是什麼?
RTK 全名 "Rust Token Killer"(Rust 編寫的 Token 終結者),是一個執行在你和 LLM 之間的 CLI 代理層。它不是 LLM,不是 IDE 外掛程式,而是一個很聰明的「中間人」。
沒有 RTK: 使用 RTK 後:
Claude --git status--> shell --> git Claude --git status--> RTK --> git
^ | ^ | |
| ~2,000 tokens (原始輸出) | | ~200 tokens | 智慧過濾 |
+-----------------------------------+ +------- (壓縮輸出) -----+----------+
當 AI 工具執行指令時,RTK 會:
- 智慧過濾 — 去除註解、空白字元、範本化文字
- 智慧分組 — 按目錄/類型聚合相似項目(檔案按目錄歸類、錯誤按類型分組)
- 智慧截斷 — 保留關鍵上下文,砍掉冗餘內容
- 去重合併 — 將重複的日誌行合併為計數
專案資訊:
| 屬性 | 值 |
|---|---|
| GitHub | rtk-ai/rtk |
| 語言 | Rust |
| 授權 | Apache 2.0 |
| Stars | 68,000+ |
| 最新版本 | 0.28.2 |
| 相依 | 零(單個靜態二進位) |
安裝 RTK
RTK 的安裝非常簡單。它不相依任何執行環境,就是一個獨立的二進位檔案。
macOS / Linux
推薦:Homebrew
brew install rtk
快速安裝指令碼:
curl -fsSL https://raw.githubusercontent.com/rtk-ai/rtk/refs/heads/master/install.sh | sh
安裝到
~/.local/bin,確保該路徑在 PATH 中:bash echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc source ~/.bashrc
從 Cargo 安裝:
cargo install --git https://github.com/rtk-ai/rtk
Windows
從 GitHub Releases 下載 rtk-x86-64-pc-windows-msvc.zip,解壓縮後將 rtk.exe 放到 PATH 中的目錄(如 C:\Users\<你>\.local\bin)。
⚠️ 不要雙擊 exe 執行,它需要在指令列(PowerShell/CMD/Windows Terminal)中執行。
驗證安裝
rtk --version # 應顯示 "rtk 0.28.2"
rtk gain # 應顯示 token 節省統計
名稱衝突警告:crates.io 上還有一個叫 "rtk"(Rust Type Kit)的專案。如果
rtk gain指令報錯,說明裝錯了。請使用上面的cargo install --git方式安裝。
快速上手:3 分鐘接入你的 AI 工具
安裝完成後,只需一步即可為你的 AI 程式設計工具啟用 RTK:
# Claude Code / Copilot(預設)
rtk init -g
# Gemini CLI
rtk init -g --gemini
# Codex(OpenAI)
rtk init -g --codex
# Cursor
rtk init -g --agent cursor
# Windsurf
rtk init -g --agent windsurf
# Cline / Roo Code
rtk init --agent cline
# Kilo Code
rtk init --agent kilocode
# Google Antigravity
rtk init --agent antigravity
-g(或 --global)參數的作用:它會自動重寫你 AI 工具的設定檔,把所有常用指令(如 git status)替換為 rtk git status。重新啟動 AI 工具後生效。
# 重新啟動 Claude Code 後測試
git status # 自動重寫為 rtk git status
⚠️ Hook 只在 Bash 工具呼叫上生效。Claude Code 的內建工具(如
Read、Grep、Glob)不經過 Bash hook,所以不會被自動重寫。如果想在這些場景下也獲得壓縮輸出,請直接用 shell 指令(cat/rg/find)或手動呼叫rtk read、rtk grep、rtk find。
RTK 支援的指令一覽
RTK 支援超過 100 條指令的壓縮輸出,覆蓋檔案操作、Git、測試、建置、套件管理、雲端服務等場景。
檔案操作
rtk ls . # 智慧目錄樹(token -80%)
rtk read file.rs # 智慧檔案讀取
rtk read file.rs -l aggressive # 僅保留函式簽名(去掉函式本體)
rtk smart file.rs # 2 行啟發式程式碼摘要
rtk find "*.rs" . # 壓縮版 find 結果
rtk grep "pattern" . # 分組搜尋結果
rtk diff file1 file2 # 壓縮 diff(檔案不同時 exit 1)
Git 操作
rtk git status # 緊湊狀態
rtk git log -n 10 # 一行式提交記錄
rtk git diff # 壓縮 diff
rtk git add # → "ok"
rtk git commit -m "msg" # → "ok abc1234"
rtk git push # → "ok main"
rtk git pull # → "ok 3 files +10 -2"
git push 的效果對比非常震撼:
# git push(15 行,~200 tokens) # rtk git push(1 行,~10 tokens)
Enumerating objects: 5, done. ok main
Counting objects: 100% (5/5), done.
Delta compression using up to 8 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 456 bytes | 456.00 KiB/s, done.
...
從 15 行壓縮到 1 行,token 減少 95%。
測試執行器
rtk pytest # Python 測試(-90%)
rtk cargo test # Rust 測試(-90%)
rtk go test # Go 測試(NDJSON,-90%)
rtk jest # Jest 緊湊輸出
rtk vitest # Vitest 緊湊輸出
rtk playwright test # E2E 測試結果(僅失敗)
rtk err <cmd> # 從任意指令中提取錯誤
rtk test <cmd> # 通用測試包裝——僅失敗(-90%)
建置與 Lint
rtk tsc # TypeScript 錯誤按檔案分組
rtk cargo build # Cargo 建置(-80%)
rtk cargo clippy # Cargo clippy(-80%)
rtk ruff check # Python linting(JSON,-80%)
rtk golangci-lint run # Go linting(JSON,-85%)
rtk next build # Next.js 建置壓縮
rtk prettier --check . # 需要格式化的檔案
Docker 與容器
rtk docker ps # 緊湊容器列表
rtk docker images # 緊湊映像檔列表
rtk docker logs <container> # 去重日誌
rtk kubectl pods # 緊湊 Pod 列表
rtk kubectl logs <pod> # 去重日誌
AWS CLI
rtk aws sts get-caller-identity # 一行身分識別
rtk aws ec2 describe-instances # 緊湊執行個體列表
rtk aws lambda list-functions # 名稱/執行環境/記憶體(去除金鑰)
rtk aws s3 ls # 截斷列表 + tee 復原
rtk aws dynamodb scan # 展開類型註解
資料分析
rtk json config.json # 結構展示(去除值)
rtk deps # 相依摘要
rtk env -f AWS # 過濾環境變數
rtk log app.log # 去重日誌
rtk summary <long command> # 啟發式摘要
Token 節省分析:你的 RTK 效果如何?
RTK 內建詳細的統計功能,讓你清楚看到省了多少 token:
rtk gain # 摘要統計
rtk gain --graph # ASCII 圖表(最近 30 天)
rtk gain --history # 最近指令歷史
rtk gain --daily # 每日明細
rtk gain --all --format json # JSON 匯出(儀表板用)
rtk discover # 發現未利用的節省機會
rtk discover --all --since 7 # 所有專案,最近 7 天
rtk session # 顯示近期會話的 RTK 採用率
全域參數
-u, --ultra-compact # ASCII 圖示 + 內聯格式(額外節省 token)
-v, --verbose # 增加詳細度(-v, -vv, -vvv)
實戰:RTK + Claude Code 的一天
假設你是一個 Rust 專案的全職開發者,一天內的工作流程是這樣的:
早上:程式碼審查
# 檢視今天的提交
git log --oneline --since="today" # rtk 壓縮為單行提交摘要
# 檢查 PR 列表
gh pr list # rtk 輸出緊湊 PR 表
# 檢視某個 PR 詳情
gh pr view 42 # rtk 輸出 PR 詳情 + 檢查狀態
上午:功能開發
# 檢視專案結構
ls -la # rtk 目錄樹(~150 tokens vs ~800)
# 檢視核心檔案
read src/main.rs # rtk 智慧讀取(保留簽名+關鍵邏輯)
# 執行測試
cargo test # rtk 僅失敗測試(-90%)
# 提交並推送
git commit -m "feat: add auth" # rtk → "ok abc1234"
git push # rtk → "ok main"
下午:CI 除錯
# 檢視 CI 執行結果
gh run list # rtk 緊湊工作流狀態
# 排查失敗
docker ps # rtk 緊湊容器列表
docker logs my-container # rtk 去重日誌
# 修復後重新測試
rtk test pytest # 通用測試包裝,僅顯示失敗
一天下來省了多少?
| 場景 | 原始 Token | RTK Token | 節省 |
|---|---|---|---|
| 目錄/檔案瀏覽 | 50,000 | 10,000 | -80% |
| Git 操作 | 18,100 | 3,700 | -80% |
| 測試執行 | 41,000 | 4,100 | -90% |
| 建置/Lint | 18,000 | 3,600 | -80% |
| 其他 | 10,000 | 2,000 | -80% |
| 合計 | 137,100 | 23,400 | -83% |
如果你按 $10/百萬 token 的 Claude 3.5 Sonnet 定價計算,一天可以省下 ~$1.14。一個月 20 個工作日就是 ~$22.8——看起來不多?但如果是團隊 10 個人呢?每月 $228,每年 $2,736。
對於使用更貴的模型(如 Claude Opus),節省金額會更可觀。
架構原理
RTK 的設計哲學很樸素:不做 LLM 能做的事,只做 LLM 不需要看的東西。
// 偽程式碼:RTK 的核心處理流程
fn process_command(cmd: &str, output: &str) -> String {
match cmd_type(cmd) {
CmdType::GitStatus => compact_git_status(output),
CmdType::TestRunner => failures_only(output),
CmdType::FileList => group_by_dir(output),
CmdType::Logs => deduplicate(output),
CmdType::Build => errors_only(output),
_ => heuristic_summary(output),
}
}
RTK 對每種指令類型套用不同的壓縮策略:
git status:只保留修改檔案的簡要列表,去掉詳細的 staged/unstaged 狀態說明cargo test:只顯示失敗的測試案例,通過的測試合併為一行統計ls/find:按目錄分組,只顯示檔案名稱,不顯示權限/大小/日期docker logs:去除重複行,相同日誌行顯示首次 + 計數aws describe-*:去除中繼資料,只保留關鍵屬性(且自動過濾敏感資訊)
整個 RTK 二進位檔案編譯後只有幾 MB,啟動開銷 <10ms,幾乎零感。
適用場景與限制
✅ 非常適合
- AI 程式設計助手重度使用者:每天用 Claude Code、Cursor、Gemini CLI 工作 4+ 小時
- 多語言專案:Rust/Go/Python/TypeScript 混合專案,各種測試 runner 都覆蓋
- 團隊協作:統一 token 預算,減少 CI/CD 中 LLM 呼叫成本
- 雲端部署:在 CI 管線中使用 AI 工具時(按 token 付費)
⚠️ 需要注意
- Hook 只覆蓋 Bash 呼叫:Claude Code 的內建工具不經過 RTK
- 過度壓縮可能遺失上下文:除錯複雜問題時可能需要
--verbose檢視完整輸出 - 需要重新適應:AI 工具的輸出變短後,你可能需要調整對 AI 的提問方式
總結
RTK 是我見過最實用、最立竿見影的 AI 程式設計輔助工具之一。它沒有炒作、沒有花俏的 UI,就是一個安靜工作的 Rust 二進位檔案,幫你每天省 token、省錢、提速。
30 秒安裝,永久受益。 這就是開源精神——用最少的程式碼,解決最實際的痛點。
快速開始:
brew install rtk # macOS
rtk init -g # 啟用 Claude Code 整合
# 重新啟動 Claude Code,開始享受 token 節省
如果你的 AI 程式設計工具每天執行幾十上百條指令,RTK 絕對值得嘗試。68K+ GitHub Stars 已經證明了它的價值——現在輪到你了。
相關連結:
- GitHub: rtk-ai/rtk
- 官網: rtk-ai.app
- Discord: 社群交流
- 架構文件: ARCHITECTURE.md