Cache Clock:Claude Code プロンプトキャッシュの期限を見守る
Claude Code のステータスラインの下に、プロンプトキャッシュの残り時間、ヒット率、コールド後の再キャッシュ量を表示します。
権限
- ファイルを読み取るお使いのマシン上のファイルの読み取りやディレクトリの一覧取得ができます($.fs.read / list / stat / exists)。
- ファイルを書き込むお使いのマシン上でファイルを作成・上書きできます($.fs.write)。
- コマンドを実行お使いのマシン上でシェルのプログラムを実行できます($.process.run / spawn)。具体的に何を実行するかはソースで確認してください。
- コマンド・ツールを追加あなたや Claude が呼び出せる新しいスラッシュコマンドやツールを登録します($.command.register / $.tool.register)。
- 検証バージョン
- v2.1.296
- 最終検証日
- 必要バージョン
- Claude Code ≥ 2.1.287
- 表示先
- ステータス
Claude Code 内でインストール:
/plugin install cache-clock --marketplace hamzafer/claude-code-modsこのModでできること
Cache Clock は、Claude Code のプロンプトキャッシュの状態を表示するコミュニティ Mod です。作者は Hamza Zafar(hamzafer)で、claude-code-mods コレクションの一部です。ステータスラインの下に 1 行を足します。キャッシュが温かい間は緑色で、cache ● 1h ██████████ 59m left · hit 48% · misses 0 のように表示されます。キャッシュの有効期間(5m または 1h)、残りを示す 10 マスのバー、残り時間、ヒット率、ミス回数です。
残りが有効期間の 20% を切ると行は黄色になります。キャッシュが切れると赤になり、cache ○ cold · next message re-caches 82k tokens と表示され、Claude Code が直前のミスの原因を報告していればそれも付きます。メッセージを送る前に、キャッシュから返されるのか、プレフィックス全体を作り直すコストがかかるのかがわかります。
数値は Mod が計算しているわけではありません。Claude Code は 2.1.251 以降、ステータスラインのコマンドに prompt_cache オブジェクトを渡しており、Mod はそれを整形するだけです。プラグインはステータスラインを登録できないため、Mod は /cache-clock コマンドを追加します。setup は statusLine を Mod のスクリプトに向け、remove は元に戻します。すでにステータスラインがある場合はそのまま残り、キャッシュの行がその下に付きます。
デモ
録画では、小さなデモプロジェクトで Mod を読み込んだ Claude Code を起動します。ステータスラインはあらかじめ Mod のスクリプトに向けてあり、録画者自身の ~/.claude を書き換えないよう、/cache-clock setup の手順は意図的に省いています。Claude に README.md を読んでプロジェクトを 1 文で説明するよう頼みます。ターンの実行中、プロンプトの下には、バーが満タンの緑色の cache ● 1h が 59m left と hit 0% · misses 0 とともに表示されます。ターンが終わると、同じ行が hit 48% · misses 0 に更新されます。
インストール
インストールブロックにある方法のどれかを使ってください。いずれも作者自身のマーケットプレイスから直接インストールされます。そのあとセッションで /cache-clock setup を実行します。行は Claude の次の返答のあとに現れ、/cache-clock だけを実行すると有効かどうかがわかります。
$ install cache-clock
Claude Code 2.1.287 以上が必要
作者のマーケットプレイスからインストール: hamzafer/claude-code-mods
1.Claude Code 内で1行
/plugin install cache-clock --marketplace hamzafer/claude-code-mods実行中のセッション(v2.1.275 以降)に貼り付けます。最初に Claude Code がマーケットプレイスの追加を確認します。
2.シェルから
claude plugin marketplace add hamzafer/claude-code-mods claude plugin install cache-clock@claude-code-modsその後、すでに開いているセッションでは /reload-plugins を実行してください。
3.インストールせずに試す
git clone https://github.com/hamzafer/claude-code-mods claude --plugin-dir ./claude-code-mods/mods/cache-clockその1セッションだけ Mod を読み込みます。設定には何も追加されません。
仕組み
hooks/register.ts がコマンドを登録し、セットアップを行います。同梱の statusline/cache-clock.mjs は、Claude Code がステータスラインを更新するたびに実行するスクリプトです。stdin から JSON を読み、元のコマンドが保存されていればそれを実行し、キャッシュの行を出力します。純粋なフォーマッターは statusline/render.mjs にあります。
export function render(input, nowSeconds) {
const cache = input?.prompt_cache
if (!cache || typeof cache !== 'object') return ''
if (cache.caching_observed === false) return ''
const left = typeof cache.expires_at === 'number' ? cache.expires_at - nowSeconds : null
const isWarm = cache.warm !== false && left !== null && left > 0
return isWarm ? warmLine(cache, left) : coldLine(cache)
}expires_at を過ぎた時点で、入力が作成時に warm だったとしてもコールドとして扱います。setup は 2 つのスクリプトをプラグインのフォルダではなく <config dir>/cache-clock/ に書き出します。プラグインのフォルダはバージョンごとに変わるためです。次のセッション開始時に、ステータスラインがこの Mod のものであれば、refreshScripts が新しい版でコピーを上書きします。setup は refreshInterval を 30 秒にします(すでにそれより短ければそのまま)。返答の合間もカウントダウンが進みます。
カスタマイズ
オプションはありません。切り替えは /cache-clock setup と /cache-clock remove だけです。見た目を変えるには render.mjs を編集します。BAR_CELLS でバーの幅、WARN_SHARE で黄色に変わる境目(既定は 20%)、ファイル冒頭で色のエスケープコードを変えられます。編集するのは <config dir>/cache-clock/ のコピーです。セットアップ済みの間は、次のセッション開始時に Mod が同梱版で上書きします。
権限と安全性
実行前に、プラグインが実行するすべてのファイルを読みました。.claude-plugin/plugin.json、hooks/hooks.json、hooks/register.ts、2 つのステータスラインスクリプト、テストです。package.json、インストールスクリプト、バンドル済みや minify 済みのコード、バイナリはありません。リポジトリには MIT の LICENSE があります。
- 設定の変更は要求したときだけ。 インストール時やセッション開始時には、自身のスクリプトの更新以外は何も書き込みません。
/cache-clock setupは Claude の設定フォルダ(またはCLAUDE_CONFIG_DIR)のsettings.jsonに書き込みます。ステータスラインがプロジェクト設定由来の場合は<project>/.claude/settings.local.jsonに書きます。さらに<config dir>/cache-clock/にスクリプトとsetup-<hash>.jsonのバックアップを書きます。/cache-clock removeは以前のstatusLineを復元します(セットアップ後にあなたが変更していた場合を除く)。管理設定(policy)や--settingsのステータスラインには手を出さず、不正な設定 JSON もそのままにします。 - 更新のたびにコマンドを実行します。 セットアップ後、Claude Code は
node "<config dir>/cache-clock/cache-clock.mjs"を実行します。このスクリプトは、以前のステータスラインのコマンドを、同じ入力でシェル経由(spawnSync(..., { shell: true })、タイムアウト 5 秒)で実行します。setup自体は Node の有無を確認するためnode --versionを実行します。 - ネットワーク、テレメトリ、モデル呼び出し、デーモンはありません。
HOMEとCLAUDE_CONFIG_DIRは設定フォルダを見つけるためだけに読みます。トークンや認証情報は読みません。 - プロンプトインジェクションも、ブロックするフックもありません。 登録するのは
session.startと自身のコマンドだけで、プロンプトやツール結果には何も追加しません。 - 必要なもの: PATH 上の Node と Claude Code 2.1.251 以降。
claude plugin validate はエラーも警告も報告せず、作者の 25 件のテストは Claude Code 2.1.296 ですべて通りました。
- ファイルを読み取る
- お使いのマシン上のファイルの読み取りやディレクトリの一覧取得ができます($.fs.read / list / stat / exists)。
- ファイルを書き込む
- お使いのマシン上でファイルを作成・上書きできます($.fs.write)。
- コマンドを実行
- お使いのマシン上でシェルのプログラムを実行できます($.process.run / spawn)。具体的に何を実行するかはソースで確認してください。
- コマンド・ツールを追加
- あなたや Claude が呼び出せる新しいスラッシュコマンドやツールを登録します($.command.register / $.tool.register)。
互換性とトラブルシューティング
macOS 上の Claude Code 2.1.296 で確認しました(validate、テスト、デモ)。行が表示されない場合:
/cache-clockを実行します。「cache-clock is on」と出るはずです。- まず 1 通メッセージを送ってください。
prompt_cacheが届くまで、またプロバイダーがキャッシュなしと報告している間、行は空です。 claude --versionが 2.1.251 以降で、同じターミナルでnode --versionが動くことを確認します。- ステータスラインが管理設定や
--settingsで指定されていないこと。setup はそれらを変更しません。 - すでに起動しているセッションで setup した場合は、次の返答か 30 秒ごとの更新を待ちます。
よくある質問
- Cache Clock は API を呼んだりトークンを消費したりしますか?
- いいえ。Claude Code がすでにステータスラインのコマンドに渡している prompt_cache の値を整形して表示するだけです。スクリプトはネットワークリクエストを送らず、モデルも呼びません。
- /cache-clock setup はマシンの何を変更しますか?
- Claude の設定フォルダの cache-clock/ に 2 つのスクリプトをコピーし、元のステータスラインを保存して、1 つの設定ファイルの statusLine をそのスクリプトに向けます。プロジェクトで共有されているステータスラインは編集せず、ローカルの上書きを作ります。/cache-clock remove で保存しておいた元の設定に戻ります。
- 今使っているステータスラインはどうなりますか?
- そのまま動き続けます。この Mod のスクリプトが同じ入力で元のコマンドを先に実行して出力を表示し、その下にキャッシュの行を追加します。元のコマンドはシェル経由で、タイムアウト 5 秒で実行されます。
- キャッシュがコールドのとき、行には何が出ますか?
- 赤い “cache ○ cold”、次のメッセージで再キャッシュされるトークン数(例:82k)、そして Claude Code が報告した場合は直前のミスの原因(tools changed など)が表示されます。
- 必要な Claude Code のバージョンは?
- 2.1.251 以降です。ステータスラインに prompt_cache を送る最初のバージョンで、それより古いと行は空のままです。PATH に Node も必要です。
# 関連する Mod
おすすめコンテキストメーター
コンテキストウィンドウの使用率、5 時間・7 日間のプラン使用量、セッションのコストをステータスラインに表示し、上限が近づくと警告します。
- ステータス
- トースト
- UI を変更
v2.1.310 で検証済み
おすすめContext Bar
Claude Code のコンテキストウィンドウを、カテゴリごとに色分けした 1 本の積み上げバーとしてプロンプトの上に表示します。トークン数付き。
- プロンプト上部
- UI を変更
- コマンド・ツールを追加
- データを保存
v2.1.291 で検証済み
おすすめCompact Adviser
/compact を実行すべきタイミングを教えてくれます。ひと区切りの作業が終わったところを TypeSafe の Jev が判定し、ヒントを表示します。
- ステータス
- ペイン
- トースト
- ファイルを読み取る
- ファイルを書き込む
- ネットワーク
- プロンプトを読み取る
- UI を変更
- コマンド・ツールを追加
- データを保存
v2.1.291 で検証済み
同じカテゴリの Mod: ステータスラインとプロンプトバー、コンテキスト、利用枠、コスト。