- Category
- Developer Tools
- Rank
- No. 59Tools index
- Listed in
- #20 Interface with your agents
- Type
- APP
- Interfaces
- Desktop
- Builder
- ghostty-org
- GitHub
- 61.5k stars
- Latest release
- tip
- Date
About
Ghostty is a fast, feature-rich, native terminal emulator that refuses to trade speed for features or a native UI. It ships as a GUI app and as libghostty, a cross-platform, embeddable terminal library.
What it does
Ghostty runs terminal programs, interprets legacy and modern control sequences, and maintains the screen state they produce. Its desktop applications add windows, tabs, and splits. Developers can also use its terminal engine to parse sequences, format terminal contents, manage styles, and build custom renderers.
Why it's ranked here
Ghostty makes a strong case through breadth backed by concrete architecture. It combines extensive terminal compatibility with dedicated read, write, and render threads, SIMD parsing, and platform-specific graphics. The same tested terminal engine is exposed to embedders, although that library interface remains unsettled.
What's good
The desktop experience respects each operating system instead of flattening both into one generic interface. macOS gets SwiftUI, Metal, CoreText, AppleScript, and Shortcuts integration. Linux gets GTK, OpenGL, and optional systemd integration. Both applications support multiple windows, tabs, splits, renaming, and coloring.
Tradeoffs
The embeddable library is usable, but its API signatures remain in flux, it has no tagged version, and its documentation is still improving. Windows and WebAssembly support apply to the library, not the described desktop application. Crash reports may contain sensitive stack memory and require an explicit upload.
How to use it well
Pick Ghostty for daily terminal work on macOS or Linux when native controls, strong protocol coverage, and organized multi-pane workflows matter. Use the library when building terminal-aware software in C or Zig. It does not provide a described Windows desktop terminal, and library adopters must tolerate API changes.
Technical notes+
The Makefile directs developers to zig build, while macos/Sources/App/main.swift initializes GhosttyKit, dispatches + CLI actions, and then enters the AppKit application lifecycle. The C surface is demonstrated extensively under example/: example/c-vt/src/main.c parses OSC commands, example/c-vt-sgr/src/main.c parses text attributes, example/c-vt-cmake/src/main.c maintains and formats terminal state, example/c-vt-render/src/main.c exposes dirty-state, cursor, selection, palette, and row iteration for custom rendering, and example/c-vt-snapshot/src/main.c demonstrates full and incremental terminal snapshots. example/c-vt-effects/src/main.c shows callbacks for PTY writes, bells, title changes, clipboard writes, and bounded capture of unknown sequences.
Observed
- Languages
- The shared core is written in Zig, the macOS application uses SwiftUI, and the public library supports C and Zig consumers.
- Application platforms
- Desktop applications are described for macOS and Linux, using SwiftUI and GTK respectively.
- Library platforms
- The terminal library supports macOS, Linux, Windows, and WebAssembly.
- Interfaces
- Ghostty provides a native GUI, CLI actions prefixed with a plus sign, and a C-compatible embeddable library.
- Build surface
- The repository directs developers to build with Zig.
- Library dependency model
- The embeddable C and Zig library is described as zero dependency.
- Examples
- The supplied repository text includes C examples for parsing, formatting, rendering, colors, paste safety, effects, modes, streams, and snapshots.
- Crash reporting
- Crash reports are stored locally, are not uploaded automatically, and use Sentry envelope format.
Read from README.md, Makefile, macos/Sources/App/main.swift, example/c-vt/src/main.c, example/c-vt-sgr/src/main.c, example/c-vt-cmake/src/main.c, example/c-vt-modes/src/main.c, example/c-vt-paste/src/main.c, example/c-vt-colors/src/main.c, example/c-vt-render/src/main.c, example/c-vt-static/src/main.c, example/c-vt-stream/src/main.c, example/c-vt-effects/src/main.c, example/c-vt-snapshot/src/main.c, example/c-vt-formatter/src/main.c.
What it can do
Execute terminal commands and programs
Command line instructions and programs → Terminal output and program execution results
Manage multiple terminal sessions with tabs
User tab creation and switching commands → Multiple organized terminal tab interfaces
Split terminal interface into multiple panes
User pane split commands → Divided terminal workspace with multiple command areas
Open and manage multiple terminal windows
User window creation requests → Separate terminal window instances
Parse and render terminal escape sequences and styles
Raw terminal data with escape codes → Formatted and styled terminal display
Embed terminal functionality into other applications
Application integration via libghostty library → Terminal capabilities within host applications
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.
