Libghostty 1.0 liefert eine stabile C-ABI für Terminal-Apps
Libghostty-vt 1.0 erschien am 6. November mit einer stabilen C-ABI. Ein Build-Test von Tech AI Wire fand 209 versionierte Funktionen und eine Versionsnummer, die gesunken ist.
Von Claire Whitmore
4 Min. Lesezeit
Maschinell übersetzt aus dem englischen Original, das Claire Whitmore auf Fakten geprüft und redigiert hat. Es gilt die englische Fassung. So arbeiten wir

Die Zahlen
- exportierte Funktionen, alle mit dem Tag GHOSTTY_VT_1.0, in einem Build von Tech AI Wire
- 209
- Build aus den signierten Tarballs in einem Linux-Container-Test von Tech AI Wire
- 117 s
- aktive Terminals auf einem Linux-Rechner mit 4 Kernen und 8 GB im Test eines Nutzers, laut Dokumentation
- 10.000
Mitchell Hashimoto hat am 6. November 2026 libghostty-vt 1.0 veröffentlicht. Es ist die erste stabile Version der Terminal-Engine, die in seinem Terminal Ghostty steckt. Version 1.0 friert die C-ABI der Bibliothek ein, also die binäre Schnittstelle, gegen die kompilierte Programme gelinkt werden. Eine App, die heute auf 1.0 gebaut wird, sollte weiterlaufen, wenn spätere 1.x-Versionen die Bibliothek darunter ersetzen. Das zählt, weil JetBrains-IDEs ihr eingebautes Terminal bereits darauf betreiben. Neovim wartet auf diese Version, um seinen alten Terminal-Code abzulösen.
Was libghostty-vt 1.0 verspricht
Eine Terminal-Engine liest die Bytes, die ein Programm ausgibt, einschließlich der Escape-Codes für Farben und Cursorbewegungen. Dann verfolgt sie den Bildschirm, den Cursor und den Scrollback. Sie zeichnet nichts. Das Zeichnen bleibt der App überlassen. Deshalb können sich ein KDE-Terminal, eine IDE und eine Webseite dieselbe Engine teilen.
„1.0 bedeutet, dass libghostty-vt der semantischen Versionierung folgt und strikte ABI-Kompatibilität verspricht“, schreibt Hashimoto in seinem Ankündigungsbeitrag. Er beschreibt, wie das Projekt das durchsetzt:
- Code, der mit neueren Headern gebaut wurde, bekommt von einer älteren Bibliothek den Fehler
GHOSTTY_UNSUPPORTEDstatt eines Absturzes. - Jede exportierte Funktion trägt unter Linux und anderen ELF-Systemen ein Versions-Tag. So lehnt das System eine unpassende Bibliothek beim Programmstart anhand des Namens ab.
- Die Continuous Integration vergleicht die ABI unter Linux mit libabigail gegen eine gespeicherte Referenz. Unter macOS und WebAssembly vergleicht sie gegen feste Typlisten.
Die Bibliothek hat jetzt einen eigenen Release-Zyklus, getrennt von der Ghostty-App. Jede Version liefert einen signierten Quell-Tarball und einen zweiten Tarball mit allen Zig-Abhängigkeiten. So können Linux-Distributionen offline bauen. Die Regeln stehen in PACKAGING-LIBGHOSTTY.md. Der Code steht unter der MIT-Lizenz und braucht zur Laufzeit nur die C-Bibliothek.
Wer sie bereits nutzt
JetBrains betreibt das Terminal in IntelliJ, PyCharm, GoLand und seinen anderen IDEs inzwischen mit der Bibliothek, sagt Hashimoto. Er nennt JetBrains' eigene Zahl von 12,5 Millionen wiederkehrenden Nutzern dieser IDEs. Die Dokumentation des Projekts schätzt, dass zig Millionen Menschen libghostty-vt täglich nutzen, und merkt an, dass es kein Tracking gibt.
Neovim hat laut Hashimoto einen genehmigten Pull Request, #39773, der libvterm durch libghostty-vt ersetzt. Er wartete auf eine getaggte Version und war am 7. November noch offen. Er würde einen zehn Jahre alten Fehler beheben, bei dem Terminaltext nach einer Größenänderung des Fensters abgeschnitten wird. Weitere Nutzer sind Vercels Turborepo, OrbStack, das Terminal Ghostel für Emacs und KDEs experimentelles Terminal Kwi. Bindings aus der Community gibt es für Rust, Go, Python, Swift, .NET und mehr.
Getestet: 1.0 aus den signierten Tarballs gebaut
In einem Test von Tech AI Wire am 7. November baute ein Alpine-Linux-3.22-Container (arm64) unter macOS 26.6.2 mit Docker 28.4.0 die Version. Er folgte den Schritten, die der Packaging-Leitfaden Distributionen vorgibt:
minisign -V -P RWQlAjJC23149WL2sEpT/l0QKy7hMIFhYdQOFy0Z7z7PbneUgvlsnYcV -m libghostty-vt-1.0.0.tar.gz
ZIG_GLOBAL_CACHE_DIR=/tmp/build-cache zig build --prefix /usr \
--system ../libghostty-vt-1.0.0-deps -Doptimize=ReleaseFast -Dcpu=baseline
objdump -T /usr/lib/libghostty-vt.so | grep -c GHOSTTY_VT_1.0
| Prüfung | Ergebnis |
|---|---|
| Signaturen von Quellen, Abhängigkeiten und SHA256SUMS | Alle drei mit minisign verifiziert |
| Zig-Compiler | 0.17.0 (die Version verlangt 0.17.x) |
| Build-Zeit, ReleaseFast | 117 Sekunden |
| Gemeinsame Bibliothek | libghostty-vt.so.1.0.0, 11,5 MB, soname libghostty-vt.so.1 |
| Laufzeitabhängigkeiten | Nur die C-Bibliothek (musl) |
| Exportierte Funktionen | 209, jede mit dem Tag GHOSTTY_VT_1.0 |
| pkg-config-Version | 1.0.0 |
| Das C-Beispiel der Dokumentation | Mit gcc kompiliert, gab „Hello, world!“ aus |
Der erste Versuch scheiterte. Die mitgelieferte C++-Laufzeit von Zig brauchte den Header linux/futex.h, der in einem nackten Alpine-Image fehlt. Die Installation von Alpines Paket linux-headers behob das.
Die Versionsnummer ist gesunken
Vor 1.0 übernahm libghostty-vt seine Version von der Ghostty-App. In den Build-Dateien von Ghostty 1.4.0 ist die Version der Bibliothek die der App, also 1.4.0. Die stabile Version meldet 1.0.0. Im Build von Tech AI Wire antwortete pkg-config --atleast-version=1.4.0 libghostty-vt mit Nein.
KDEs Kwi musste sich anpassen. Am 7. November änderte der Commit „Deps: Bump to libghostty-vt 1.0“ von Entwickler Eike Hein die README von „libghostty-vt 1.4.0+“ auf „libghostty-vt 1.0+“. Derselbe Commit zeigt, dass sich die C-API selbst vor dem Einfrieren geändert hat. ghostty_formatter_terminal_new() verlor sein Optionsargument, das jetzt mit ghostty_formatter_set() gesetzt wird. Zwei Typen für den Cursorstil wurden durch einen ersetzt, GhosttyCursorStyle.
Was das für Entwickler bedeutet
- Alte Versionsprüfungen auf 1.0 senken. Eine CMake- oder pkg-config-Prüfung auf 1.4 oder neuer lehnt die stabile Bibliothek ab. Kwi verlangt jetzt
find_package(Ghostty 1.0 REQUIRED). - Code neu kompilieren, der gegen einen Build vor 1.0 geschrieben wurde. Das ABI-Versprechen beginnt mit 1.0. Rechnen Sie mit umbenannten Typen und geänderten Funktionssignaturen, wie bei Kwis Portierung.
- Paketbetreuer sollten die Release-Tarballs nutzen, keinen Git-Checkout. Laut Leitfaden baut ein Checkout oder GitHub-Archiv stattdessen die Ghostty-App, außer man ergänzt
-Demit-lib-vt. Verwenden Sie ein frisches, leeresZIG_GLOBAL_CACHE_DIRund Zig 0.17.x. - Gegen den soname libghostty-vt.so.1 linken. Spätere 1.x-Versionen behalten diesen Namen. So erhalten heute gebaute Programme Korrekturen ohne neuen Build.
- Die eigene Plattform prüfen. Hashimoto nennt Windows on Arm, illumos, 32-Bit-x86, WASI und Bare Metal als in der CI gebaut, aber nicht getestet. Er beansprucht auch keine vollständige Abdeckung aller Terminalprotokolle.
- Neovim-Nutzer können abwarten. Nichts ändert sich, bis Pull Request #39773 gemergt ist und in einer Version erscheint.
Quellen
- Libghostty 1.0 - Mitchell Hashimoto
- Packaging libghostty-vt for Distribution - GitHub
- libghostty-vt documentation - Ghostty
- feat(terminal): replace libvterm with libghostty-vt - GitHub
- Deps: Bump to libghostty-vt 1.0 - KDE on GitHub
- Libghostty 1.0 gives developers a stable terminal engine to embed - RuntimeWire
Ähnliche Artikel

OpenSSH 10.6p2 behebt Passwort-Umgehung unter Alpine Linux
OpenSSH 10.6p2 und Alpine haben am 5. November einen SSH-Login ohne Passwort behoben. Ein Test von Tech AI Wire mit fünf Alpine-Images zeigt, wer betroffen ist.

Kwi, KDEs neues Terminal, verspricht 3- bis 35-fache Konsole-Geschwindigkeit
KDE-Entwickler Eike Hein stellte am 1. November Kwi vor, ein GPU-gerendertes Terminal auf Basis von Ghosttys libghostty-vt, das laut ihm 3- bis 35-mal schneller läuft als Konsole.

GitLab CVE-2026-97229: Alpine meldet einen Angriffsversuch
Alpine Linux meldet, dass ein Angreifer CVE-2026-97229 am 20. und 21. Oktober auf seinem GitLab-Server ausprobierte. Ein GitLab-Upgrade allein half nicht: Der Patch steckt in Ruby.