用 Claude Code 寫程式一段時間後,我注意到一個問題:每次 Claude 執行 git status、git log 這類指令,回傳的內容往往又長又冗,而這些文字全都會佔用寶貴的 context window。直到安裝了 RTK(Rust Token Killer),情況才有了明顯改善。
什麼是 RTK?
RTK 是一個用 Rust 寫成的 CLI proxy 工具,專門設計來壓縮 CLI 輸出,讓 AI coding assistant 的 token 消耗大幅降低。它的使用方式非常簡單——只要在原本的指令前面加上 rtk 前綴即可:
# 原本
git status
# 使用 RTK
rtk git status實際安裝後的體感
安裝 RTK 之後,最直接的感受就是 Claude Code 執行 git 指令時,回傳到 CLI 上的內容明顯變少了。以前 git status 會吐出一大堆檔案路徑和教學提示,現在只剩精簡的摘要。我的實際統計數據:
46 個指令累計節省了 10,100 tokens(50.2%)
git status平均節省 84.3%(7 次執行,共省 6,200 tokens)git commit節省 97.2%git stash pop節省 99.7%tsc --noEmit節省 29.2%
RTK 到底做了什麼?四大核心機制
為了搞清楚 RTK 究竟如何減少 token,我做了深入研究。RTK 主要透過四個機制運作:
1. 結構壓縮:去除冗餘文字
以 git status 為例,原始輸出有 127 行,包含大量教學提示文字(如「use git add ... to update what will be committed」),RTK 把這些全部去掉,只保留核心資訊:
# 原始 git status(127 行)
On branch main
Your branch is up to date with 'origin/main'.
Changes not staged for commit:
(use "git add ..." to update what will be committed)
(use "git restore ..." to discard changes)
modified: src/app/[locale]/layout.tsx
modified: tsconfig.json
Untracked files:
(use "git add ..." to include in what will be committed)
.playwright-mcp/console-2026-04-12T16-17-47-909Z.log
... (還有 110+ 行檔案路徑)
# RTK git status(16 行)
* main...origin/main
~ Modified: 2 files
src/app/[locale]/layout.tsx
tsconfig.json
? Untracked: 114 files
.claude/scheduled_tasks.lock
.claude/settings.local.json
... +104 more從 127 行壓縮到 16 行,減少 86%。RTK 用 ~ 代表 modified、? 代表 untracked,AI 一樣能完整理解狀態。
2. 截斷與計數:只顯示關鍵項目
當有大量 untracked 檔案時,RTK 只列出前 10 個,其餘用 ... +104 more 表示。AI 不需要逐一看完所有檔案路徑,知道「有 114 個 untracked 檔案」就夠了。
3. 訊號過濾:只保留重要資訊
對於 git log,RTK 會把多行的 Author、Date、完整 hash 壓縮成單行格式,並在 commit message 過長時自動截斷:
# 原始 git log -5(91 行)
commit 1e1e563b900682e66c6b4597e7326f6c1373ddb3
Author: tim.chao
Date: Tue Apr 14 00:20:12 2026 +0800
fix(ui): Safari tinting div...
The previous fix (4d328d7a) lowered z-index...
(完整 commit message)
# RTK git log -5(25 行)
1e1e563b fix(ui): Safari tinting div... (20 minutes ago)
The previous fix (4d328d7a) lowered z-index...
[+3 lines omitted]從 91 行壓到 25 行,減少 59%。長 commit message 會被截斷並標示省略行數。
4. 針對不同工具的專屬 parser
RTK 不是單純的文字截斷工具。它為每個支援的 CLI 工具都寫了專屬的 Rust parser:
Git 系列:status、log、diff、commit、stash 各有不同的壓縮策略
TypeScript:
tsc錯誤按檔案和錯誤碼分組測試框架:vitest、playwright 只顯示失敗的測試(90-99% 節省)
套件管理:pnpm install 去除進度條和冗余輸出(90% 節省)
Lint 工具:ESLint 違規按規則分組
不認識的指令則會原樣傳遞(passthrough),所以任何時候加上 rtk 前綴都是安全的。
在 CLAUDE.md 中配置
RTK 支援透過 rtk init --global 把使用說明寫入 ~/.claude/CLAUDE.md,這樣 Claude Code 在每次對話中都會自動使用 rtk 前綴。我的 CLAUDE.md 中就配置了完整的 RTK 指令對照表,涵蓋 build、test、git、GitHub、JS/TS 工具鏈等所有類別。
結語
RTK 是目前我在 Claude Code 工作流中 CP 值最高的工具之一。它不改變任何工作流程,只需要在指令前加個前綴,就能平均省下 50% 的 token。對於像我這樣每天大量使用 AI coding assistant 的開發者來說,這等於直接把 context window 的有效容量翻倍。如果你也在用 Claude Code,強烈推薦試試。