libghostty-vt 1.0 Released: Terminal Emulation Library With a Stable ABI
Mitchell Hashimoto, creator of the Ghostty terminal, has announced version 1.0 of libghostty-vt. It offers a stable C interface and is already used in JetBrains IDEs and other projects.
Software developer Mitchell Hashimoto, the author of the Ghostty terminal application, has announced version 1.0 of libghostty-vt. It is a portable, high-performance C library for terminal emulation, extracted from the core of Ghostty. With 1.0, both the library and its C ABI (the binary interface that lets programs keep working with the library across updates) are declared stable. That matters to application developers and to those who package software for operating system distributions.
Who already uses it
According to Hashimoto, the library runs in products used by millions of people. The terminal in JetBrains IDEs, including IntelliJ, PyCharm and GoLand, now runs on libghostty; JetBrains reports more than 12.5 million active users. In the Neovim editor, an approved pull request replaces libvterm with libghostty-vt, closing a 10-year-old issue about reflowing scrollback when a window is resized. Vercel's Turborepo, devenv and OrbStack also use it, and bindings exist for several programming languages, including Rust, Go, Python and Swift.
ABI stability and packaging
The library follows semantic versioning. Every object is an opaque handle, and programs built with newer headers that are linked against an older library receive a GHOSTTY_UNSUPPORTED result instead of crashing. The ABI policy is enforced in continuous integration using the libabigail tool. Each release includes a signed source tarball and a dependencies tarball, so distributions can build the library offline.
Licence and platforms
libghostty-vt is MIT licensed, needs nothing beyond libc at runtime, and has no copyleft code in its dependency tree. It is built and tested on Linux, macOS, iOS, FreeBSD, Windows, Android and WebAssembly. In one test, Hashimoto ran 10,000 active terminals at once on a server with 4 cores and 8 GB of RAM.
Going forward, the project plans to keep the library stable while supporting as many terminal protocols as possible.

