本文へスキップ
claudemods

コンテキストメーター:Claude Code のコンテキスト使用率をステータスラインに表示

コンテキストウィンドウの使用率、5 時間・7 日間のプラン使用量、セッションのコストをステータスラインに表示し、上限が近づくと警告します。

権限

  • UI を変更Claude Code の画面に描画します。バンド、ペイン、ステータス表示、トーストなど(ui.render / $.ui.*)。
検証バージョン
v2.1.291
最終検証日
必要バージョン
Claude Code ≥ 2.1.287
表示先
ステータス、トースト

Claude Code 内でインストール:

/plugin install cm-context-meter --marketplace rotbit/claudemods-marketplace
すべてのインストール方法 ↓

このModでできること

コンテキストメーターは、Claude Code のコンテキスト使用率をステータスラインに表示する Mod です。ステータスラインに ctx 42% · 5h 23% · 7d 61.5% · $1.20 のようなコンパクトな 1 行を書き込みます。これは、コンテキストウィンドウがどれだけ埋まっているか、5 時間と 7 日間のプラン利用ウィンドウをどれだけ使ったか(サブスクリプションの場合)、そしてこれまでのセッションのコストを示しています。コンテキストが 80% に達すると、トーストで一度だけ警告するので、Claude が以前の詳細を失い始める前に /compact や /clear を実行できます。

目的は、当て推量をやめることです。長いタスクが収まるかどうかを知るために /cost や /context を実行する必要はもうありません。警告は十分早いタイミングで届くので、自分の都合のよいときにコンパクションできます。Claude Code 2.1.287 以降が必要です。

デモ

録画では、この Mod を読み込んだ状態でセッションを開始しています。最初の応答までステータスラインには ctx – と表示され、ターンが完了するとコンテキストの割合、プランの利用ウィンドウ、コストが表示されます。

インストール

インストールブロックにある方法のどれかを選んでください。設定は不要です。デフォルトのままで、アカウントが提供するすべての数値が表示されます。

$ install cm-context-meter

Claude Code 2.1.287 以上が必要

  1. 1.Claude Code 内で1行

    /plugin install cm-context-meter --marketplace rotbit/claudemods-marketplace

    実行中のセッション(v2.1.275 以降)に貼り付けます。最初に Claude Code がマーケットプレイスの追加を確認します。

  2. 2.シェルから

    claude plugin marketplace add rotbit/claudemods-marketplace
    claude plugin install cm-context-meter@claudemods

    その後、すでに開いているセッションでは /reload-plugins を実行してください。

  3. 3.インストールせずに試す

    git clone https://github.com/rotbit/claudemods-marketplace
    claude --plugin-dir ./claudemods-marketplace/cm-context-meter

    その1セッションだけ Mod を読み込みます。設定には何も追加されません。

仕組み

この Mod 全体は、3 つのフックと 1 つの更新関数だけでできています。hooks/register.ts から抜粋します。

async function refresh($: EngineInterface, meter: Meter): Promise<void> {
  // No `breakdown`: the status-line figures alone, which cost no request.
  const usage = await $.session.usage()
  $.ui.status(formatMeter(usage, meter))
  const percent = contextPercent(usage)
  const step = warnStep(percent, meter.warnAtPercent, meter.warned)
  meter.warned = step.warned
  if (step.toast) {
    $.ui.toast(`Context is ${percent}% full. Consider /compact or /clear soon.`)
  }
}

$.session.usage() は、コンテキストのトークン数とウィンドウサイズ、プランのレート制限、そしてコストを返します。breakdown を指定せずに呼び出すと、Claude Code がすでに持っている数値を読むだけなので、メーターは好きなだけ頻繁に実行してもコストがかかりません。hooks/format.ts の formatMeter が表示テキストを組み立て、エンジンが持っていない数値は 0 と表示せずに省略します。warnStep はすでに警告したかどうかを記憶しているため、トーストはしきい値を越えるたびに一度だけ表示されます。コンパクションによってコンテキストがしきい値を下回れば、再び警告できるようになります。

refresh は、session.start(ここで $.clock.every のタイマーも開始します)、メインループのターンに限った turn.complete、そして session.compact から呼ばれます。session.compact はコンパクションを取り消すことができるため、このフックはまず next(e) を await し、next の結果をそのまま返す .catch を備えています。メーターがコンパクションを止めることはありません。

カスタマイズ

以下のオプションは /config で設定できます。format: verbose にすると、表示が Context 42% (84k/200k) · 5-hour 23% · 7-day 61.5% · Cost $1.20 のように省略なしの形になります。ラベルは hooks/format.ts の LIMIT_LABELS テーブルにあるので、5h や 7d の名前を変えたい場合はそこを編集してください。警告文は refresh の中のテンプレート文字列です。

設定型デフォルト説明
showCostbooleantrueShow cost. Show the session's cost in US dollars, as /cost totals it.
showRateLimitsbooleantrueShow plan usage. Show the 5-hour and 7-day plan usage windows (subscriptions only).
warnAtPercentnumber80Warn at context %. Show a toast once when the context window reaches this percentage; 0 turns the warning off.
formatstring (compact | verbose)"compact"Format. compact: ctx 42% · 5h 23% · $1.20. verbose: Context 42% (84k/200k) · 5-hour 23% · Cost $1.20.
intervalMsnumber60000Refresh interval (ms). How often to refresh between turns, in milliseconds (at least 5000).

Claude Code の /config で変更できます。Mod はホットリロードされます。

権限と安全性

付いているバッジは UI を変更 だけです。この Mod はステータスラインに書き込み、トーストを表示します。コマンドの実行、ファイルの読み書き、ネットワークの利用、プロンプトの読み取り、モデルの呼び出しは一切行いません。そのため、インストールできる Mod の中でも特に安全なものの 1 つであり、最初の 1 本としても最適です。

オフにするには /plugin disable cm-context-meter を実行します。すべての Mod をオフにしてセッションを始めるには claude --safe-mode を使います。

UI を変更
Claude Code の画面に描画します。バンド、ペイン、ステータス表示、トーストなど(ui.render / $.ui.*)。

互換性とトラブルシューティング

macOS のターミナル上で Claude Code 2.1.291 にてテスト済みです。メーターが表示されない場合は、次を確認してください。

  • claude --version を確認してください。Mod には 2.1.287 以降が必要です。
  • /plugin の Installed タブで、この Mod が有効になっていることを確認してください。
  • シェルからインストールした場合は、すでに開いているセッションで /reload-plugins を実行してください。
  • 別の Mod やカスタムのステータスラインコマンドが同じ行を共有している場合があります。他のステータス系 Mod を一時的に無効にして、表示が押し出されていないか確認してください。
  • API キーで利用している場合にプランの数値が表示されないのは、想定どおりの動作です。

コストの数値は、/cost が合計しているのと同じセッションの見積もりであり、請求書ではありません。

よくある質問

コンテキストメーターはトークンやプランの利用枠を消費しますか?
いいえ。breakdown を指定せずに $.session.usage() を呼び出すため、Claude Code がすでに把握している数値が返されるだけで、リクエストは一切送信されません。
5h と 7d の数値が表示されないのはなぜですか?
プランの利用ウィンドウはサブスクリプションにしか存在しません。API キーで利用している場合は取得できないため、メーターは 0% と表示する代わりにその項目を省略します。
開始直後のステータスラインに ctx – と表示されるのはなぜですか?
Claude が一度応答するまでは、コンテキストの数値が存在しないためです。最初のターンが完了すると、ダッシュは実際の値に置き換わります。
80% の警告をオフにできますか?
/config で warnAtPercent を 0 に設定してください。1 から 100 までの別の値を指定すれば、しきい値を変更できます。
どのくらいの頻度で更新されますか?
メインループのターンが終わるたび、コンパクションが行われるたび、そしてその間は 60 秒ごとに更新されます。タイマーの間隔は intervalMs で変更でき、最小値は 5 秒です。
Claude Code で動作中の ツール呼び出しカウンター

ツール呼び出しカウンター

Claude のツール呼び出しをターンごと・セッションごとに数え、スピナーの横に件数を表示。/tally で内訳も確認できます。

  • スピナー
  • トランスクリプト
  • ステータス
  • ツール呼び出しを傍受
  • UI を変更
  • コマンド・ツールを追加

v2.1.291 で検証済み

Claude Code で動作中の プロンプト上の Git ブランチ表示

プロンプト上の Git ブランチ表示

Git のブランチ、変更ファイル数、ahead/behind の状態を Claude Code のプロンプトの上に 1 行で表示します。

  • プロンプト上部
  • コマンドを実行
  • ツール呼び出しを傍受
  • UI を変更

v2.1.291 で検証済み

Claude Code で動作中の 完了トースト

完了トースト

Claude の長いターンが終わると「Done in 2m 14s」のトーストと短いチャイムでお知らせ。デスクトップ通知にも対応します。

  • トースト
  • コマンドを実行
  • UI を変更
  • 音を再生

v2.1.291 で検証済み

同じカテゴリの Mod: コンテキスト、利用枠、コスト、ステータスラインとプロンプトバー。