Claude Chill: Das Flackern von Claude Code im Terminal beheben
(github.com/davidbeesley)- Claude Chill ist ein PTY-Proxy-Tool, das Verzögerungen und Flackerprobleme mindert, die entstehen, wenn Claude Code wiederholt das gesamte Terminal neu zeichnet
- Es fängt die von Claude Code verwendeten synchronisierten Ausgaben (Sync Blocks) ab und aktualisiert mit VT100-basiertem Rendering nur die geänderten Teile des Bildschirms
- Es verwaltet einen History-Puffer für Scrollback; mit Ctrl+6 kann man in den „Lookback-Modus“ wechseln und die gesamte Ausgabevergangenheit ansehen
- Bietet eine Auto-Lookback-Funktion, die die History automatisch ausgibt, wenn für eine gewisse Zeit keine Eingabe erfolgt
- Läuft unter Linux und macOS und ist eine leichtgewichtige Lösung zur Verbesserung von Terminal-Performance und Lesbarkeit
Überblick
- Claude Chill ist ein PTY-Proxy-Programm, das entwickelt wurde, um die Terminal-Ausgabeprobleme von Claude Code zu lösen
- Claude Code kapselt die gesamte Ausgabe in Sync Blocks und rendert sie auf einmal; dabei kommt es zu vollständigen Bildschirmaktualisierungen über Tausende Zeilen
- Dadurch entstehen Probleme wie Verzögerungen, Flackern und verlorener Scrollback
- Claude Chill sitzt zwischen Terminal und Claude Code, übernimmt nur Ausgabedifferenzen und erhält einen History-Puffer
Hauptfunktionen
- Abfangen von Sync Blocks: Erkennt und verarbeitet die großen Synchronisationsblöcke, die Claude Code sendet
- VT-basiertes Rendering: Verwendet einen VT100-Emulator, um den Bildschirmzustand zu verfolgen und nur geänderte Teile auszugeben
- History-Erhalt und Lookback-Modus: Speichert die Ausgabe in einem Puffer, damit frühere Logs eingesehen werden können
- Wechsel in den Lookback-Modus mit Ctrl+6
- Pausiert die Ausgabe von Claude und zeigt die vollständige History im Terminal an
- Erneutes Drücken der Taste oder Beenden mit Ctrl+C
- Auto-Lookback: Wenn für eine gewisse Zeit keine Eingabe erfolgt (standardmäßig 15 Sekunden), wird die History automatisch ausgegeben
- Kann mit der Option
-a 0deaktiviert werden - Beim automatischen Dump kann der Bildschirm kurz flackern
- Kann mit der Option
Installation und Verwendung
- Installation:
cargo install --path crates/claude-chill - Ausführungsbeispiele:
- Standardstart:
claude-chill claude - Mit Argumenten:
claude-chill -- claude --verbose - History-Größe festlegen:
claude-chill -H 50000 claude - Auto-Lookback deaktivieren:
claude-chill -a 0 claude
- Standardstart:
- Wichtige Optionen:
-H, --history: maximale Anzahl History-Zeilen (Standard: 100000)-k, --lookback-key: Taste zum Umschalten des Lookback-Modus-a, --auto-lookback-timeout: Wartezeit für Auto-Lookback (ms)
Konfigurationsdatei
- Speicherort:
- Linux:
~/.config/claude-chill.toml - macOS:
~/Library/Application Support/claude-chill.toml
- Linux:
- Wichtige Einträge:
history_lines: maximale Anzahl History-Zeilenlookback_key: Taste zum Umschalten des Lookback-Modusrefresh_rate: Rendering-FPSauto_lookback_timeout_ms: Zeit für Auto-Lookback
Tastaturprotokoll und Tastenkonfiguration
- Automatischer Moduswechsel in Terminals mit Unterstützung für das Kitty Keyboard Protocol (Kitty, Ghostty, WezTerm usw.)
- Wenn Claude Code den Kitty-Modus aktiviert, erkennt Claude Chill diese Kodierung ebenfalls automatisch
- Tastenformat:
[modifier][key]- Beispiele:
[f12],[ctrl][g],[ctrl][shift][j]
- Beispiele:
- Die Standardtaste Ctrl+6 sendet ASCII 0x1E und kollidiert in den meisten Terminals nicht mit anderen Belegungen
- Unter macOS bewirkt Ctrl+Shift+6 (Ctrl+^) dasselbe
Funktionsweise
- Claude Chill erstellt ein virtuelles Terminal (PTY) und startet Claude Code als Kindprozess
- Ein-/Ausgabe-Proxy-Struktur:
Terminal ⇄ claude-chill ⇄ Claude Code - Wichtige Verarbeitungsschritte:
- Eingabe: Wird an Claude weitergeleitet, nur die Lookback-Taste wird abgefangen
- Ausgabe: Sync Blocks werden erkannt, asynchrone Ausgabe wird unverändert weitergeleitet
- Der Bildschirmzustand wird per VT-Emulation verfolgt
- Im Vergleich zum vorherigen Zustand werden nur Unterschiede gerendert
- History-Puffer wird erhalten und der Lookback-Modus unterstützt
- Signale wie SIGWINCH, SIGINT, SIGTERM werden an Claude weitergegeben
Hinweise
- Das Tool wurde für den persönlichen Gebrauch entwickelt; umfassende Tests wurden nicht durchgeführt
- Funktion auf Linux und macOS bestätigt
- Der Einsatz in wichtigen Systemen oder Infrastrukturumgebungen wird nicht empfohlen
- MIT-Lizenz
1 Kommentare
Hacker-News-Kommentare
Ich bin für das TUI-Rendering von Claude Code zuständig
Es tut mir leid, dass das so lange frustrierend war, aber heute haben wir den differenziellen Renderer (differential renderer) für alle Nutzer ausgerollt
Wir haben das Rendering-System komplett neu geschrieben, und jetzt erlebt nur noch etwa ein Drittel der Sitzungen gelegentliches Flackern. Kontinuierliches Flackern ist fast verschwunden
Außerdem habe ich Patches für synchronisierte Ausgabe (DEC mode 2026) für das VSCode-Terminal und tmux eingereicht, und sie wurden bereits gemergt
Wer komplett flackerfrei arbeiten will, dem empfehle ich Ghostty. Details dazu stehen im Kommentar zu Issue #769, in xterm.js PR #5453 und tmux PR #4744
In den GitHub-Issues (#1913, #826, #3648) kommen täglich Kommentare dazu, aber seit dem Rollback im Dezember gab es von Anthropic kaum Antworten
Ich verstehe die technische Schwierigkeit, aber der Mangel an Kommunikation scheint das Vertrauen der Nutzer beschädigt zu haben
Ich lasse nur ein oder zwei Agenten laufen, und trotzdem passiert das. Ich frage mich, ob vielleicht noch Rate Limits des vorherigen Tarifs gelten oder ob lange Kontext-Sitzungen die Ursache sein könnten
Trotzdem ist es dank dieses Tools wirklich spannend, Apps zu bauen, die vorher unmöglich gewesen wären
Unter macOS iTerm war es extrem lästig, dass der Bildschirm jedes Mal nach oben scrollte, wenn das Fenster den Fokus verlor
Seit Ghostty 1.0 gab es ein Memory Leak, und CLI-Apps wie Claude Code erzeugten häufig genau die Bedingungen, unter denen das Problem sichtbar wurde
Der Fix wurde bereits gemergt und soll in Release 1.3 enthalten sein
Wenn sich das so flexibel wie bei Zed konfigurieren ließe, wäre das eine deutlich bessere Erfahrung
Ich habe Claude Code seit ein paar Monaten nicht mehr benutzt und bin überrascht, dass das Flickern immer noch nicht behoben ist
Vielleicht ist der Grund, warum es nicht Open Source wird, nicht Konkurrenzdruck, sondern eher ein chaotischer Codebase-Zustand
In Issue #769 steht mehr dazu
Ich habe das npm-Paket lokal gepatcht, aber das ist nicht perfekt. Strukturell muss die Render-Methode geändert werden
OpenAI Codex ist übrigens in Rust + ratatui geschrieben und hat dieses Problem nicht
Solche komplexen Bugs muss am Ende doch jemand persönlich am Wochenende fixen, aber es wirkt so, als würden nur Agenten laufen
Andere CLI-Tools (opencode, codex, gemini, droid usw.) haben dieses Problem nicht
Wer es in einer tmux-Umgebung selbst benutzt hätte, wüsste, wie schmerzhaft das ist, aber ich will trotzdem ein wenig Verständnis aufbringen
Ich würde Claude Code gern nutzen, kann es aber wegen der kaputten Scrollback-Funktion von Ghostty nicht verwenden
Der PTY-Proxy fängt den Output-Stream ab, wodurch der Zugriff auf Ghosttys internen Puffer blockiert wird
Ich habe mich gefragt, was mit Flickering genau gemeint ist
Manchmal scrollt Claude Code plötzlich nach oben, dann ist es schwer, wieder nach unten zu kommen, und erst nach einem Neustart des Terminals wird es wieder normal
Es wäre gut, wenn es eine Toggle-Funktion gäbe, um das Eingabefeld am unteren Rand des Terminals zu fixieren
Es ist lästig, ständig zwischen Chat und Eingabefeld hin und her zu scrollen
In Bezug auf mobile Nutzbarkeit wäre das wohl eine echte Gamechanger-Funktion
Wenn man sich das Format der readme.md ansieht, wirkt es interessant, als ob Claude Code sie selbst geschrieben hätte
Dieses Update scheint der größte Beitrag zu Claude Code in den letzten Monaten zu sein
Ich werde es sofort installieren und testen
Als verwandte Meldung habe ich den früheren Beitrag gesehen, dass das Terminal-Rendering von Claude Code um 85 % verbessert wurde
Danke, dass das Flickern endlich reduziert wurde. Das war ein kopfschmerzauslösender Bug, jetzt kann man etwas aufatmen
Hoffentlich behebt Anthropic das Problem bald vollständig
Codex bleibt auch bei langen Sitzungen deutlich reaktionsschneller, während Claude mit der Zeit zäh wird