Ein Mod für Claude Code, der dir über dem Eingabefeld zeigt, ob der Prompt-Cache deiner Session noch warm ist, und ihn auf Wunsch in Pausen automatisch warm hält.
Nach jeder Antwort hält der Prompt-Cache bei Claude-Abos 60 Minuten (per API 5 Minuten). Solange er warm ist, wird der bisherige Kontext für etwa 10 % des Preises gelesen. Ist er kalt, kostet der nächste Prompt den vollen Preis für den ganzen Kontext. Bei langen Sessions mit großem Kontext lohnt es sich also, das Fenster nicht ungenutzt ablaufen zu lassen.
Eine Zeile über dem Eingabefeld, von links nach rechts:
● Cache 42 min │ Kontext ▰▰▰▰▰▰ 60% 120k/200k │ 5h ▰▰▰▰▰▰ 34% ↻1:52 h │ Woche 12% │ 1,24 $ [ Warmhalten: aus ] [ Komprimieren ]
Balken bestehen aus gleich großen Feldern: die vollen in der Ampelfarbe, die leeren abgeblendet.
- Cache-Zustand: noch keine Antwort / Claude arbeitet / warm mit Restzeit / abgelaufen. Grün, gelb ab 15 Minuten Restzeit, rot ab 5 Minuten und nach Ablauf. Die Restzeit läuft sichtbar herunter.
- Kontext: Balken, Prozent und belegte Tokens / Fenstergröße.
- 5-Stunden-Limit mit Balken, Prozent und Zeit bis zum Zurücksetzen, Wochenlimit in Prozent und die Kosten der Session in US-Dollar, soweit Claude Code sie liefert. Balken: grün, gelb ab 50 %, rot ab 80 %.
- Knöpfe: der Schalter fürs Warmhalten und „Komprimieren“ (führt
/compactaus), sobald der Kontext mindestens halb voll ist oder weniger als 10 Minuten bleiben.
Die Werte werden beim Start und nach jeder Antwort neu eingelesen. Wird das Fenster schmaler, wird die Zeile
knapper statt umzubrechen: erst ohne Tokenzahlen und mit kurzen Knöpfen (Warm: aus, /compact), dann ohne Balken
(● 42 min │ Ktx 60% │ 5h 34% ↻1:52 h │ Wo 12% │ 1,24 $). Erst wenn auch das nicht passt, teilt sie sich auf zwei
Zeilen auf, nie auf mehr. Zeilen anderer Mods über dem Eingabefeld bleiben stehen, diese kommt darunter; läuft dort gerade
eine Umfrage, zeichnet der Mod nichts. Er funktioniert im Terminal und im Code-Tab der Desktop-App.
Warnung vor Ablauf (nur bei ausgeschaltetem Warmhalten): 5 Minuten vor Ablauf, einmal je Cache-Fenster, ein kurzer Zweiklang, eine Einblendung und eine rote Zeile über der Statuszeile mit zwei Knöpfen:
- Einmal warm halten schickt sofort einen Mini-Prompt, dessen Antwort ein neues Fenster öffnet.
- Kontext komprimieren führt
/compactaus.
Automatisch warm halten (Schalter Warmhalten: an/aus, sichtbar ab der ersten Antwort): 3 Minuten vor Ablauf
schickt der Mod selbst einen Mini-Prompt, der Claude bittet, nur mit „ok“ zu antworten. Dabei gilt:
- höchstens ein Ping je Cache-Fenster;
- kein Ping, solange Claude arbeitet oder im Eingabefeld Text steht; sobald das Feld leer ist und noch Zeit bleibt, wird nachgeholt;
- neben dem Schalter steht, wann gepingt wird; Ton, Einblendung und rote Warnzeile entfallen;
- der Schalter geht von selbst aus (mit Grund daneben und einer Einblendung) nach 4 Stunden ab dem Einschalten, wenn das 5-Stunden-Limit 90 % erreicht, oder wenn der Cache schon abgelaufen ist (etwa nach dem Ruhezustand), denn dann würde ein Ping nur den vollen Preis zahlen.
Der Zustand wird je Session gemerkt und übersteht ein Neuladen des Mods und das Fortsetzen der Session, solange die
Höchstdauer nicht um ist. Antworten von Subagenten zählen nicht als letzte Antwort. Wenn das Band über dem
Eingabefeld den Fokus hat (Klick oder ctrl+x tab), drücken w, p und k die Knöpfe.
Im Terminal in einer Claude-Code-Session:
/plugin marketplace add HitEmUp/keepcachewarm
/plugin install keepcachewarm@keepcachewarm
oder in einem Schritt:
/plugin install keepcachewarm --marketplace HitEmUp/keepcachewarm
Die Frage nach dem Marktplatz mit y bestätigen und den Bereich wählen (Vorgabe: für dich, in allen Projekten).
Der Mod läuft danach sofort. Im Code-Tab der Desktop-App gibt es den Befehl nicht: einmal im Terminal für dich
installieren, dann lädt der Mod auch dort.
Alle Werte stehen in /config unter keepcachewarm:
| Einstellung | Vorgabe | Bedeutung |
|---|---|---|
| Cache-Dauer (Minuten) | 60 | Wie lange der Cache nach der letzten Antwort hält; per API 5. |
| Ping-Vorlauf (Minuten) | 3 | So lange vor Ablauf pingt das automatische Warmhalten. |
| Höchstdauer Warmhalten (Stunden) | 4 | Danach schaltet sich das Warmhalten ab. |
| Limit-Grenze (%) | 90 | Ab diesem Stand des 5-Stunden-Limits schaltet es sich ab. |
| Warnvorlauf (Minuten) | 5 | So lange vor Ablauf warnen Ton, Einblendung und rote Zeile. |
Die Vorgaben stehen auch als Konstanten oben in hooks/register.tsx.
hooks/register.tsx Hooks, Zeichnung, Zustand
hooks/logic.ts Entscheidungen und Texte, ohne Engine-Zugriff
types/index.d.ts Vertrag aller Zustandswerte
sounds/warnung.wav Warnton, erzeugt von scripts/ton-erzeugen.py
tests/ Tests für `claude plugin test`
Prüfen und testen (Claude Code 2.1.293 oder neuer):
claude plugin validate .claude plugin test .Den Mod aus dem Arbeitsordner in einer Session laden (Änderungen werden beim Speichern neu geladen):
claude --plugin-dir .Nach dem ersten Laden legt Claude Code die Typen unter .claude-plugin/types/ ab (nicht im Repo); dann prüft
npx tsc -p . die Typen. Den Warnton neu erzeugen:
python3 scripts/ton-erzeugen.pyMIT, siehe LICENSE.