Context Inspector:Claude Code のコンテキスト浪費を見つける
Claude Code のコンテキストを何が埋めているか、再読み込みや重複がどれだけあるか、コンパクトで何が残ったかを表示します。
権限
- ファイルを書き込むお使いのマシン上でファイルを作成・上書きできます($.fs.write)。
- ツール呼び出しを傍受Claude が行うすべてのツール呼び出しを参照でき(tool.call / tool.check)、ブロックや変更も可能です。
- プロンプトを読み取る入力内容と会話のトランスクリプトを参照できます(prompt.* / session.append / session.messages)。
- UI を変更Claude Code の画面に描画します。バンド、ペイン、ステータス表示、トーストなど(ui.render / $.ui.*)。
- コマンド・ツールを追加あなたや Claude が呼び出せる新しいスラッシュコマンドやツールを登録します($.command.register / $.tool.register)。
- 検証バージョン
- v2.1.303
- 最終検証日
- 必要バージョン
- Claude Code ≥ 2.1.287
- 表示先
- ステータス、ペイン、トースト
Claude Code 内でインストール:
/plugin install context-inspector --marketplace YeonwooSung/my-claude-code-modsこのModでできること
Context Inspector は、Claude Code のコンテキスト浪費を探すコミュニティ Mod で、作者は YeonwooSung(my-claude-code-mods)です。会話に入ってくるすべて(プロンプト、返信、ツール結果、添付)の台帳を付け、次の三つに答えます。いま何がウィンドウを埋めているか、同じ情報がなぜ何度も戻ってくるか、コンパクトで何が残り何が失われたか。
ctx 62% · waste≈8.1k のようなステータス行を追加します。パーセントは実測値、浪費は推定値です。コマンドも三つ追加されます。/context-inspect は、概要、占有物、再読み込み、類似出力、コンパクト、効率、アドバイスの各セクションを持つテキストレポートを出力します。/context-pane はライブのペインを開きます。/context-export は台帳をメタデータのみの JSONL として保存します。
分析は具体的です。ファイルの再読み込みは、以前のコピーがまだウィンドウに残っている場合(純粋な無駄)、編集後、コンパクト後などに分類されます。近い重複のツール出力は意味ではなく語の SimHash でグループ化されます。コンパクトのあとは、編集・読み込みしたファイル、エラー、ユーザー識別子が要約にまだ現れるかを確認します。作者の README は Claude Code 2.1.287 以降を必要とします。
デモ
録画では、小さなデモプロジェクトでこの Mod を読み込んだ Claude Code を起動し、README.md を読んでプロジェクトを一文で説明するよう Claude に頼みます。ターンが終わると、フッターに context-inspector: ctx 4% · waste≈0 が表示されます。続けて /context-inspect を実行します。レポートには、有効なトークン(17 項目で約 6.2k)、カテゴリ別の主な占有物(スキル一覧、MCP の説明、遅延ロードされるツールの添付)、再読み込み、類似出力、コンパクト、効率、アドバイスが並びます。この短いセッションでは二度読まれたファイルがないため、浪費はゼロで、アドバイスは目立つ点なしと表示されます。
インストール
インストールブロックのいずれかの方法を使ってください。どれも作者自身のマーケットプレイスから直接インストールします。ステータス行は、次のセッション開始後、最初のターンが完了すると表示されます。
$ install context-inspector
Claude Code 2.1.287 以上が必要
作者のマーケットプレイスからインストール: YeonwooSung/my-claude-code-mods
1.Claude Code 内で1行
/plugin install context-inspector --marketplace YeonwooSung/my-claude-code-mods実行中のセッション(v2.1.275 以降)に貼り付けます。最初に Claude Code がマーケットプレイスの追加を確認します。
2.シェルから
claude plugin marketplace add YeonwooSung/my-claude-code-mods claude plugin install context-inspector@my-claude-code-modsその後、すでに開いているセッションでは /reload-plugins を実行してください。
3.インストールせずに試す
git clone https://github.com/YeonwooSung/my-claude-code-mods claude --plugin-dir ./my-claude-code-mods/context-inspectorその1セッションだけ Mod を読み込みます。設定には何も追加されません。
仕組み
モジュールは hooks/register.tsx の register 関数ひとつで、イベントをラップしてそのまま次へ渡します。記録の各ステップは自身のエラーを握りつぶすヘルパーを通るため、インスペクターがセッションを壊すことはありません。ツール呼び出しは実行の前後に記録され、結果はそのまま返されます。
on('tool.call', async ($, e, next) => {
const id = e.tool_use_id
if (id !== undefined) safe(() => ingestToolCall(ledger, id, String(e.tool), e.agentId, e as unknown as Record<string, unknown>))
const answer = await next(e)
if (id !== undefined) safe(() => ingestToolResult(ledger, id, answer))
return answer
}).catch(($, e, next) => next(e))この抜粋は hooks/register.tsx からのものです。行は session.append から、実測のリクエストサイズは turn.step から、コンパクトは session.compact から届きます。各ターンのあと、turn.complete が再描画を一件キューに入れ、$.session.usage() を読んでステータス行を書き込みます。hooks/core/ の分析コードはローカルのインポートだけを使う素の TypeScript で、台帳の上限は 20,000 項目です。
カスタマイズ
/config にはオプションが二つあります。outputDir は /context-export の書き込み先で、空なら ~/.claude/context-inspector です。toastAdvice(既定でオン)は、重大度の高い推奨が初めて現れたときにセッションごとに一度トーストを表示します。コマンドは引数を受け付けます。/context-inspect advice は一つのセクションだけを表示し、--agents はサブエージェントも含めます。
権限と安全性
実行する前に、プラグインが実行できるすべてのファイルを読みました。マニフェスト、hooks/hooks.json、hooks/register.tsx、そしてマスキング規則を含む hooks/core/ のすべてです。package.json、インストールスクリプト、バイナリ、バンドルされたコードはなく、インポートはローカルファイルだけです。
- ネットワーク、プロセス、デーモン、テレメトリ: いずれもありません。fetch もシェルコマンドも、Claude Code の終了後に動き続けるものもありません。
- UI の変更: ステータス行、トースト、ペイン。コマンドの追加: 上の三つ。
- すべてのツール呼び出しと行を観察します(
tool.call、session.append、turn.step、session.compact)。これらはゲート型フックですが、いずれも次のハンドラーの結果をそのまま返し、.catchのフォールバックがあります。何かをブロックしたり書き換えたりはしません。またvalidateは、組織が Claude Code を管理している環境では、個人がインストールしたプラグインのsession.compactフックは、組織が管理設定に載せない限り動かないと伝えています。 - ファイルの書き込み:
/context-exportのときだけ、$.fs.writeで<outputDir>/<セッション ID>/context-<load>-<n>.jsonlに書き込みます。既定の場所は~/.claude内のプラグイン専用サブフォルダです。~を展開するためにHOMEを読みます。ファイルパスはそのまま書き出され、それ以外の対象は可能な範囲でマスクされます。作者は共有する前にエクスポートを確認するよう述べています。 - プロンプトへの影響: 見つかりませんでした。プロンプトやツール結果にテキストを注入せず、アドバイスはあなたにだけ表示されます。
- 外部要件: なし。ライセンス: Apache-2.0、リポジトリのルートに LICENSE ファイルがあります。
claude plugin validate はエラーも警告も報告せず、上記の注記のみでした。作者の 102 件のテストは Claude Code 2.1.303 で合格しました。
- ファイルを書き込む
- お使いのマシン上でファイルを作成・上書きできます($.fs.write)。
- ツール呼び出しを傍受
- Claude が行うすべてのツール呼び出しを参照でき(tool.call / tool.check)、ブロックや変更も可能です。
- プロンプトを読み取る
- 入力内容と会話のトランスクリプトを参照できます(prompt.* / session.append / session.messages)。
- UI を変更
- Claude Code の画面に描画します。バンド、ペイン、ステータス表示、トーストなど(ui.render / $.ui.*)。
- コマンド・ツールを追加
- あなたや Claude が呼び出せる新しいスラッシュコマンドやツールを登録します($.command.register / $.tool.register)。
互換性とトラブルシューティング
macOS 上の Claude Code 2.1.303 で確認しました(validate とテスト)。ステータス行が表示されない場合:
claude --versionが 2.1.287 以降であること。- ターンが一度完了していること。ステータス行は
turn.completeのあとに描画されます。 - ステータス行がなくても
/context-inspectはレポートを出力するので、Mod が読み込まれているかの確認に使えます。 - VS Code のチャットパネルではフックとコマンドのテキストだけが使えるため、
/context-inspectを使ってください。
README にある既知の制限:リロード、再開、/clear のあとは台帳が最初からになり、コンパクト後の生存は部分文字列の一致で判定されるため、言い換えられた内容は失われたと数えられます。
よくある質問
- Context Inspector はセッションを変更したり、モデルを呼び出したりしますか?
- いいえ。作者の README は観察だけを行うと述べており、コードもその通りです。フックはすべてのツール呼び出し、行、ステップ、コンパクトをそのまま下流へ渡し、モデルは呼び出しません。読み取る Claude Code の状態は使用量の数値と、リロード後に一度だけ読む既存のメッセージだけです。
- 浪費の数値は正確ですか?
- いいえ。ウィンドウの使用量は API が報告したトークン数に基づきますが、項目ごとのサイズと浪費の数値は推定で、レポートでは ≈ が付きます。項目のサイズは文字数を 4 で割り、0.5〜2.0 の補正係数を掛けたものです。
- /context-export は何をどこに書き込みますか?
- メタデータだけを、<outputDir>/<セッション ID>/ 以下の JSONL ファイルとして書き込みます。既定は ~/.claude/context-inspector です。ファイルパスはそのまま残り、コマンド、パターン、URL は可能な範囲でマスクされ 200 文字に切り詰められます。コマンドを実行するまで何も書き込まれません。
- Context Bar との違いは何ですか?
- Context Bar は /context と同じようにウィンドウをカテゴリで分けます。Context Inspector は会話に入った個々の項目を追跡するので、どのファイルが二度読まれたか、どの出力が繰り返されているか、コンパクトでどの編集済みファイルが落ちたかを示せます。バーの代わりにステータス行、ペイン、テキストレポートを追加します。
- /clear や再開のあとも動きますか?
- 制限付きで動きます。台帳はクリアされ、そのあとセッションのメッセージからメインの会話が一度だけ読み戻されます。添付、サブエージェント、タイミングは復元されず、リロード後の最初のコンパクトでは復元したプロンプトと返信がすべて破棄されたものとして数えられます。
# 関連する Mod
おすすめContext Bar
Claude Code のコンテキストウィンドウを、カテゴリごとに色分けした 1 本の積み上げバーとしてプロンプトの上に表示します。トークン数付き。
- プロンプト上部
- UI を変更
- コマンド・ツールを追加
- データを保存
v2.1.291 で検証済み
おすすめCompact Adviser
/compact を実行すべきタイミングを教えてくれます。ひと区切りの作業が終わったところを TypeSafe の Jev が判定し、ヒントを表示します。
- ステータス
- ペイン
- トースト
- ファイルを読み取る
- ファイルを書き込む
- ネットワーク
- プロンプトを読み取る
- UI を変更
- コマンド・ツールを追加
- データを保存
v2.1.291 で検証済み
おすすめコンテキストメーター
コンテキストウィンドウの使用率、5 時間・7 日間のプラン使用量、セッションのコストをステータスラインに表示し、上限が近づくと警告します。
- ステータス
- トースト
- UI を変更
v2.1.310 で検証済み
同じカテゴリの Mod: コンテキスト、利用枠、コスト、スラッシュコマンド、ペインとダッシュボード。