Zum Inhalt springen
claudemods

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

In Claude Code installieren:

/plugin install cache-clock --marketplace hamzafer/claude-code-mods
Alle Installationswege ↓

Was 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. 1.Eine Zeile, direkt in Claude Code

    /plugin install cache-clock --marketplace hamzafer/claude-code-mods

    In eine laufende Sitzung einfügen (v2.1.275+). Claude Code fragt zuerst, ob der Marketplace hinzugefügt werden soll.

  2. 2.Aus deiner Shell

    claude plugin marketplace add hamzafer/claude-code-mods
    claude plugin install cache-clock@claude-code-mods

    Führe danach in jeder bereits geöffneten Sitzung /reload-plugins aus.

  3. 3.Ohne Installation ausprobieren

    git clone https://github.com/hamzafer/claude-code-mods
    claude --plugin-dir ./claude-code-mods/mods/cache-clock

    Lä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 setup schreibt settings.json im Claude-Konfigurationsordner (oder CLAUDE_CONFIG_DIR) bzw. <project>/.claude/settings.local.json, wenn die Statuszeile aus den Projekteinstellungen stammt. Außerdem schreibt es die Skripte und eine Sicherung setup-<hash>.json unter <config dir>/cache-clock/. /cache-clock remove stellt die frühere statusLine wieder her, es sei denn, du hast sie seit dem Setup geändert. Verwaltete (Policy-)Statuszeilen und solche aus --settings fasst 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). setup selbst führt node --version aus, um zu prüfen, ob Node vorhanden ist.
  • Kein Netzwerk, keine Telemetrie, keine Modellaufrufe, kein Daemon. HOME und CLAUDE_CONFIG_DIR liest sie nur, um den Konfigurationsordner zu finden. Tokens oder Zugangsdaten werden nicht gelesen.
  • Keine Prompt-Injection und keine blockierenden Hooks. Sie registriert nur session.start und 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-clock aus. Es sollte „cache-clock is on“ melden.
  • Sende zuerst eine Nachricht. Die Zeile bleibt leer, bis prompt_cache ankommt, und auch dann, wenn der Anbieter kein Caching meldet.
  • claude --version ist 2.1.251 oder neuer, und node --version funktioniert 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.
Kontext-Meter in Claude CodeEmpfohlen

Kontext-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

Context Bar in Claude CodeEmpfohlen

Context 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

Compact Adviser in Claude CodeEmpfohlen

Compact 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.