テック技報最新号へ →
AIコーディング

rtk でエージェントが読むコマンド出力を圧縮する(+Claude Code のトークン節約8施策)

git status や cargo test の長い出力は、そのままエージェントの入力トークンになる。rtk(Rust Token Killer)を PreToolUse hook で挟むと、Bash 経由のコマンドが rtk git status のように書き換わり、要点だけに圧縮された出力が返る。どれだけ減ったかは rtk gain で確認できる。

@tegnike · 投稿 2026-04-10
#token#コスト#claude-code#hooks#rtk#cli

どんな場面で使う?

  • テストやビルドのログが長く、従量課金の API 代やサブスクの使用量が気になる
  • コンテキストがログで埋まり、auto-compact が早く来る

手順

  1. インストールして、本物の rtk かを確かめる(crates.io に同名の別プロジェクトがある)
    bash
    brew install rtk          # Windows は winget install rtk-ai.rtk
    rtk gain                  # 統計が出れば正しい rtk
  2. エージェントに組み込む
    bash
    rtk init -g               # Claude Code / Copilot(既定)
    rtk init -g --codex       # Codex
    rtk init -g --agent cursor

    Claude Code・Copilot・Cursor・Gemini CLI・Codex は hook で自動書き換え(Codex は AGENTS.md も併用)、Windsurf などは指示ファイルに書く方式

  3. 効果を確認する
    bash
    rtk gain --graph          # 節約量の推移
    rtk discover              # rtk を通していない「取りこぼし」を探す
    rtk bypass <cmd>          # 圧縮せず生の出力が欲しいとき(記録はされる)

注意点

  • 効くのは Bash ツール経由だけ。Claude Code 組み込みの Read/Grep/Glob は通らないので、効果を出したいなら cat・rg・find をシェルで使わせるか、rtk のコマンドを直接呼ばせる
  • トークン数は「バイト数÷4」の推定(トークナイザは同梱していない)。割合は信頼できるが絶対値は概算で、しかも Bash の出力分だけの数字
  • 圧縮で必要な行まで落ちることがある。エラーの全文が要る場面では rtk bypass を使わせる
  • テレメトリは既定でオフ。ライセンスは Apache-2.0+BUSL-1.1 の rtk と、圧縮エンジンを含まない Apache-2.0 のみの rtk-oss の2版(同名バイナリなので同時に入れられない)。API 通信そのものを圧縮する別デーモン rtk-proxy もある

あわせて効く Claude Code の節約(Max 20x でも足りなかった人の8施策から)

  • ~/.claude/ は共通のものだけにし、プラグイン・MCP・agents・skills を断捨離する。rules は frontmatter paths: ["**.py"] で、該当ファイルを触るときだけ読ませる
  • 「原始人」口調の出力圧縮ルール(敬語・前置き・ぼかし・冗長助詞を削る、体言止め、接続は「→」)。コード・コミットメッセージ・PR 本文と破壊的操作の確認は適用除外にしておく。同じ圧縮を rules や設計書の側にもかける
  • Jupyter は jupytext で .ipynb と .py を同期し、Claude には .py だけ触らせる(base64 の画像入り JSON を読ませない)。jupytext --sync は hook で自動化
  • 長い作業は1スキルに詰めず、作業計画書・引き継ぎファイルを挟んで複数スキルに分け、その切れ目で /clear
  • 大量の資料はローカル LLM で RAG 化し、Claude には質問だけ投げさせる
  • 単純作業は Haiku/Sonnet に(強いモデルをどこに使うかの判断ルール(指揮・相談・検証の選び方))
  • sandbox を有効にすると上位ディレクトリの探索が止まり、副次的に節約になる。大きなデータやビルド成果物は .claudeignore で最初から見せない

関連: Claude Code のプロンプトキャッシュ:席を立つ前に一言、途中でモデルや MCP を変えない ※モデル・料金、Claude Code: auto-compact は「要約に置き換える」(末尾1Mを残さない)

出典

X の元の投稿を開く