この記事ではClaude Codeに特化して解説します。Claude Code全般は Claude Code完全ガイド2026:インストールから本番運用まで をご覧ください。
RTK Claude Codeとは:トークン消費を60〜90%削減するCLIプロキシ
Claude Codeを使っていると、git statusやlsのような単純なコマンドでも数千トークンを消費する。RTKを導入すればコマンド出力がLLM向けに最適化され、トークン消費を60〜90%削減できる。
RTK(Rust Token Killer)は、コマンド出力をLLM向けにフィルタリング・圧縮するCLIプロキシツール。依存関係ゼロの単一Rustバイナリで、オーバーヘッドは10ms未満。フック設定1行で、既存のワークフローを一切変えずにトークン消費を大幅に削減する。
# インストールしてフック設定するだけ
brew install rtk
rtk init -g # Claude Code用グローバルフック設定
# 以降、Claude Codeを再起動すればコマンドが自動的にRTK経由で実行される
100以上のコマンドに対応し、Claude Code、Cursor、GitHub Copilot、Gemini CLIなど主要なAIコーディングツールで使える。
RTKの4つの圧縮戦略:Claude Codeで80%削減できる仕組み
RTKは単に出力を切り詰めるのではなく、4つの最適化戦略でLLMに必要な情報だけを残す。
例: git status"] --> B["Smart Filtering
ノイズ・空白・コメント除去"] B --> C["Grouping
類似項目を集約"] C --> D["Truncation
冗長部分を削減"] D --> E["Deduplication
重複行をカウント統合"] E --> F["圧縮出力"] style A fill:#4A90D9,color:#fff style F fill:#50C878,color:#fff
| 戦略 | 処理内容 | 効果 |
|---|---|---|
| Smart Filtering | ノイズ(コメント、空白行、ボイラープレート)を除去 | 不要情報の排除 |
| Grouping | ファイルをディレクトリ別、エラーを種類別に集約 | 構造化された出力 |
| Truncation | コンテキストを保持しつつ冗長部分を削減 | 必要十分な情報量 |
| Deduplication | 繰り返しログ行をカウント付きで統合 | ログ出力の大幅圧縮 |
たとえばcargo testの出力をRTK経由で処理すると、失敗テストのみを抽出してトークン数を大幅に削減できる。LLMが必要とするのは「何が失敗したか」であり、成功テストの詳細ではないからだ。
RTKのインストールと初期設定:Claude Codeに3分で導入
インストール方法
3つの方法から選べる。
# 方法1: Homebrew(推奨)
brew install rtk
# 方法2: クイックインストール(Linux/macOS)
curl -fsSL https://raw.githubusercontent.com/rtk-ai/rtk/refs/heads/master/install.sh | sh
# 方法3: Cargo(Rust環境がある場合)
cargo install --git https://github.com/rtk-ai/rtk
インストール確認:
rtk --version
# → rtk 0.28.2
注意: crates.ioに同名パッケージ(Rust Type Kit)が存在する。cargo install rtkではなく、必ず--gitフラグ付きでインストールすること。
AIツール別のフック設定
RTKの真価はAuto-Rewriteフックにある。一度設定すれば、Bashコマンドが自動的にRTK経由で実行される。
# Claude Code(デフォルト)
rtk init -g
# GitHub Copilot(VS Code)
rtk init -g --copilot
# Cursor
rtk init -g --agent cursor
# Gemini CLI
rtk init -g --gemini
# Windsurf(プロジェクトスコープ)
rtk init --agent windsurf
# Cline / Roo Code
rtk init --agent cline
設定後、対象のAIツールを再起動するだけで有効になる。
| AIツール | インストールコマンド | 方式 |
|---|---|---|
| Claude Code | rtk init -g |
PreToolUseフック(bash) |
| GitHub Copilot | rtk init -g --copilot |
PreToolUseフック + 透過リライト |
| Cursor | rtk init -g --agent cursor |
hooks.jsonフック |
| Gemini CLI | rtk init -g --gemini |
BeforeToolフック |
| Windsurf | rtk init --agent windsurf |
.windsurfrules(プロジェクト) |
| Cline/Roo Code | rtk init --agent cline |
.clinerules(プロジェクト) |
重要: フックはBashツール経由のコマンドにのみ適用される。Claude Codeの組み込みツール(Read, Grep, Glob)はフックの対象外で、そのまま動作する。
RTK Claude Codeのトークン削減効果:30分で94,000トークン節約
公式READMEに掲載されている30分のClaude Codeセッションの実測データを見てみよう。
| 操作 | 実行回数 | 標準出力(トークン) | RTK使用時(トークン) |
|---|---|---|---|
ls / tree |
10回 | 2,000 | 400 |
cat / read |
20回 | 40,000 | 12,000 |
grep / rg |
8回 | 16,000 | 3,200 |
git status |
10回 | 3,000 | 600 |
cargo test |
5回 | 25,000 | 2,500 |
cargo build |
5回 | 20,000 | 4,000 |
| その他 | 12回 | 12,000 | 1,200 |
| 合計 | 70回 | 118,000 | 23,900 |
1セッションで約94,000トークンの節約。Claude Code Proプラン(月額$100〜$200)のユーザーなら、同じ予算でより多くのセッションを実行できる。API課金ユーザーなら直接的なコスト削減になる。
対応コマンド一覧:15カテゴリ・100以上のコマンド
RTKが対応するコマンドは多岐にわたる。主要カテゴリを紹介する。
ファイル操作
rtk ls # トークン最適化されたディレクトリツリー
rtk read file.rs # スマートファイル読み取り(-l aggressiveオプションあり)
rtk find "*.ts" # コンパクトな検索結果
rtk grep "TODO" # グループ化された検索結果
rtk diff a.rs b.rs # 凝縮されたdiff
Git操作
rtk git status # コンパクトなステータス
rtk git log -n 10 # 1行コミット表示
rtk git diff # 凝縮されたdiff
rtk git push # 最小出力(例: "ok abc1234")
テスト実行
rtk test cargo test # 失敗のみ表示
rtk pytest # Python テスト
rtk vitest run # Vitest コンパクト表示
rtk go test ./... # Go テスト NDJSON
rtk rspec # Ruby テスト JSON
ビルド・リント
rtk lint # ESLint ルール/ファイル別グループ化
rtk tsc # TypeScriptエラーをファイル別集約
rtk cargo build # Cargo出力
rtk ruff check # Python リント JSON
AWS・Docker
rtk aws sts get-caller-identity # 1行のID情報
rtk aws ec2 describe-instances # コンパクトなインスタンス一覧
rtk docker ps # コンパクトなコンテナ一覧
rtk docker logs <container> # 重複排除済みログ
rtk kubectl pods # コンパクトなPod一覧
RTKの効果を可視化:rtk gainとrtk discoverの使い方
RTKにはトークン削減効果を可視化する分析コマンドが組み込まれている。
# 累計のトークン削減統計
rtk gain
# 30日間のASCIIグラフ表示
rtk gain --graph
# コマンド別の使用履歴と削減率
rtk gain --history
# まだRTK経由になっていないコマンドを検出
rtk discover
# RTKの採用率メトリクス
rtk session
rtk discoverは特に便利だ。Claude Codeの実行履歴を分析し、「RTKを使えばさらに削減できたコマンド」を提案してくれる。導入初期に実行して最適化の余地を確認するのがおすすめだ。
他のトークン削減手法との比較
トークン消費を抑える方法はRTK以外にもある。それぞれの特徴を整理した。
| 手法 | 削減率 | 導入コスト | 適用範囲 | 透過性 |
|---|---|---|---|---|
| RTK | 大幅削減 | フック1行 | 100+コマンド | 完全透過 |
| 手動でコマンド出力を加工 | 可変 | 毎回手作業 | 限定的 | なし |
.clinerules等でプロンプト制御 |
20-40% | ルール記述 | プロンプトのみ | 部分的 |
| コンテキストウィンドウ制限 | 可変 | 設定変更 | 全体 | 制限あり |
| LLMモデルの切替(小型モデル) | コスト減 | なし | 全体 | 品質低下あり |
RTKの強みは完全透過であること。フックが自動的にコマンドをリライトするため、開発者もAIも意識する必要がない。Claude CodeのAuto Modeと組み合わせれば、自律的なコーディングセッションのコスト効率が大幅に向上する。
RTKのCLAUDE.md連携とプロジェクト設定
RTKはClaude CodeのCLAUDE.mdに記述することで、プロジェクト単位でさらに効果を高められる。公式リポジトリでも推奨されている設定例を紹介する。
# CLAUDE.md に追記する例
## RTK設定
- rtk gain でトークン削減統計を確認
- rtk gain --history でコマンド別の使用履歴と削減率を確認
- rtk discover でまだRTK経由になっていないコマンドを検出
rtk proxyによるデバッグ
RTKのフィルタリングが原因でコマンドの出力が足りないと感じた場合は、rtk proxyでフィルタリングをバイパスできる。
# RTKのフィルタリングを一時的にバイパス
rtk proxy git diff --stat
# 通常のRTK経由(フィルタリングあり)
rtk git diff --stat
フックの仕組み:PreToolUseフック
Claude Code向けのRTKフックは、~/.claude/hooks/ ディレクトリに配置されるPreToolUseフックとして動作する。Claude CodeがBashツールでコマンドを実行する前に、RTKがコマンドをインターセプトして出力を最適化する。
// ~/.claude/hooks.json の設定例(rtk init -g で自動生成)
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"command": "rtk hook pre-tool-use"
}
]
}
}
この仕組みにより、Claude Codeの組み込みツール(Read, Grep, Glob等)はフック対象外でそのまま動作する。影響を受けるのはBashツール経由のコマンドのみだ。
RTKのトラブルシューティングとよくある問題
名前衝突の問題
crates.ioに別のrtkパッケージ(Rust Type Kit)が存在する。cargo install rtkを実行すると別のツールがインストールされるため、必ず--gitフラグを使う。
# 正しいインストール確認
rtk --version
# → rtk 0.28.2 と表示されれば正常
# もし "rtk" コマンドが見つからない、または別のバージョンが表示される場合
which rtk
# → パスを確認して正しいバイナリを使用しているか確認
# rtk gainが動作しない場合は名前衝突の可能性
rtk gain
# → "command not found" なら別パッケージの可能性が高い
フック設定の確認
RTK導入後にトークン削減効果が出ない場合、フックが正しく設定されているか確認する。
# フック設定の確認
cat ~/.claude/hooks.json
# Claude Codeを再起動
# フック設定変更後は必ずClaude Codeの再起動が必要
# RTKの採用率を確認
rtk session
# → RTK経由で実行されたコマンドの割合が表示される
RTKを一時的に無効化する
特定のコマンドでフィルタリングが不要な場合や、RTKが問題を起こしている場合は一時的に無効化できる。
# 特定コマンドだけRTKをバイパス
rtk proxy <command>
# フック自体を一時的に無効化するには
# ~/.claude/hooks.json を一時的にリネーム
mv ~/.claude/hooks.json ~/.claude/hooks.json.bak
# Claude Codeを再起動
# 確認後に元に戻す
mv ~/.claude/hooks.json.bak ~/.claude/hooks.json
関連記事: Claude Code完全ガイド2026:インストールから本番運用まで
まとめ:RTK導入で変わるAIコーディングのコスト構造
RTKが解決するのは「AIコーディングツールのトークン消費が多すぎる」という問題だ。
- 導入は3分:
brew install rtk && rtk init -g→ Claude Code再起動で完了 - 削減効果は即座に実感: 30分セッションで約94,000トークン(80%)削減
- ワークフロー変更ゼロ: フックが透過的に動作し、既存の使い方をそのまま維持
- 幅広い対応: Claude Code、Cursor、GitHub Copilot、Gemini CLIなど主要ツールをカバー
OpenHandsやBrowser UseのようなAIエージェントを長時間稼働させるケースでは、トークン消費の最適化がランニングコストに直結する。RTKはその最もシンプルな解決策だ。