本文へスキップ
claudemods

Token Weather:Claude Code コンテキストウィンドウ予報

Claude Code のコンテキスト使用量を天気予報として入力欄の上に表示し、直近のターンの推移とキャッシュの残り時間も出します。

権限

  • ファイルを読み取るお使いのマシン上のファイルの読み取りやディレクトリの一覧取得ができます($.fs.read / list / stat / exists)。
  • コマンドを実行お使いのマシン上でシェルのプログラムを実行できます($.process.run / spawn)。具体的に何を実行するかはソースで確認してください。
  • UI を変更Claude Code の画面に描画します。バンド、ペイン、ステータス表示、トーストなど(ui.render / $.ui.*)。
  • データを保存プラグイン専用のストアにセッションをまたいでデータを保持します($.store.*)。
検証バージョン
v2.1.307
最終検証日
必要バージョン
Claude Code ≥ 2.1.287
表示先
プロンプト上部

Claude Code 内でインストール:

/plugin install token-weather --marketplace hamzafer/claude-code-mods
すべてのインストール方法 ↓

このModでできること

Token Weather は Hamza Zafar(hamzafer)によるコミュニティ製の Mod で、彼の claude-code-mods コレクションの一つです。入力欄の上の 1 行に、Claude Code のコンテキストウィンドウ予報を表示します。ウィンドウの埋まり具合を天気の言葉とアイコンで示し、使用率、ウィンドウサイズに対するトークン数、直近のターンのスパークライン、そしてプロンプトキャッシュがあとどれだけ温かいままかのカウントダウンが並びます。

予報は ☀ Clear(25% 未満)から ☁ Cloudy、☂ Showers、☇ Storm を経て、90% 以上の ↯ Compact soon まで変わります。隣の last turns は最大 12 件の値を ▁▂▃▄▅▆▇█ で描き、その中の最大値に合わせて縮尺されます。続けて、直近のターンでの増減が ▲ +39.4k last turn のように出ます。行に十分な幅があれば、❄ cache 4:12 がキャッシュの期限切れまでを数え、最後の 1 分は黄色になり、期限後は ❄ cache cold と表示されます。

Token Weather は、当サイトの Context Bar、Context Meter、Cache Clock と一部重なります。Context Bar はウィンドウをカテゴリ別に分け、Context Meter はステータスラインに使用率とプラン使用量を出し、Cache Clock はステータスラインの下にキャッシュの詳細を出します。Token Weather は 1 行の判定と推移を示します。作者のマーケットプレイスでのバージョンは 0.2.2 です。

デモ

録画では、小さなデモプロジェクトでこの Mod を読み込んだ Claude Code を起動します。プロンプトを送る前、入力欄の上の行は ☀ Clear 0% of context 0 / 1M です。続いて、README.md を読んでこのプロジェクトを 1 文で説明するよう Claude に頼みます。最初のリクエストの実行中に ❄ cache 5:00 のカウントダウンが現れます。ターンが終わると、行は ☀ Clear 4% of context 39.4k / 1M、スパークライン、▲ +39.4k last turn、❄ cache 60:00 になります。応答が 1 時間のキャッシュを書き込んだためです。

インストール

インストールブロックにある方法のどれでも使えます。いずれも作者自身のマーケットプレイスから直接インストールされます。この行は次のセッション開始時に表示されます。プラグインのオプションは、プロンプトキャッシュの有効期間の 1 つだけです。

$ install token-weather

Claude Code 2.1.287 以上が必要

作者のマーケットプレイスからインストール: hamzafer/claude-code-mods

  1. 1.Claude Code 内で1行

    /plugin install token-weather --marketplace hamzafer/claude-code-mods

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

  2. 2.シェルから

    claude plugin marketplace add hamzafer/claude-code-mods
    claude plugin install token-weather@claude-code-mods

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

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

    git clone https://github.com/hamzafer/claude-code-mods
    claude --plugin-dir ./claude-code-mods/mods/token-weather

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

仕組み

読み取り値は、ホストが保持する $.state のアトムに保存されるため、ホットリロードをまたいで残ります。読み取りはセッション開始時とメインエージェントの各ターンの後に、$.session.usage のコンテキスト情報から行われます。キャッシュの時計は、ターン内のツールループのリクエストも含め、メインスレッドのモデルリクエストが終わるたびにやり直されます。次は hooks/register.tsx の turn.step ハンドラです。

on('turn.step', async function* ($, e, next) {
  const result = yield* next(e)
  if (!e.agentId && result.stopReason !== null) {
    const now = await $.clock.now()
    await update($, lastRequestAt, () => now)
    restart($, now, now, await ttlMsFor($, override))
  }
  return result
})

auto モードでは、各ターンの後にセッション記録(<config dir>/projects/<project>/<session id>.jsonl)の最後の 1 MB を読み、直近のメインスレッドの応答の cache_creation に 1 時間または 5 分のトークンがあるかを調べます。結果はプラグインのストアに保存され、次のセッションでも使われます。カウントダウンの表示が変わるタイミングでタイマーが行を再描画します。残り 10 分を超える間は 30 秒ごと、それ以下は 15 秒ごと、最後の 2 分は毎秒です。

カスタマイズ

オプションはプラグイン設定の cacheTtl だけで、auto(既定)、5m、1h から選びます。固定値にすると自動検出より優先されます。予報の区分、12 件の履歴、60 秒の警告は register.tsx の先頭にある定数です。任意の並び順ファイル <config dir>/claude-code-mods/bands.json も読み込み、同じ作者の複数のバー系 Mod が入力欄の上に並ぶときの順序を決めます。

権限と安全性

実行前に、プラグインが実行できるすべてのファイルを読みました。.claude-plugin/plugin.json、hooks/hooks.json、hooks/register.tsx、hooks/bands.ts、型定義、3 つのテストファイルです。package.json、インストールスクリプト、バイナリ、バンドルされたコードはなく、描画する文字列は数値から組み立てられ、モデルのプロンプトには何も注入しません。リポジトリには MIT の LICENSE があります。

動作のすべては次のとおりです。

  • **ネットワーク:**なし。
  • **プロセス:**1 つだけ、tail -c 1048576 <セッション記録のパス> で、記録が 1 MB を超える場合に限ります。それ以外はファイルを直接読みます。
  • **読むファイル:**自分のセッション記録(キャッシュ有効期間の検出用)、Claude の設定ディレクトリにある任意の bands.json、$.settings.read による Claude Code の設定(Cache Clock のステータスラインが設定されているかの確認用)。場所の特定に環境変数 HOME と CLAUDE_CONFIG_DIR を読みます。
  • **書き込むファイル:**直接の書き込みはなし。検出したキャッシュ有効期間(5m または 1h)を、プラグイン専用のストア $.store に保存します。
  • **バックグラウンド処理:**Claude Code 内の再描画タイマーのみで、セッション終了時に止まります。デーモンはありません。
  • **ゲート:**なし。ツール呼び出しやプロンプトをブロックしたり書き換えたりしません。

claude plugin validate はプラグイン自体にエラーも警告も出しませんでした(ディレクトリ用のチェッカーはアイコンがないと指摘)。作者の 24 件のテストは Claude Code 2.1.307 ですべて通りました。

ファイルを読み取る
お使いのマシン上のファイルの読み取りやディレクトリの一覧取得ができます($.fs.read / list / stat / exists)。
コマンドを実行
お使いのマシン上でシェルのプログラムを実行できます($.process.run / spawn)。具体的に何を実行するかはソースで確認してください。
UI を変更
Claude Code の画面に描画します。バンド、ペイン、ステータス表示、トーストなど(ui.render / $.ui.*)。
データを保存
プラグイン専用のストアにセッションをまたいでデータを保持します($.store.*)。

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

Claude Code 2.1.307 の macOS で確認しました(validate、テスト、録画)。行が表示されない場合は次を確認してください。

  • インストール後に新しいセッションを始めたこと。Mod はセッション開始時に読み込まれます。
  • 入力欄の上にアンケートが開いていないこと。アンケート中はこの行が退き、閉じると戻ります。
  • ウィンドウが 60 桁以上あること。それより狭いと、予報の言葉、使用率、トークン数だけが表示されます。
  • カウントダウンがずれるときは、cacheTtl を auto ではなく 5m か 1h にしてください。プロジェクトのパスが非常に長い場合や、セッション中にプロジェクトを移動した場合はセッション記録が見つからず、最後に検出した値が残ります。
  • /clear や再開の後は、次のリクエストまでカウントダウンが隠れます。

よくある質問

Token Weather は API を呼んだり、トークンを消費したりしますか?
いいえ。ネットワーク通信もモデル呼び出しもしません。Claude Code がすでに持っているコンテキストの数値を $.session.usage で読むだけです。起動する唯一のプロセスは、キャッシュ有効期間を調べるために自分のセッション記録へ実行する `tail` です。
Clear、Cloudy、Showers、Storm、Compact soon は何を意味しますか?
コンテキストの使用率の区分で、いずれも Claude Code が報告するウィンドウサイズが基準です。Clear は 25% 未満、Cloudy は 50% 未満、Showers は 75% 未満、Storm は 90% 未満、90% 以上が Compact soon です。
プロンプトキャッシュが 5 分か 1 時間かをどうやって判断しますか?
既定の `auto` では、メインスレッドのターンが終わるたびにセッション記録の末尾を読み、直近の応答が 5 分と 1 時間のどちらのキャッシュトークンを書き込んだかを調べます。確認できるまでは 5 分として扱います。プラグインのオプションで `5m` か `1h` に固定することもできます。
キャッシュのカウントダウンが表示されないのはなぜですか?
本文の幅が 60 桁以上あり、行に余裕があることが必要で、セッションの最初のリクエストの後に初めて表示されます。Cache Clock のステータスラインを設定している場合は、そちらが正確なカウントダウンを出すため自動的に隠れます。
Context Bar とは何が違いますか?
Context Bar はウィンドウをカテゴリ別の色付きバーと凡例に分けて見せます。Token Weather は 1 行で、判定、使用率、直近 12 ターンのスパークライン、キャッシュのカウントダウンを表示します。両方を入力欄の上に並べて使えます。
Claude Code で動作中の Context Barおすすめ

Context Bar

Claude Code のコンテキストウィンドウを、カテゴリごとに色分けした 1 本の積み上げバーとしてプロンプトの上に表示します。トークン数付き。

  • プロンプト上部
  • UI を変更
  • コマンド・ツールを追加
  • データを保存

v2.1.291 で検証済み

Claude Code で動作中の Cache Clockおすすめ

Cache Clock

Claude Code のステータスラインの下に、プロンプトキャッシュの残り時間、ヒット率、コールド後の再キャッシュ量を表示します。

  • ステータス
  • ファイルを読み取る
  • ファイルを書き込む
  • コマンドを実行
  • コマンド・ツールを追加

v2.1.296 で検証済み

Claude Code で動作中の コンテキストメーターおすすめ

コンテキストメーター

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

  • ステータス
  • トースト
  • UI を変更

v2.1.310 で検証済み

Claude Code で動作中の Usage Meterおすすめ

Usage Meter

5 時間・7 日間のプラン使用量を小さなバーでプロンプトの上に表示。リセットまでのカウントダウンとセッションのコスト付き。

  • プロンプト上部
  • トースト
  • UI を変更

v2.1.291 で検証済み

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