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.

