// HEISE ONLINE — HARDWARE & GADGET
Schluss mit kaputten SSH-Sessions: Update für das moderne Terminal Ghostty
Das Update für den Terminal-Emulator Ghostty senkt den RAM-Verbrauch, beschleunigt den Parser und bringt einen praktischen Wrapper für SSH-Verbindungen mit.
Der freie Terminal-Emulator Ghostty ist in Version 1.4.0 erschienen. Das nach sieben Monaten Entwicklungszeit veröffentlichte Update reduziert den Arbeitsspeicherbedarf durch eine neue Scrollback-Komprimierung deutlich, beschleunigt die Textverarbeitung und unterstützt erstmals das vollständige Grafikprotokoll des Konkurrenten Kitty. Außerdem vereinfacht ein neuer Kommandozeilen-Wrapper den Einsatz über SSH-Verbindungen, während Linux-Nutzer einen neuen OpenGL-Renderer erhalten.
Ghostty ist ein für macOS, Linux und FreeBSD verfügbarer Terminal-Emulator, den HashiCorp-Mitgründer Mitchell Hashimoto initiiert hat. Das Open-Source-Projekt richtet sich an Entwickler und Systemadministratoren, die keine Kompromisse zwischen Geschwindigkeit, Funktionsumfang und einer nativen Bedienoberfläche eingehen wollen. Während schnelle Alternativen wie Alacritty auf eigene Bedienelemente für Tabs oder geteilte Fenster verzichten, greift Ghostty hierfür auf die jeweiligen System-Frameworks zurück: Unter macOS nutzt Ghostty SwiftUI mit Metal-Beschleunigung, unter Linux und FreeBSD GTK 4 und OpenGL. Der gemeinsame Programmkern ist in der Systemprogrammiersprache Zig geschrieben und steht als libghostty auch anderen Projekten als einbettbare C-Bibliothek zur Verfügung.
Wie aus den offiziellen Release Notes zu Ghostty 1.4.0 hervorgeht, komprimiert das Terminal nicht sichtbare Zeilen im Rücklaufpuffer (Scrollback) im Leerlauf fortlaufend im Hintergrund. Bei typischen, textlastigen Ausgaben sinkt der Speicherbedarf dieser Seiten dadurch um 70 bis 90 Prozent. Scrollt der Nutzer zurück oder durchsucht den Verlauf, entpackt Ghostty die Daten bei Bedarf ohne spürbare Verzögerung. Wegen dieser Ersparnis haben die Entwickler das Standardlimit für den Puffer von 10 auf 50 MByte pro Terminal verfünffacht. Auch an anderen Stellen geht Version 1.4.0 sparsamer mit Ressourcen um: Unter macOS gibt das Programm den GPU-Speicher von Hintergrund-Tabs frei, wodurch der Grafikspeicherbedarf bei einem offenen und 20 verdeckten Tabs von rund 385 auf 18 MByte fällt.
Parallel dazu steigt die Verarbeitungsgeschwindigkeit. Den größten Sprung macht die macOS-Version beim Einlesen von Daten aus dem Pseudo-Terminal (pty). Da der macOS-Kernel Lesevorgänge aus einem pty unabhängig von der Puffergröße auf etwa 1 KByte begrenzt, blockierte das bisherige synchrone Auslesen und Parsen die ausgebenden Programme. Ghostty 1.4.0 verteilt das Leeren des Puffers und das anschließende Parsen auf zwei separate Threads, was den I/O-Durchsatz auf Apple-Systemen um 25 bis 55 Prozent steigert. Obendrein arbeitet der VT-Parser selbst dank interner Optimierungen deutlich flotter: Reiner ASCII-Text läuft im Benchmark mit 725 statt 128 MByte/s durch den Parser. So verkürzt sich die Ausgabe einer 150 MByte großen Textdatei per cat unter macOS von 1,5 Sekunden auf 566 Millisekunden.
Als erster Terminal-Emulator neben Kitty selbst implementiert Ghostty 1.4.0 die Spezifikation des Kitty-Grafikprotokolls zu 100 Prozent. Damit können Kommandozeilenprogramme Pixelgrafiken direkt im Terminal darstellen. Neu hinzugekommen sind die Unterstützung für Animationen, etwa für bewegte GIFs über kitten icat, und relative Platzierungen, bei denen sich ein Bild abhängig von einer anderen Grafik positioniert und automatisch mit ihr mitbewegt. Durch den Einsatz von SIMD-Befehlen (Single Instruction, Multiple Data) verarbeitet Ghostty große Bilddatenströme zudem rund 16-mal schneller als zuvor.
Ebenfalls aus dem Kitty-Ökosystem stammt das nun unterstützte Clipboard-Protokoll (OSC 5522). Während die klassische Terminal-Sequenz OSC 52 lediglich einfachen Text in die Zwischenablage schreiben oder daraus lesen kann, überträgt OSC 5522 beliebige MIME-Typen wie Bilder oder HTML-Fragmente. Konsolenprogramme können dadurch beispielsweise direkt eingefügte Screenshots e