mrkeyoor.com_
Tue 01 Sept 17:41 UTC
Dev Toolsevaluationupdated 27 Aug 2026

ghostty review

Ghostty is a terminal emulator for macOS and Linux that combines a platform-native interface with GPU-rendered terminal sessions. The same codebase also provides `libghostty-vt`, a C-compatible library for applications that need terminal parsing and state without building that machinery themselves.

+223 / 5dstars / 7d
Verdict

Our Ghostty install failed after 7 seconds because CMake could not find zig, so source development starts with matching the documented toolchain before any build or test can run. Use the packaged app if you want a polished native terminal on macOS or Linux; the active repository and broad protocol support make it worth a serious trial. Wait on libghostty if your application needs a versioned C API rather than one whose signatures are still changing.

We ran it

Lab card: what happened when we ran ghosttyScreenshot of ghostty (ghostty.org)
Install✗ · 7s
Build
Repo5833 files~82,916 lines of source · 86.5 MB · 15 CI workflows · tests dir

Answers from our run

Does ghostty build from source?

The dependency install failed, and the project has no separate build step. We cloned commit b69f612 into a clean Debian container with 3 CPUs and no project-specific setup.

Who should not use ghostty?

Windows users seeking a finished Ghostty desktop app: the README documents macOS and Linux applications, while Windows support is described for libghostty-vt.

What are the alternatives to ghostty?

Alacritty, kitty, WezTerm. Our Ghostty install failed after 7 seconds because CMake could not find zig, so source development starts with matching the documented toolchain before any build or test can run.

Setup2/5Our 7-second source install stopped because zig was missing
Docs5/5Build, platform, configuration, and library limits are explicit
Community5/560,303 stars and fresh issue and pull request activity
Maturity4/5The app is stable; the embeddable API still lacks a tagged version

Discussed on

  1. hnWhy users cannot create Issues directly773 points
  2. hnAI tooling must be disclosed for contributions729 points
  3. hnAI Usage Policy502 points
  4. hnGhostling333 points
  5. hnGhostty is a fast, cross-platform terminal emulator12 points

Who it’s for

Developers who want tabs, splits, multiple windows, and modern terminal protocols in a native desktop application.
macOS users who value SwiftUI, Metal, CoreText, AppleScript, and Shortcuts integration.
Linux users who want a GTK terminal with OpenGL rendering and systemd integration.
C or Zig developers willing to track a changing libghostty-vt API while embedding terminal behavior.

Who it’s NOT for

Windows users seeking a finished Ghostty desktop app: the README documents macOS and Linux applications, while Windows support is described for libghostty-vt.
Embedders who require a versioned, stable C API: the README says libghostty has no tagged version and its API signatures remain in flux.
Source builders who cannot install the exact Zig toolchain: Ghostty's build guide warns that older and newer Zig compilers may both fail.
Terminal authors waiting for Ghostty-specific control sequences: the roadmap says none have been implemented yet.
Organizations that forbid crash artifacts containing process memory: local crash reports include full thread stack memory and may contain sensitive data.

Setup reality

Our sandbox install failed with exit code 1 after 7 seconds at commit b69f612. CMake stopped at line 94 because it could not find zig. The checkout had 5,833 files, about 82,916 source lines, and occupied 86.5 MB; no build or test result followed the failed install.

Running the terminal does not require an account, API key, or hosted service. Building from source does require Zig, and Ghostty's guide pins each Ghostty line to one Zig version. A Git checkout on Linux also needs blueprint-compiler 0.16.0 or newer.

The runtime is deliberately platform-specific: macOS uses SwiftUI and Metal, while Linux uses GTK and OpenGL. Main-branch macOS development requires Xcode 26 and the macOS 26 SDK. The repository has 15 CI workflow files and a tests directory, but our failed install means we cannot report whether either the build or tests pass in this Debian container.

82,916 source lines serve both terminal users and embedders

Ghostty's 82,916 lines of source cover two related products. The first is a desktop terminal with windows, tabs, splits, shell integration, and support for modern protocols such as Kitty graphics, synchronized rendering, clipboard sequences, and light or dark mode notifications. The second is libghostty-vt, a C-compatible library that parses terminal sequences and maintains terminal state. This split matters: a person choosing a daily terminal has different stability needs from a developer shipping the library inside another application.

The 86.5 MB checkout contained 5,833 files, which fits the project's platform-specific approach. Ghostty shares a large Zig core, then uses SwiftUI and Metal on macOS and GTK with OpenGL on Linux. The result aims to feel native on each system instead of presenting the same widget set everywhere. That choice buys menu bars, system services, font handling, and desktop integration, but it also means platform behavior and build requirements can differ in ways a portable terminal configuration does not hide.

What happened when we ran it

Our sandbox install failed with exit code 1 after 7 seconds. CMake reached line 94 of CMakeLists.txt, searched for ZIG_EXECUTABLE, and reported that it could not find a program named zig. Configuration then stopped as incomplete. That is the complete finding from the log tail: it establishes the missing executable, but it does not establish whether Ghostty would compile or run correctly after Zig is installed.

We tested commit b69f612 in an unprivileged Debian container with 3 CPUs and 8 GB of RAM. The repository occupied 86.5 MB before the install attempt. Because installation ended first, we have no build timing, test count, dependency total, or vulnerability result to report. The checkout does contain a tests directory and 15 CI workflow files, while no Dockerfile was present. Those repository signals do not substitute for a passing run on our box.

Zig 0.15.2 is part of the source-build contract

Ghostty's current build page lists Zig 0.15.2 for the 1.3.x line and tip. It warns that either an older or newer compiler may fail because each Ghostty version is guaranteed against one Zig version. That warning explains why zig belongs in a prepared build environment, although it does not change our measured result: the fresh sandbox lacked the executable entirely, and CMake stopped after 7 seconds.

A normal terminal session needs no account, secret, database, or remote service. Source development asks more of the machine. Linux Git checkouts require blueprint-compiler 0.16.0 or newer in addition to the normal platform libraries. macOS main-branch work requires Xcode 26, the macOS 26 SDK, and the Metal toolchain. Ghostty recommends prebuilt packages for most users and reserves source builds mainly for contributors, packagers, or platforms without a suitable binary.

macOS and Linux get separate native behavior

The main-branch guide names Xcode 26 because the macOS application is a real SwiftUI program backed by Metal and CoreText. It can participate in AppleScript and Shortcuts rather than exposing only terminal-specific commands. Linux receives a GTK application, OpenGL rendering, and optional systemd integration for single-instance windows and cgroup isolation. This is a meaningful reason to choose Ghostty if desktop conventions matter as much as rendering a shell.

That platform focus creates a clear boundary. The README describes complete GUI applications for 2 operating-system families, macOS and Linux. Windows appears under libghostty-vt compatibility, not as a finished Ghostty desktop download. A Windows user should compare WezTerm or Alacritty instead of assuming the cross-platform library label also promises a native Ghostty application. Across the 5,833-file tree, the platform layers are part of the product design, not packaging detail.

libghostty-vt works today, but its API is still unversioned

The 86.5 MB repository includes examples for calling libghostty-vt from C and Zig, and the README says the library can target macOS, Linux, Windows, and WebAssembly. Its terminal parser and state model come from the GUI's shared core. For an editor, IDE, or remote-console client, that offers a narrower starting point than adopting the whole 82,916-line application. A minimal companion project, Ghostling, shows the pieces assembled into a terminal.

The library contract is the catch. Ghostty says libghostty has not received a version tag, its signatures remain in flux, and its documentation experience is still being improved. The README calls the functionality stable based on use inside the GUI, but API stability is a separate concern. Teams embedding it should budget for source updates and binding changes. If a frozen ABI or predictable upgrade window is mandatory, waiting is the safer call.

60,303 stars accompany fresh code and issue activity

GitHub recorded 60,303 stars and 238 open issues and pull requests when we fetched the repository. The last push was August 27, 2026, and recently updated work included renderer changes, GTK accessibility text, macOS split behavior, translations, and terminal input. That combination shows current maintenance and user traffic. The 238 figure is GitHub's combined count, so it must not be read as 238 confirmed bugs.

The project also documents unfinished boundaries instead of burying them. Its roadmap says Ghostty-specific terminal control sequences have not been implemented, even though many established sequences are supported. Crash reports stay on disk and are not uploaded automatically, but they include full stack memory for each thread and may contain sensitive data. In a managed environment, that makes retention and sharing policy part of deployment. The repository's 15 CI workflows are encouraging, while our own install failure still requires a prepared Zig toolchain before local verification can begin.

Alternatives

ProjectWhat it isPick it when
Alacritty gh↗A GPU-accelerated terminal focused on a small feature surface and cross-platform configuration.pick this instead when you want a lean terminal and prefer an external multiplexer for tabs or splits.
kitty gh↗A scriptable terminal with its own graphics protocol, layouts, and remote-control features.pick this instead when deep keyboard automation and terminal-controlled workflows matter more than native platform UI.
WezTerm gh↗A cross-platform terminal and multiplexer configured through Lua.pick this instead when Windows support or programmable Lua configuration is a firm requirement.

What people are saying

  1. [velocity-scout] ghostty-org/ghostty

Sources

  1. Ghostty repository and README
  2. Ghostty build from source guide
  3. Ghostty development guide
  4. Ghostty xterm compatibility audit
  5. Ghostty 1.4 translation tracking

More dev tools reviews

workmux · v2rayNG · SecLists · hashcat · eslint · fastfetch · the whole board →