read-once: Ein Claude-Code-Hook, der redundante Dateizugriffe verhindert

Ein Entwickler hat einen PreToolUse-Hook namens read-once erstellt, der Claude Codes Tendenz adressiert, während einer Sitzung wiederholt dieselben Dateien zu lesen, was unnötige Tokens verbraucht.
Das Problem und die Lösung
Claude Code liest Dateien oft erneut, die es bereits im Kontext hat. Zum Beispiel kostet das Öffnen einer 500-Zeilen-Datei, eine kleine Bearbeitung und das erneute Lesen der gesamten Datei durch Claude etwa 2.000+ Tokens pro Lesevorgang. In typischen Sitzungen könnten dieselben Dateien 5-10 Mal gelesen werden.
Der read-once-Hook verfolgt, welche Dateien Claude in der aktuellen Sitzung gelesen hat. Wenn Claude versucht, eine unveränderte Datei erneut zu lesen, blockiert der Hook dies und zeigt eine Nachricht wie: "read-once: config.rs (~3.400 Tokens) bereits im Kontext (vor 4m gelesen, unverändert). Sitzungseinsparungen: ~12.000 Tokens."
Wie es funktioniert
- Beim ersten Lesen: Zeichnet den Dateipfad, die Änderungszeit und den Zeitstempel auf und erlaubt dann das Lesen normal.
- Beim erneuten Lesen einer unveränderten Datei: Blockiert das Lesen, da Claude den Inhalt bereits hat.
- Beim erneuten Lesen einer geänderten Datei: Anstatt ein vollständiges erneutes Lesen zu erlauben, berechnet der Hook den Diff und gibt nur zurück, was sich geändert hat. Claude hat die alte Version bereits im Kontext und benötigt nur das Delta. Für eine 500-Zeilen-Datei, in der 3 Zeilen geändert wurden, werden so ~30 Tokens anstelle von ~2.000 verwendet, was 80-95 % bei Dateiiterationen einspart.
Funktionen und Konfiguration
Das Tool ist TTL-bewusst, wobei Cache-Einträge nach 20 Minuten (konfigurierbar) ablaufen. Nach Ablauf werden erneute Lesevorgänge erlaubt, da Claude den Kontext möglicherweise komprimiert und frühere Inhalte verloren hat.
Die Konfiguration erfolgt über Umgebungsvariablen:
READ_ONCE_TTL=1200- Sekunden, bevor der Cache abläuft (Standard 20 Min.)READ_ONCE_DIFF=1- Diff-Modus aktivierenREAD_ONCE_DIFF_MAX=40- maximale Diff-Zeilen, bevor auf vollständiges erneutes Lesen zurückgegriffen wirdREAD_ONCE_DISABLED=1- komplett ausschalten
Technische Details
Das gesamte Tool besteht aus etwa 250 Zeilen Bash ohne Abhängigkeiten außer jq und diff. Es ist unter der MIT-Lizenz lizenziert und wird installiert, indem es selbst in Ihre .claude/settings.json-Hooks eingefügt wird.
Der Entwickler hat dieses Tool gebaut, weil er Claude Code in einer autonomen Schleife ausführt, bei der sich die Token-Kosten schnell summieren. Der Diff-Modus allein hat angeblich ihren Token-Verbrauch pro Sitzung um etwa 30 % reduziert.
📖 Read the full source: r/ClaudeAI
👀 Siehe auch

Argus: Open-Source VS Code Erweiterung für Echtzeit-Beobachtbarkeit von Claude Code
Argus visualisiert Claude Code-Agent-Schritte in Echtzeit in VS Code und zeigt Zeitstrahl, Abhängigkeitsdiagramm sowie Kosten-/Schleifenerkennung, um tokenverschwendendes Verhalten zu debuggen.

Token Enhancer reduziert den Tokenverbrauch von Webseiten für KI-Agenten.
Ein Entwickler stellte fest, dass rohes HTML von Webabrufen übermäßig viele Tokens im KI-Agenten-Kontext verbraucht, wobei Yahoo-Finance-Seiten 704.000 Tokens verwendeten. Durch den Einsatz von Token Enhancer als MCP-Server konnte dies auf 2.600 Tokens reduziert werden.

NexQuant: Rust-native 3-Bit-KV-Cache-Engine für Edge-Bereitstellung
NexQuant ist eine produktionserprobte Rust-Engine, die das Ausführen von Modellen mit hohem Kontext auf Consumer-Hardware mit einer 3-5-fachen Speicherreduzierung ermöglicht. Sie unterstützt Metal-, CUDA-, Vulkan- und CPU-Backends.

Universal CLAUDE.md reduziert Claude-Ausgabetokens in Benchmarks um 63 %.
Ein Entwickler hat eine universelle CLAUDE.md-Datei erstellt, die die Ausgabetokens von Claude in fünf Benchmark-Tests um 63 % reduziert, während die technische Genauigkeit erhalten bleibt. Die Datei behandelt häufige Claude-Verhaltensweisen wie ausführliche Antworten, unnötige Formatierungen und unerwünschte Vorschläge.