- Einführung eines experimentellen Renderers, der die Flacker- und Sprungeffekte des bisherigen Renderers beseitigt
- Auch bei langen Unterhaltungen bleiben Speicher- und CPU-Auslastung konstant, und in der Terminal-Umgebung sind nun Mausklicks, Cursorbewegungen und Klicks auf UI-Elemente möglich
- Aktivierung über die Umgebungsvariable
CLAUDE_CODE_NO_FLICKER=1
- Aufgrund struktureller Grenzen der bisherigen Terminal-ANSI-Codes musste zum Neuzeichnen von Zeilen außerhalb des Viewports bisher Code zum Löschen des gesamten Bildschirms verwendet werden; der neue Renderer löst dieses Problem, indem er den gesamten Viewport virtualisiert
- Da Trade-offs wie fehlende native
cmd-f-Suche, kein Copy-and-Paste und noch nicht fertig abgestimmte Scroll-Physik verbleiben, befindet sich die Funktion noch im experimentellen Stadium
- Da sich die Gesprächsinhalte nicht im Scrollback, sondern im alternativen Bildschirm-Puffer befinden, kann nach dem Wechsel in den Transcript-Modus mit
Ctrl+O eine Suche im less-Stil (/, n/N) verwendet werden
- Das Eingabefeld bleibt auch während gestreamter Ausgabe am unteren Bildschirmrand fixiert
- Unterstützt In-App-Mausereignisse wie das Anpassen der Cursorposition per Maus, das Aufklappen von Tool-Ergebnissen, das Öffnen von URLs/Dateipfaden und Textauswahl per Drag-and-Drop
Weitere Details siehe Fullscreen rendering in der Claude-Code-Dokumentation (unten angehängt)
Fullscreen-Rendering
- Durch Setzen der Umgebungsvariable
CLAUDE_CODE_NO_FLICKER=1 beim Start oder durch Hinzufügen von export CLAUDE_CODE_NO_FLICKER=1 zu ~/.zshrc / ~/.bashrc wird es automatisch auf alle Sitzungen angewendet
- Erfordert Claude Code ab v2.1.88, befindet sich derzeit in der Research-Preview-Phase und das Verhalten kann sich je nach Feedback ändern
- Die Bezeichnung „Fullscreen“ hat nichts mit dem Maximieren des Terminalfensters zu tun und funktioniert bei jeder Fenstergröße
Änderungen gegenüber der bisherigen Methode
- Das Eingabefeld bleibt auch während gestreamter Ausgabe am unteren Bildschirmrand fixiert (ist das Eingabefeld fixiert, ist Fullscreen-Rendering aktiviert)
- Da sich die Gesprächsinhalte im alternativen Bildschirm-Puffer befinden, ergeben sich folgende Unterschiede:
| Bisher |
Danach |
Textsuche mit Cmd+F oder tmux-Suche |
Nach Ctrl+O mit / suchen oder mit [ in den nativen Scrollback des Terminals schreiben und dann Cmd+F verwenden |
| Auswahl/Kopieren per nativer Drag-Funktion des Terminals |
In-App-Auswahl, automatisches Kopieren beim Loslassen der Maustaste |
URL mit Cmd-Klick öffnen |
URL per Klick öffnen |
Mausunterstützung
- Klick auf das Prompt-Eingabefeld: Cursor an beliebiger Textposition platzieren
- Klick auf eingeklappte Tool-Ergebnisse: aus- oder einklappen (Tool-Aufruf und Ergebnis werden gemeinsam erweitert)
- Klick auf URLs/Dateipfade: Dateien werden mit der Standard-App geöffnet,
http://-/https://-URLs im Browser
- In xterm.js-basierten Terminals wie dem integrierten VS-Code-Terminal wird an den terminaleigenen Link-Handler delegiert, damit Links nicht doppelt geöffnet werden
- Klicken und Ziehen: Textauswahl (Doppelklick: Wortauswahl, Dreifachklick: Zeilenauswahl)
- Mausrad: Gespräch scrollen
- Beim Loslassen der Maustaste wird ausgewählter Text automatisch in die Zwischenablage kopiert; kann unter
/config deaktiviert werden
Scroll-Kurzbefehle
| Tastenkürzel |
Aktion |
PgUp / PgDn |
Eine halbe Bildschirmseite nach oben/unten scrollen |
Ctrl+Home |
Zum Anfang der Unterhaltung springen |
Ctrl+End |
Zur neuesten Nachricht springen und Auto-Follow wieder aktivieren |
| Mausrad |
Um einige Zeilen scrollen |
- Auf Tastaturen ohne dedizierte Tasten wie beim MacBook kann
Fn+↑/↓/←/→ als Ersatz für PgUp/PgDn/Home/End verwendet werden
- Beim Scrollen nach oben wird Auto-Follow vorübergehend pausiert; mit
Ctrl+End oder durch Scrollen ganz nach unten wird es fortgesetzt
- Die Tastenkürzel können über Aktionsnamen wie
scroll:pageUp, scroll:pageDown usw. per Keybinding angepasst werden (siehe Keybindings-Dokumentation)
- Über die Umgebungsvariable
CLAUDE_CODE_SCROLL_SPEED kann der Faktor für die Scrollgeschwindigkeit des Mausrads angepasst werden (1–20, Standardempfehlung 3 auf Vim-Basis)
Unterhaltung durchsuchen und prüfen (Transcript-Modus)
- Nach dem Wechsel in den Transcript-Modus mit
Ctrl+O stehen Navigation und Suche im less-Stil zur Verfügung
| Taste |
Aktion |
/ |
Suche öffnen (Enter: bestätigen, Esc: abbrechen) |
n / N |
Zum nächsten/vorherigen Suchtreffer springen |
j/k oder ↑/↓ |
Eine Zeile scrollen |
g/G oder Home/End |
Zum Anfang/Ende springen |
Ctrl+U / Ctrl+D |
Eine halbe Seite scrollen |
[ |
Gesamte Unterhaltung in den nativen Scrollback des Terminals schreiben (Cmd+F nutzbar) |
v |
In temporäre Datei speichern und mit $VISUAL/$EDITOR öffnen |
Esc, q, Ctrl+O |
Transcript-Modus beenden |
Hinweise zur Verwendung mit tmux
- Um das Scrollen per Mausrad in tmux zu nutzen, muss in
~/.tmux.conf set -g mouse on hinzugefügt werden
- Ohne Mausmodus werden Mausrad-Ereignisse an tmux weitergereicht; Scrollen per Tastatur mit
PgUp/PgDn funktioniert normal
- Wenn Claude Code bei deaktiviertem tmux-Mausmodus gestartet wird, gibt es eine einmalige Hinweismeldung aus
- Mit
tmux -CC (iTerm2-Integrationsmodus) ist es nicht kompatibel
- In diesem Modus funktionieren der alternative Bildschirm-Puffer und Mouse-Tracking nicht korrekt, und Doppelklicks können den Terminalzustand beschädigen
- Die normale Nutzung von tmux in iTerm2 ohne
-CC funktioniert korrekt
So bleibt die native Textauswahl erhalten
Research Preview und Feedback
- Wurde in den wichtigsten Terminal-Emulatoren getestet, aber in ungewöhnlichen Terminals oder bei speziellen Konfigurationen können Rendering-Probleme auftreten
- Bei Problemen in Claude Code den Befehl
/feedback ausführen oder im Claude-Code-GitHub-Repo ein Issue erstellen (Name und Version des Terminal-Emulators angeben)
- Zum Deaktivieren die Umgebungsvariable entfernen oder
CLAUDE_CODE_NO_FLICKER=0 setzen
6 Kommentare
Ich nutze den integrierten Modus mit
iterm -CC, daher ist mir nichts besonders Merkwürdiges aufgefallen...Eher im Gegenteil: Seit einiger Zeit war es lästig, dass beim Scrollen während des Renderings zwangsweise an den Anfang gesprungen wurde. Jetzt bleibt die Position stehen und stattdessen erscheint eine
new message-Benachrichtigung, das gefällt mir. Ist gut..Wenn ich das aktiviere, scheint ein Zeilenumbruch mit Shift + Enter nicht zu funktionieren :(
Wirkt so, als würde es sich ein wenig in Richtung opencode verändern.
Die TUI wird zur GUI
Solche Änderungen gefallen mir~
Es wirkt, als müsste es noch etwas weiter ausgearbeitet werden.
Wenn man den Cursor setzt und dann mit der Maus eine andere Stelle auswählt, sollte automatisch kopiert werden, und beim Einfügen sollte es an der Stelle eingefügt werden, an der der Cursor war.
Stattdessen wird es an der mit der Maus ausgewählten Stelle eingefügt.