//TIM.CHAO
CLAUDE CODE 使用技巧 · 4

RTK(Rust Token Killer):讓 AI Coding 省下 50% Token 的秘密武器

2026年4月13日5 分鐘閱讀AI

用 Claude Code 寫程式一段時間後,我注意到一個問題:每次 Claude 執行 git statusgit 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 各有不同的壓縮策略

  • TypeScripttsc 錯誤按檔案和錯誤碼分組

  • 測試框架: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,強烈推薦試試。