Cache Clock: Den Claude Code Prompt-Cache beim Ablaufen beobachten
Eine Prompt-Cache-Zeile unter der Statuszeile: Restzeit, Trefferquote und Tokens, die kalt neu gecacht werden.
Berechtigungen
- Liest DateienKann Dateien lesen und Verzeichnisse auf deinem Rechner auflisten ($.fs.read / list / stat / exists).
- Schreibt DateienKann Dateien auf deinem Rechner anlegen oder überschreiben ($.fs.write).
- Führt Befehle ausKann Shell-Programme auf deinem Rechner ausführen ($.process.run / spawn). Im Quellcode siehst du, welche genau.
- Fügt Befehle/Tools hinzuRegistriert neue Slash-Befehle oder Tools, die du oder Claude aufrufen können ($.command.register / $.tool.register).
- getestet mit
- v2.1.296
- zuletzt getestet
- erfordert
- Claude Code ≥ 2.1.287
- Oberflächen
- Statuszeile
- Quelle
- Hamza Zafar (hamzafer) (MIT)
In Claude Code installieren:
/plugin install cache-clock --marketplace hamzafer/claude-code-modsWas macht diese Mod?
Cache Clock ist eine Community-Mod von Hamza Zafar (hamzafer), Teil seiner Sammlung claude-code-mods. Sie zeigt den Zustand deines Claude Code Prompt-Cache als eine Zeile unter der Statuszeile. Solange der Cache warm ist, ist die Zeile grün und sieht so aus: cache ● 1h ██████████ 59m left · hit 48% · misses 0. Das sind die Lebensdauer des Caches (5m oder 1h), ein Balken mit zehn Feldern für den verbleibenden Anteil, die Restzeit, die Trefferquote und die Zahl der Misses.
Bleiben weniger als 20 % der Lebensdauer, wird die Zeile gelb. Ist der Cache abgelaufen, wird sie rot: cache ○ cold · next message re-caches 82k tokens, ergänzt um die Ursache des letzten Misses, wenn Claude Code sie meldet. Du siehst also vor dem Senden, ob die Nachricht aus dem Cache bedient wird oder ob der gesamte Präfix neu aufgebaut werden muss und Geld kostet.
Die Werte berechnet die Mod nicht selbst. Claude Code sendet seit 2.1.251 ein prompt_cache-Objekt an den Statuszeilen-Befehl, die Mod formatiert es nur. Plugins können keine Statuszeile registrieren, deshalb ergänzt die Mod den Befehl /cache-clock: setup lässt statusLine auf das Skript der Mod zeigen, remove stellt alles wieder her. Hast du schon eine Statuszeile, bleibt sie erhalten, und die Cache-Zeile steht darunter.
Demo
Die Aufnahme startet Claude Code mit geladener Mod im kleinen Demoprojekt. Die Statuszeile ist vorab auf das Skript der Mod gesetzt; den Schritt /cache-clock setup haben wir bewusst ausgelassen, damit die Demo nicht das eigene ~/.claude des Aufnehmenden beschreibt. Claude soll README.md lesen und das Projekt in einem Satz beschreiben. Während der Turn läuft, steht unter dem Prompt eine grüne Zeile cache ● 1h mit vollem Balken, 59m left und hit 0% · misses 0. Wenn der Turn endet, wechselt dieselbe Zeile zu hit 48% · misses 0.
Installation
Nutze eine der Methoden im Installationsblock; sie installieren direkt aus dem Marketplace des Autors. Führe danach in einer Sitzung /cache-clock setup aus. Die Zeile erscheint nach Claudes nächster Antwort, und /cache-clock allein verrät dir, ob sie aktiv ist.
$ install cache-clock
Erfordert Claude Code ≥ 2.1.287
Wird aus dem Marketplace des Autors installiert: hamzafer/claude-code-mods
1.Eine Zeile, direkt in Claude Code
/plugin install cache-clock --marketplace hamzafer/claude-code-modsIn eine laufende Sitzung einfügen (v2.1.275+). Claude Code fragt zuerst, ob der Marketplace hinzugefügt werden soll.
2.Aus deiner Shell
claude plugin marketplace add hamzafer/claude-code-mods claude plugin install cache-clock@claude-code-modsFühre danach in jeder bereits geöffneten Sitzung /reload-plugins aus.
3.Ohne Installation ausprobieren
git clone https://github.com/hamzafer/claude-code-mods claude --plugin-dir ./claude-code-mods/mods/cache-clockLädt die Mod nur für eine Sitzung. An deinen Einstellungen wird nichts geändert.
So funktioniert es
hooks/register.ts registriert den Befehl und erledigt das Setup. Das mitgelieferte statusline/cache-clock.mjs führt Claude Code bei jeder Aktualisierung der Statuszeile aus. Es liest das JSON von stdin, führt deinen ursprünglichen Befehl aus, falls einer gesichert wurde, und gibt die Cache-Zeile aus. Der reine Formatierer steht in 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)
}Die Zeile gilt als kalt, sobald expires_at verstrichen ist, auch wenn die Eingabe beim Erzeugen noch warm meldete. setup schreibt die beiden Skripte nach <config dir>/cache-clock/ statt in den Plugin-Ordner, weil sich der Plugin-Ordner mit jeder Version ändert. Beim nächsten Sitzungsstart überschreibt refreshScripts die Kopien mit den neuen Versionen, wenn die Statuszeile die der Mod ist. setup setzt refreshInterval auf 30 Sekunden, außer deiner ist schon kürzer, damit der Countdown auch zwischen Antworten weiterläuft.
Anpassen
Es gibt keine Optionen. /cache-clock setup und /cache-clock remove sind die einzigen Schalter. Für ein anderes Aussehen bearbeitest du render.mjs: BAR_CELLS für die Balkenbreite, WARN_SHARE für den Punkt, ab dem die Zeile gelb wird (standardmäßig 20 %), und die Farb-Escape-Codes am Dateianfang. Bearbeite die Kopie unter <config dir>/cache-clock/; solange das Setup aktiv ist, überschreibt die Mod sie beim nächsten Sitzungsstart mit der mitgelieferten Version.
Berechtigungen & Sicherheit
Wir haben vor dem Ausführen jede Datei gelesen, die das Plugin ausführt: .claude-plugin/plugin.json, hooks/hooks.json, hooks/register.ts, beide Statuszeilen-Skripte und die Tests. Es gibt keine package.json, kein Installationsskript, keinen gebündelten oder minifizierten Code und keine Binärdatei. Das Repository enthält eine LICENSE (MIT).
- Einstellungen ändern sich nur auf Anfrage. Bei Installation und Sitzungsstart wird nichts geschrieben, außer dass die eigenen Skripte aufgefrischt werden.
/cache-clock setupschreibtsettings.jsonim Claude-Konfigurationsordner (oderCLAUDE_CONFIG_DIR) bzw.<project>/.claude/settings.local.json, wenn die Statuszeile aus den Projekteinstellungen stammt. Außerdem schreibt es die Skripte und eine Sicherungsetup-<hash>.jsonunter<config dir>/cache-clock/./cache-clock removestellt die früherestatusLinewieder her, es sei denn, du hast sie seit dem Setup geändert. Verwaltete (Policy-)Statuszeilen und solche aus--settingsfasst es nicht an, und ungültiges Settings-JSON lässt es unverändert. - Führt bei jeder Aktualisierung einen Befehl aus. Nach dem Setup startet Claude Code
node "<config dir>/cache-clock/cache-clock.mjs". Dieses Skript führt deinen früheren Statuszeilen-Befehl mit derselben Eingabe über eine Shell aus (spawnSync(..., { shell: true }), 5 s Timeout).setupselbst führtnode --versionaus, um zu prüfen, ob Node vorhanden ist. - Kein Netzwerk, keine Telemetrie, keine Modellaufrufe, kein Daemon.
HOMEundCLAUDE_CONFIG_DIRliest sie nur, um den Konfigurationsordner zu finden. Tokens oder Zugangsdaten werden nicht gelesen. - Keine Prompt-Injection und keine blockierenden Hooks. Sie registriert nur
session.startund den eigenen Befehl und fügt Prompts oder Tool-Ergebnissen nichts hinzu. - Voraussetzungen: Node im PATH und Claude Code 2.1.251 oder neuer.
claude plugin validate meldete weder Fehler noch Warnungen, und die 25 Tests des Autors liefen mit Claude Code 2.1.296 fehlerfrei durch.
- Liest Dateien
- Kann Dateien lesen und Verzeichnisse auf deinem Rechner auflisten ($.fs.read / list / stat / exists).
- Schreibt Dateien
- Kann Dateien auf deinem Rechner anlegen oder überschreiben ($.fs.write).
- Führt Befehle aus
- Kann Shell-Programme auf deinem Rechner ausführen ($.process.run / spawn). Im Quellcode siehst du, welche genau.
- Fügt Befehle/Tools hinzu
- Registriert neue Slash-Befehle oder Tools, die du oder Claude aufrufen können ($.command.register / $.tool.register).
Kompatibilität & Fehlerbehebung
Geprüft mit Claude Code 2.1.296 unter macOS (validate, Tests und Demo). Wenn die Zeile nicht erscheint:
- Führe
/cache-clockaus. Es sollte „cache-clock is on“ melden. - Sende zuerst eine Nachricht. Die Zeile bleibt leer, bis
prompt_cacheankommt, und auch dann, wenn der Anbieter kein Caching meldet. claude --versionist 2.1.251 oder neuer, undnode --versionfunktioniert im selben Terminal.- Deine Statuszeile kommt nicht aus verwalteten Einstellungen oder
--settings; das Setup ändert diese nicht. - Nach dem Setup in einer bereits laufenden Sitzung auf die nächste Antwort oder die 30-Sekunden-Aktualisierung warten.
FAQ
- Ruft Cache Clock die API auf oder verbraucht es Tokens?
- Nein. Die Mod formatiert nur die prompt_cache-Werte, die Claude Code ohnehin an den Statuszeilen-Befehl übergibt. Die Skripte senden keine Netzwerkanfragen und rufen das Modell nicht auf.
- Was ändert /cache-clock setup auf meinem Rechner?
- Es kopiert zwei Skripte in den Claude-Konfigurationsordner unter cache-clock/, sichert dort deine bisherige Statuszeile und ändert eine Settings-Datei, sodass statusLine auf das Skript zeigt. Eine geteilte Statuszeile eines Projekts wird nicht bearbeitet, sondern lokal überschrieben. /cache-clock remove stellt das gesicherte Original wieder her.
- Was passiert mit meiner bestehenden Statuszeile?
- Sie läuft weiter. Das Skript der Mod führt zuerst deinen ursprünglichen Befehl mit derselben Eingabe aus, gibt dessen Ausgabe aus und fügt darunter die Cache-Zeile hinzu. Der ursprüngliche Befehl läuft über eine Shell mit 5 Sekunden Timeout.
- Was zeigt die Zeile bei kaltem Cache?
- Ein rotes „cache ○ cold“, wie viele Tokens die nächste Nachricht neu cacht (zum Beispiel 82k) und, falls Claude Code sie meldet, die Ursache des letzten Misses, etwa tools changed.
- Welche Claude-Code-Version brauche ich?
- 2.1.251 oder neuer, die erste Version, die prompt_cache an die Statuszeile sendet. Bei älteren Versionen bleibt die Zeile leer. Node muss im PATH liegen.
# Ähnliche Mods
EmpfohlenKontext-Meter
Kontextfüllstand, 5-Stunden- und 7-Tage-Plannutzung und Sitzungskosten in der Statuszeile, plus Warnung vor dem Limit.
- Statuszeile
- Toast
- Verändert die Oberfläche
getestet mit v2.1.310
EmpfohlenContext Bar
Das Kontextfenster von Claude Code als gestapelter Balken über dem Prompt, eine Farbe pro Kategorie, mit Token-Zahlen.
- über dem Prompt
- Verändert die Oberfläche
- Fügt Befehle/Tools hinzu
- Speichert Daten
getestet mit v2.1.291
EmpfohlenCompact Adviser
Erkennt abgeschlossene Arbeitseinheiten und zeigt einen Hinweis, wann sich /compact in Claude Code lohnt.
- Statuszeile
- Bereich
- Toast
- Liest Dateien
- Schreibt Dateien
- Netzwerk
- Liest deine Prompts
- Verändert die Oberfläche
- Fügt Befehle/Tools hinzu
- Speichert Daten
getestet mit v2.1.291
Mehr in Statuszeile & Prompt-Leiste, Kontext, Kontingent, Kosten.