Usage Meter:Claude Code の使用量制限メーターをプロンプトの上に
5 時間・7 日間のプラン使用量を小さなバーでプロンプトの上に表示。リセットまでのカウントダウンとセッションのコスト付き。
権限
- UI を変更Claude Code の画面に描画します。バンド、ペイン、ステータス表示、トーストなど(ui.render / $.ui.*)。
- 検証バージョン
- v2.1.291
- 最終検証日
- 必要バージョン
- Claude Code ≥ 2.1.287
- 表示先
- プロンプト上部、トースト
Claude Code 内でインストール:
/plugin install usage-meter --marketplace hamzafer/claude-code-modsこのModでできること
Usage Meter は Claude Code の使用量制限メーターとして働くコミュニティ Mod で、Hamza Zafar(hamzafer)の claude-code-mods コレクションに含まれています。Claude Code のプロンプトの上に 1 行を描き、プランのレート制限ウィンドウとセッションのコストを表示します。たとえば ⏱ 5h █▆▁▁▁ 34% · resets 2h10 · 7d ███▁▁ 61% · $0.42 session のようになります。
各ウィンドウにはブロック文字でできた 5 セルのバーが付き、部分的なセルによって、ブロック単位よりも細かい段階を表現できます。バーとパーセンテージは 75% 未満で緑、75% 以上で黄色、90% 以上で赤になります。最初のウィンドウ(通常は 5 時間ウィンドウ)は常にリセット時刻を表示します。7 日間ウィンドウや利用額の上限などその他のウィンドウは、使用率が高くなったときだけリセット時刻を表示します。カウントダウンは 1 分ごとに進みます。リセット時刻を過ぎたウィンドウは、Claude Code が新しい数値を報告するまで非表示になるので、古い 100% が表示されたままになることはありません。
ウィンドウが 90% を超えると、リセット期間ごとに一度だけトーストで警告します。たとえば 5h usage limit at 92%, resets in 1h05 です。ターミナルの幅が狭い場合は、まず副次的なウィンドウ、次にコストを省くので、メインのウィンドウは常に収まります。サブスクリプションがない場合(API キーのセッション)は、プランウィンドウがないためコストだけが表示されます。
私たちの コンテキストメーター をすでに使っている場合、重なるのは 5 時間・7 日間の数値とコストです。コンテキストメーターはそれらをテキストとしてステータスラインに書き込み、コンテキストウィンドウの使用量も加えます。Usage Meter はそれらをプロンプトの上にバーとして描き、リアルタイムのカウントダウンを付け、コンテキストは表示しません。作者の README によると、Claude Code 2.1.287 以降が必要です。
デモ
録画では、この Mod を読み込んだ Claude Code を起動して短いプロンプトを送り、ターンの後にプロンプトの上に表示される行を見せます。5 時間・7 日間のプランウィンドウが小さなバーとパーセンテージで表示され、5 時間ウィンドウのリセットまでの時間、セッションのコストも並びます。プランのバーが表示されるのは、デモ用のアカウントが Claude のサブスクリプションでサインインしているためです。
インストール
インストールブロックのいずれかの方法を使ってください。どれも作者自身のマーケットプレイスから直接インストールします。設定は不要です。
$ install usage-meter
Claude Code 2.1.287 以上が必要
作者のマーケットプレイスからインストール: hamzafer/claude-code-mods
1.Claude Code 内で1行
/plugin install usage-meter --marketplace hamzafer/claude-code-mods実行中のセッション(v2.1.275 以降)に貼り付けます。最初に Claude Code がマーケットプレイスの追加を確認します。
2.シェルから
claude plugin marketplace add hamzafer/claude-code-mods claude plugin install usage-meter@claude-code-modsその後、すでに開いているセッションでは /reload-plugins を実行してください。
3.インストールせずに試す
git clone https://github.com/hamzafer/claude-code-mods claude --plugin-dir ./claude-code-mods/mods/usage-meterその1セッションだけ Mod を読み込みます。設定には何も追加されません。
仕組み
hooks/register.tsx から、数値を取得する 2 つのフックを示します。
on('session.start', async ($, e, next) => {
const result = await next(e)
// Moves the reset countdown on while a window has a reset time.
timer?.cancel()
timer = $.clock.every(TICK_MS, () => { /* bumps the tick atom */ })
const usage = await $.session.usage().catch(() => null)
if (usage) await take($, usage.rateLimits, usage.cost?.usd).catch(() => {})
return result
})
on('session.measure', async ($, e, next) => {
const result = await next(e)
await take($, e.rateLimits, e.cost?.usd).catch(() => {})
return result
})take はパーセンテージが有限値のウィンドウだけを残し、ホスト側が保持する $.state アトムに保存してから warn を呼び出します。warn は、90% 以上で、現在のリセット期間にまだ警告していないウィンドウについてトーストを表示します。リセット時刻が 30 分以上先に進んだ場合は、新しい期間とみなされます。AbovePrompt の ui.render フックは、スナップショットと、60 秒タイマーが更新する tick アトムを読み取るので、新しい数値がなくてもカウントダウンが再描画されます。純粋関数 build、fit、bar、colorFor、countdown が各セグメントを生成し、作者のテストがそれらをカバーしています。
カスタマイズ
/config の設定項目もスラッシュコマンドもありません。細かな挙動は register.tsx 先頭の定数で制御します。CELLS(バーの幅、5)、TICK_MS(カウントダウンの更新間隔、60 秒)、WARN_AT(トーストのしきい値、90)、そしてウィンドウ名の LABELS(5h、7d、spend)です。
権限と安全性
私たちは実行前に、プラグインが実行しうるすべてのファイル(hooks/hooks.json、hooks/register.tsx、型宣言、テスト)を読みました。package.json、インストールスクリプト、バンドルされたコードはありません。
UI の変更 は、プロンプトの上の行と 90% のトーストに対応します。Mod は Claude Code がすでに追跡している使用量の数値を $.session.usage と session.measure イベントを通じて読み取り、$.state に保持します。コマンドの実行、ファイルの読み書き、ネットワークの使用、環境変数の読み取り、モデルの呼び出しは行いません。claude plugin validate はエラーも警告も報告せず、作者の 11 件のテストは Claude Code 2.1.291 ですべて成功しました。
- UI を変更
- Claude Code の画面に描画します。バンド、ペイン、ステータス表示、トーストなど(ui.render / $.ui.*)。
互換性とトラブルシューティング
macOS 上の Claude Code 2.1.291 で確認しました(validate とテスト)。行が表示されない場合は、次を確認してください。
claude --versionが 2.1.287 以降であること。- Claude のサブスクリプションを使っていること。API キーの場合はコストだけが、しかも $0.00 を超えてから表示されます。
- 最初のモデルの応答があるまで、Claude Code が使用量の数値を持っていない場合があります。プロンプトを一度送れば行が埋まります。
- 入力欄の上にアンケートが開いていないこと。閉じると行は戻ってきます。
よくある質問
- Usage Meter は使用量を確認するためにリクエストを送信しますか?
- いいえ。セッション開始時の $.session.usage と、その後の session.measure イベントを通じて、Claude Code がすでに持っている数値を読み取るだけです。Mod 自身はネットワーク通信を一切行いません。
- サブスクリプションではなく API キーを使っている場合は?
- その場合、Claude Code はプランウィンドウを報告しないため、行にはセッションのコストだけが、0 を超えた時点で表示されます。表示するものがなければ、行は非表示になります。
- いつ警告してくれますか?
- ウィンドウが 90% を超えたときに、"5h usage limit at 92%, resets in 1h05" のようなトーストが、ウィンドウごと・リセット期間ごとに一度だけ表示されます。
- 色は何を意味しますか?
- 75% 未満は緑、75% 以上は黄色、90% 以上は赤です。7 日間ウィンドウは 75% に達するとリセット時刻も表示します。
- コンテキストメーター(cm-context-meter)とは何が違いますか?
- コンテキストメーターは、コンテキスト使用率、プランウィンドウ、コストをテキストとしてステータスラインに表示し、コンテキストが 80% になると警告します。Usage Meter はプロンプトの上にバーを描き、リアルタイムのリセットカウントダウンを加え、プランウィンドウについて 90% で警告しますが、コンテキストの使用量は表示しません。
# 関連する Mod
おすすめコンテキストメーター
コンテキストウィンドウの使用率、5 時間・7 日間のプラン使用量、セッションのコストをステータスラインに表示し、上限が近づくと警告します。
- ステータス
- トースト
- UI を変更
v2.1.310 で検証済み
同じカテゴリの Mod: コンテキスト、利用枠、コスト、ステータスラインとプロンプトバー。