JetBrains IDE terminals now run on libghostty, serving over 12.5 million active users.
*The C library libghostty‑vt reaches version 1.0, locking down its ABI and packaging pipeline. Millions of developers now depend on it for IDE terminals, editors, and commercial tools.*
The terminal emulation world has a new anchor. libghostty‑vt, the C library extracted from Ghostty’s core, hit version 1.0 on November 6, 2026, cementing a stable ABI and a production‑ready packaging model. Developers who once patched fragile terminal code now have a vetted, high‑performance alternative that scales from personal editors to enterprise‑grade IDEs.
Stability matters when millions of users depend on a component that sits between a keyboard and a compiler. With ABI guarantees, distribution maintainers can ship libghostty‑vt confidently, and application authors can link dynamically without fearing silent crashes. The release also bundles licensing transparency and offline build assets, addressing the exact pain points that have slowed adoption of previous terminal libraries.
Since Ghostty launched in 2022, libghostty has moved from a prototype to the backbone of several high‑profile products. JetBrains migrated the terminal in every IntelliJ‑based IDE—IntelliJ, PyCharm, GoLand and others—to libghostty, covering over 12.5 million active users according to a JetBrains report. Neovim accepted a pull request that swaps libvterm for libghostty‑vt, closing a decade‑old scrollback‑resize bug. KDE developers are prototyping a Konsole replacement on the library. Vercel’s Turborepo renders task output with it, while devenv drives shells and Antithesis uses it to fuzz TUI programs, uncovering bugs in btop. Commercial offerings such as OrbStack embed libghostty, and a wave of new terminals and coding agents—herdr, cmux—are built on it instead of writing fresh emulators.
Version 1.0 guarantees semantic versioning and strict ABI compatibility, a rare promise for C libraries. Every object is an opaque handle; values flow through enum‑keyed getters and setters, allowing new fields without new symbols. When newer headers link against an older libghostty, the library returns GHOSTTY_UNSUPPORTED rather than crashing. Non‑opaque structs carry their size and reserved padding for future expansion. Enums are pinned to int across compilers. The CI pipeline validates each change with libabigail on Linux and golden manifests on macOS and WebAssembly. Exported symbols are versioned on ELF platforms, so a mismatched loader refuses to start the program. This stability lets packagers and developers rely on dynamic linking without fearing silent failures.
The release bundles proper build tooling, signed source tarballs, and a dependencies tarball that mirrors Zig’s cache layout, enabling offline builds. The tarball installs shared and static libraries with a correct SONAME, headers, pkg‑config files, and a CMake config, respecting --prefix, DESTDIR and lib64 conventions. Debug info is retained by default for split‑debug packages. Documentation includes PACKAGING‑LIBGHOSTTY.md, detailing steps for Linux, macOS and WebAssembly. Each release publishes a companion dependencies manifest listing every Zig package, its version, SPDX license and hash, allowing distributions to verify licensing and reproducibility. The library’s own release cycle is independent of the Ghostty application, producing smaller, license‑clean packages tailored for system repositories.
Libghostty‑vt is released under the MIT license and requires only libc at runtime. It can be built fully freestanding if desired. The codebase depends on a handful of permissively licensed components: simdutf and Google Highway for SIMD operations, a compact Unicode table for grapheme handling, and Wuffs for image decoding in the Kitty graphics protocol. Both simdutf and Highway compile without libc++, eliminating any C++ standard library dependency. No copyleft code appears anywhere in the dependency tree. Every dependency is listed in a machine‑readable manifest with version, SPDX identifier and hash, giving distros full visibility for compliance and security audits.
Over 12.5 million active users run JetBrains IDE terminals that have switched to libghostty, according to a JetBrains report.
Libghostty supports Linux, macOS, and WebAssembly, with build tooling that respects standard packaging conventions on each platform.
Libghostty‑vt is MIT licensed and has no copyleft code in its dependency tree.
Libghostty’s 1.0 milestone reshapes the terminal ecosystem. By delivering ABI certainty, streamlined packaging, and a clean MIT‑licensed stack, it removes the technical debt that has plagued terminal emulation for a decade. As IDEs, editors and cloud tools adopt the library, the ripple effect will tighten the feedback loop between developers and their shells, accelerating productivity across the software supply chain.
Sources: [Hacker News – Libghostty 1.0 (https://mitchellh.com/writing/libghostty-1-0)]