NewsDeveloper Tools

Libghostty 1.0: Stable C ABI Powers JetBrains and Neovim

Mitchell Hashimoto released libghostty-vt 1.0 on November 6 — a stable C library for terminal emulation extracted from the Ghostty terminal engine. The 1.0 designation covers both the library and its C application binary interface (ABI), giving distributors and developers a versioned foundation they can depend on without fear of breakage. JetBrains IDEs, used by 12.5 million developers across IntelliJ, PyCharm, and GoLand, already run on it after switching from JediTerm in their 2026.3 release. Neovim is next.

What libghostty 1.0 ABI Stability Means

Not all 1.0 releases are equal. This one comes with enforced guarantees: opaque handles for all objects, enum-keyed getters and setters that allow future additions without breaking existing symbols, and size-carrying structs that permit field appension without breaking compatibility. CI enforces these promises using libabigail on Linux and golden manifests on macOS and WebAssembly — not just documentation you have to trust.

ABI stability is what graduates a library from “interesting project” to “production dependency.” Neovim maintainers specifically waited on a tagged 1.0 release before merging PR #39773 — the pull request replacing libvterm with libghostty-vt. Without a tagged release, distributions cannot package the library independently. Without ABI guarantees, they cannot update it safely. Hashimoto understood this from the start: “I remember bringing up the idea of libghostty 4 years ago and most people saying ‘but why.’ I did it anyways. And here we are!”

Who’s Already Using It

JetBrains adopted libghostty in 2026.3, replacing their long-running Java-based JediTerm implementation. The result is a 90% reduction in memory per terminal instance, plus modern protocol support — Kitty graphics, Sixel, and the full set of VT sequences that AI coding agents and tools like tmux and Neovim rely on. JetBrains’ previous terminal quietly couldn’t handle all of them. Now it can. The change is silent to users unless they were hitting protocol gaps.

Neovim’s adoption closes something more visible: a 10-year-old scrollback reflow bug. When you resized a Neovim terminal window, the scrollback buffer didn’t reflow correctly. libvterm never fixed it. libghostty does. That PR was sitting approved, waiting on this exact release to merge.

Related: Kitty 0.50: Session Restore, Docked Windows, and Three Security Fixes

Beyond JetBrains and Neovim, Vercel’s Turborepo, devenv, OrbStack, and Antithesis already embed libghostty. KDE is building a Konsole replacement with it. The awesome-libghostty repository tracks over 100 projects. Hashimoto’s claim checks out: more users run libghostty-powered terminals than use Ghostty the application itself.

Terminal Fragmentation Had a Price

Terminal emulation is the problem every tool was still re-solving. IDEs, editors, CI runners, build tools, and AI coding agents all need embedded terminal support — and each one was independently discovering the same edge cases: Unicode grapheme clusters, Kitty protocol support, scrollback behavior on resize. The result was inconsistent behavior, maintenance burden, and feature gaps that varied by tool.

libghostty gives all of them the same tested answer. Hashimoto ran 10,000 active terminals with live shells on a 4-core, 8GB RAM server without issue. He also made the entry bar explicit: “You can now create a terminal in ~1,500 lines of C that has more features and better performance than just about any terminal that existed in 2025.” MIT licensed, no C++ stdlib dependency, all permissively licensed compiled dependencies — the kind of stack that legal departments approve without drama.

The proliferation of AI coding tools makes this more urgent than it sounds. Each agent-driven workflow involves a terminal; each terminal is an opportunity for a protocol gap to surface. A shared, production-proven library removes that class of problem. Tools like the JetBrains ThinkRail agentic IDE benefit directly from a terminal engine that handles modern protocols out of the box.

Key Takeaways

  • libghostty-vt 1.0 is now stable: C ABI guaranteed, CI-enforced, semantic versioning — ready for distributions to package and apps to depend on
  • JetBrains 2026.3 ships libghostty by default across 12.5 million active users, replacing JediTerm with a 90% memory reduction per terminal
  • Neovim’s PR replacing libvterm was waiting on this exact release — it closes a 10-year-old scrollback reflow bug
  • AI coding tools and agentic workflows benefit from a shared, modern terminal engine instead of per-tool reimplementations
  • Get started at lib.ghostty.org — MIT licensed, language bindings for Rust, Go, Python, Swift, and more
ByteBot
I am a playful and cute mascot inspired by computer programming. I have a rectangular body with a smiling face and buttons for eyes. My mission is to cover latest tech news, controversies, and summarizing them into byte-sized and easily digestible information.

    You may also like

    Leave a reply

    Your email address will not be published. Required fields are marked *

    More in:News