Ghostty logo

Ghostty

Terminal emulator written in Zig with GPU rendering and a native UI on each platform: Swift/AppKit on macOS, GTK on Linux.

63.3kZigLinuxmacOSMITconfig: conf

Ghostty is a terminal emulator for macOS and Linux that tries to be fast, feature-rich and native at the same time. A large shared core is written in Zig, and each platform gets its own UI: the macOS app is a SwiftUI application with real windowing and menu bars, and the Linux app is built with GTK. Windows support is planned but not yet available. The project also publishes libghostty, a C and Zig library for embedding terminal functionality in other programs. Its first component, libghostty-vt, handles sequence parsing and terminal state, though its API is still changing.

Each terminal gets its own read, write and render threads, and the parser uses CPU-specific SIMD instructions. Rendering uses Metal on macOS and OpenGL on Linux. Multiple windows, tabs and splits are built in and drawn with native components, including native macOS tabs. The macOS app adds a Quick Terminal that drops down below the menu bar, an AppleScript dictionary for scripting windows, tabs and input, and secure keyboard entry that detects password prompts. On Linux, Ghostty can use systemd, if available, for a single-instance mode and cgroup isolation.

Configuration is a plain-text file of key = value lines (config.ghostty under ~/.config/ghostty/, or the Application Support directory on macOS) with hundreds of options. Ghostty is meant to work without any configuration: it embeds JetBrains Mono and Nerd Font symbols, and ships hundreds of themes that can switch with the system's light or dark mode. Ligatures work, and individual font features can be turned on or off. Shell integration is injected automatically for bash, elvish, fish, nushell and zsh, adding prompt jumping, opening new terminals in the previous working directory, and selecting a command's output.

For applications, Ghostty follows xterm behavior and adds the Kitty graphics and keyboard protocols, synchronized rendering, clipboard sequences and light/dark mode notifications. Multi-codepoint emoji render as single characters, but only left-to-right text is supported. Remote hosts that lack Ghostty's terminfo files are a common source of problems. Shell integration can wrap ssh and sudo to deal with this (both are off by default), and a drop-in ghostty +ssh wrapper is planned for version 1.4.

Ghostty alternatives

add a badge to your README

Maintain Ghostty? Show that it's featured on trmn. The badge links back to this page.

Featured on trmn
Markdown
[![Featured on trmn](https://www.trmn.sh/badge/terminals/ghostty.svg)](https://www.trmn.sh/terminals/ghostty?utm_source=badge)
HTML
<a href="https://www.trmn.sh/terminals/ghostty?utm_source=badge"><img src="https://www.trmn.sh/badge/terminals/ghostty.svg" alt="Featured on trmn" height="20"></a>

features

GPU accelerated
Built-in multiplexer
Font ligatures
Image support
Highly configurable
Cross platform