On 2026-11-06 Ghostty creator Mitchell Hashimoto announced libghostty-vt 1.0: a portable C terminal-emulation library extracted from Ghostty, with a semver-stable C ABI and packaging support for distros. He says it already runs in hundreds of projects used by tens of millions of people—including JetBrains IDE terminals (~12.5M active users), Vercel Turborepo TUIs, and agentic coding tools such as herdr and cmux—and has driven ~10,000 live terminals on a 4-core/8 GB Linux box. Official docs list agents that read TUI screens as a first-class use case.

Key Takeaways

  • ✓Shape: libghostty-vt 1.0, MIT, no runtime deps beyond optional libc (freestanding build available)
  • ✓Stability: semver + strict ABI; opaque handles with enum getters/setters; ELF symbol versioning; CI gates with libabigail
  • ✓Adoption: JetBrains IDE terminals (~12.5M active users); Neovim PR approved to replace libvterm pending packaging; herdr/cmux and other agentic tools built on it
  • ✓Vendor-cited scale: ~10k live shell terminals on a 4-core/8 GB Linux box; full-feature WASM build can stay under ~1 MB
  • ✓Agent angle: docs list agents/automation that read what a TUI shows—so coding agents need not reinvent VT parsing
Mitchell Hashimoto Ships libghostty-vt 1.0: Stable C ABI Terminal Emulation Library Already Powering JetBrains and Agentic Coding Tools
🖼️Official Media
Click to view high-res
🧭

Turn your technical choice into a development budget

Compare 40 dev plans & simulate token costs vs $20/mo subscriptions

🔬

In-Depth Technical Analysis

Core Background & Industry Pain Points

Coding agents, IDE-embedded terminals, remote build logs, and TUI harnesses all need VT/ANSI parsing. One-off parsers routinely mishandle intermediates, RGB styles, or Kitty graphics—so an agent can mis-read the screen. Mitchell extracted Ghostty's battle-tested core so IDEs and agents share one correct implementation.

Architecture Highlights & Internals

libghostty-vt consumes program bytes and maintains screen, cursor, and scrollback state. Objects are opaque handles with enum-keyed getters/setters so new fields can ship without breaking ABI. Default builds may link libc; freestanding builds drop SIMD. The dependency tree has no copyleft (simdutf, Highway, Unicode tables, Wuffs) and ships a machine-readable license manifest. CI covers Linux, macOS, iOS, Android, FreeBSD, Windows, WASM, and bare-metal RISC-V/ARM.

Authoritative Benchmarks & Measured Scores

No third-party leaderboard vs xterm.js/libvte is published. Vendor/engineering claims: JetBrains reports ~12.5M active users on libghostty-powered terminals; Mitchell's own test ran ~10,000 live shell terminals on a 4-core/8 GB Linux box (bash often used more RAM than the library). Site copy calls IO throughput "best-in-class"—treat as vendor wording until independently reproduced.

Developer Hands-on Guide

Docs and downloads live at lib.ghostty.org. Distros can build offline from signed source + deps tarballs and install shared/static libs, headers, pkg-config, and CMake config. Agents can feed PTY or recorded bytes into the library and format the screen back to plain text. Community bindings exist for Rust, Go, JS, Swift, Python, and more—prefer embedding over reinventing VT for a new coding-agent terminal layer.

Action HubReady to adopt this in production?

Benchmark side-by-side against alternatives, or calculate monthly token cost vs subscription break-even.

Up NextOpenAI Codex CLI 0.166.0: keyboard transcript selection, GPT-6.1 Terra in Vertex AI and Bedrock catalogs, codex doctor network checks
Read Now→