Ghostty: The Terminal Emulator That Refuses to Compromise
Hook
Every terminal emulator forces you to choose: native feel, blazing speed, or rich features. Ghostty aims to deliver all three by treating cross-platform as a core architecture problem, not a UI framework decision.
Context
The terminal emulator landscape has familiar tradeoffs. Alacritty focuses on GPU-accelerated speed. Kitty adds features. iTerm2 feels native on macOS but uses CPU rendering when ligatures are enabled. Every choice involves compromises.
Ghostty approaches the cross-platform terminal problem by architecting a terminal emulation core that platform-native UIs can consume. The result is a terminal that uses SwiftUI and Metal on macOS, GTK and OpenGL on Linux, while maintaining rigorous xterm conformance across platforms. It’s a terminal emulator designed to avoid forcing users to choose between feeling native and being fast.
Technical Insight
Ghostty’s architecture centers on libghostty, a C-compatible library written in Zig that handles terminal emulation logic. The macOS app is a SwiftUI consumer of this C API, demonstrating the library’s viability for integration. Platform-specific code sits in separate directories (macos/ for Swift, GTK for Linux), each implementing native windowing, menus, and settings UIs while delegating terminal state to the shared core.
The rendering architecture implements a multi-renderer system: Metal on macOS, OpenGL on Linux. According to the README, Ghostty is one of only two terminal emulators that use Metal directly (alongside iTerm), and claims to be “the only terminal emulator that has a Metal renderer that supports ligatures.” iTerm uses a CPU renderer when ligatures are enabled; Ghostty keeps them GPU-accelerated.
The IO pipeline uses a dedicated IO thread that handles shell communication with minimal jitter. The README benchmarks indicate: “reading a dump of plain text is 4x faster compared to iTerm and Kitty, and 2x faster than Terminal.app.” Under heavy load, Ghostty can maintain around 60fps. The README notes Alacritty is very fast and Ghostty is “around the same speed (give or take)” while offering a more feature-rich app experience.
Terminal standards compliance follows a hierarchical fallback: ECMA-48 standards first, then xterm behavior, then other popular terminals. The project conducted a comprehensive xterm audit (issue #632) and built conformance test cases. The README states: “You can use Ghostty as a drop-in replacement for your existing terminal emulator.”
The embeddable library design allows applications to embed terminal emulation. The macOS app itself is a Swift application consuming the C API to render terminals in native SwiftUI windows, proving this architecture works in practice.
Gotcha
Windows support is incomplete. The roadmap marks step 7—“Windows Terminals (including PowerShell, Cmd, WSL)“—with ❌. If your workflow includes Windows machines, Ghostty doesn’t currently support that platform.
The libghostty API is explicitly marked as unstable. The README states: “At the time of writing this, the API isn’t stable yet and we haven’t tagged an official release.” The roadmap marks step 6 (“Cross-platform libghostty for Embeddable Terminals”) with ⚠️. If you’re evaluating Ghostty for embedding in software, the API may change. The macOS app proves the concept works, but the API is not yet stabilized.
The README acknowledges measurement gaps: “We need better benchmarks to continuously verify this” appears alongside performance claims. The terminal is fast based on available benchmarks, but comprehensive measurement across all scenarios is ongoing work.
Verdict
Use Ghostty if you’re on macOS or Linux and want a terminal that combines native platform integration with strong performance—especially if you care about GPU-accelerated ligatures or fast IO. It delivers on being fast, native, and feature-rich simultaneously. Skip it if you need Windows support, require API stability for embedding use cases, or prefer terminals with more established track records. Developers who live in their terminal and use macOS or Linux will appreciate Ghostty’s approach to treating cross-platform as an architecture problem rather than a UI compromise.