TL;DR:RTK は Rust で書かれた CLI プロキシツールで、LLM プログラミングツール(Claude Code、Cursor、Gemini CLI など)がコマンドを実行する際、出力を自動的にフィルタリング・圧縮し、トークン消費を 60〜90% 削減します。シングルバイナリ・ゼロ依存・100+ コマンド対応。インストールはワンコマンドだけ。
Claude Code、Cursor、Gemini CLI といった AI プログラミングアシスタントを毎日使っているなら、こんな問題に必ず直面するはずです。AI が git status、ls、cat、cargo test などのコマンドを実行するたびに、生の出力がそのまま LLM のコンテキストウィンドウに押し込まれ、トークンをガンガン消費してしまう。
30 分のコーディングセッションで約 118,000 トークンを消費し、そのうち 94,100 トークンは冗長情報です。
RTK はこの問題を解決するために生まれました。Rust で書かれ、コンパクト(単一バイナリ、ゼロ依存)で、コマンドの実行パスに割り込んで出力をスマートにフィルタリングし、重要な情報だけを残します。30 分のセッションで 118,000 トークンが約 23,900 に — 80% の削減です。
RTK とは?
RTK(Rust Token Killer = Rust 製のトークンキラー)は、あなたと 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 のインストール
インストールはとてもシンプル。ランタイムへの依存は一切なく、独立したバイナリファイルです。
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" と表示されれば OK
rtk gain # トークン節約の統計が表示される
名前の衝突に注意: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 を通らないため、自動では書き換えられません。これらの場面でも圧縮出力を得たい場合は、シェルコマンド(cat/rg/find)を直接使うか、rtk read、rtk grep、rtk findを手動で呼び出してください。
RTK が対応するコマンド一覧
RTK は 100 以上のコマンドの圧縮出力に対応し、ファイル操作、Git、テスト、ビルド、パッケージ管理、クラウドサービスなど幅広いシーンをカバーします。
ファイル操作
rtk ls . # スマートディレクトリツリー(トークン -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 トークン) # rtk git push(1 行、~10 トークン)
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 行に圧縮。トークン 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 # ワンラインの ID 情報
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> # ヒューリスティック要約
トークン節約の分析:RTK の効果を確認
RTK には詳細な統計機能が組み込まれており、どのくらいトークンを節約したか一目でわかります:
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 アイコン + インラインフォーマット(追加のトークン節約)
-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 トークン 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 # 汎用テストラッパー、失敗のみ表示
一日でどのくらい節約できた?
| シーン | 元のトークン | RTK トークン | 節約 |
|---|---|---|---|
| ディレクトリ/ファイル閲覧 | 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% |
Claude 3.5 Sonnet の $10/百万トークンで計算すると、一日で約 $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 が混在し、様々なテストランナーをカバー
- チーム協業:トークン予算を統一し、CI/CD での LLM 呼び出しコストを削減
- クラウド環境:CI パイプラインで AI ツールを使う場合(トークン課金)
⚠️ 注意点
- Hook は Bash 呼び出しのみ対象:Claude Code の組み込みツールは RTK を経由しない
- 過度な圧縮でコンテキストが失われる可能性:複雑な問題のデバッグ時は
--verboseで完全な出力を確認したほうがよい - 慣れが必要:AI ツールの出力が短くなるので、AI への指示の出し方を調整する必要があるかもしれない
まとめ
RTK は私が知る中で最も実用的で、即効性のある AI プログラミング支援ツールの一つです。派手な宣伝も、派手な UI もない。静かに働く Rust のバイナリが、毎日のトークン節約・コスト削減・スピードアップを実現してくれます。
30 秒でインストール、効果は永続。 これこそオープンソースの精神 — 最小のコードで、最も実用的な課題を解決する。
クイックスタート:
brew install rtk # macOS
rtk init -g # Claude Code 統合を有効化
# Claude Code を再起動して、トークン節約を開始
AI プログラミングツールが毎日何十・何百ものコマンドを実行するなら、RTK は絶対に試す価値があります。68K+ の GitHub Stars がその価値を証明しています — さあ、あなたの番です。
関連リンク:
- GitHub: rtk-ai/rtk
- 公式サイト: rtk-ai.app
- Discord: コミュニティ
- アーキテクチャドキュメント: ARCHITECTURE.md