# Ghostty

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

Stars: 63.3k · Language: Zig · License: MIT · Platforms: Linux, macOS · Config: conf

Features: GPU-accelerated, cross-platform, built-in multiplexer, ligatures, inline images, configurable

- Repository: https://github.com/ghostty-org/ghostty
- Page: https://www.trmn.sh/terminals/ghostty

## Overview

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.

## Alternatives

- [Windows Terminal](https://www.trmn.sh/terminals/windows-terminal.md): Microsoft's terminal for Windows that hosts PowerShell, cmd and WSL shells in tabs and panes, with GPU text rendering and JSON settings. (Windows, 105.3k stars)
- [Tabby](https://www.trmn.sh/terminals/tabby.md): Cross-platform Electron terminal with a built-in SSH, Telnet and serial client, saved connection profiles and a plugin system. (Linux/macOS/Windows, 75.3k stars)
- [Alacritty](https://www.trmn.sh/terminals/alacritty.md): Cross-platform OpenGL terminal emulator written in Rust, configured with a TOML file and leaving tabs and splits to a multiplexer like tmux. (Linux/macOS/Windows/BSD, 66.1k stars)
- [Warp](https://www.trmn.sh/terminals/warp.md): Terminal written in Rust with an IDE-style command editor, command output grouped into blocks, and built-in AI agents. (macOS/Linux/Windows, 65.8k stars)
- [Termux](https://www.trmn.sh/terminals/termux.md): Android terminal emulator and Linux environment that installs packages through its own apt repository, no root required. (Android, 63.9k stars)
- [Hyper](https://www.trmn.sh/terminals/hyper.md): Electron terminal built on HTML, CSS and JavaScript, themed and extended through npm plugins. (Linux/macOS/Windows, 44.8k stars)
- [Kitty](https://www.trmn.sh/terminals/kitty.md): GPU-rendered terminal written in C and Python, with its own graphics protocol, built-in tabs and splits, and scriptable 'kittens'. (Linux/macOS/BSD, 35.5k stars)
- [WindTerm](https://www.trmn.sh/terminals/windterm.md): SSH, Telnet, serial and local shell client for Windows, macOS and Linux with tabs, split views, SFTP and tmux integration; only partly open source. (Windows/macOS/Linux, 32.6k stars)

## Guides

- [Alacritty Alternatives](https://www.trmn.sh/alternatives/alacritty): Alacritty alternatives: WezTerm, Kitty and Ghostty add tabs, splits and scripting; Windows Terminal and iTerm2 cover one OS each.
- [Ghostty Alternatives](https://www.trmn.sh/alternatives/ghostty): Ghostty alternatives: WezTerm, Kitty and Alacritty compared by platform, built-in tabs and splits, scripting, and licensing.
- [Hyper Alternatives](https://www.trmn.sh/alternatives/hyper): Hyper alternatives: WezTerm, Tabby, Kitty, Ghostty and Alacritty compared by config model, platform support and built-in features.
- [Kitty Alternatives](https://www.trmn.sh/alternatives/kitty): Kitty alternatives: WezTerm, Ghostty, and Alacritty compared by platform, multiplexing, scripting and rendering, plus Rio, Contour, iTerm2 and foot.
- [WezTerm Alternatives](https://www.trmn.sh/alternatives/wezterm): WezTerm alternatives: Kitty, Ghostty, Alacritty, Windows Terminal and Tabby compared on multiplexing, config format and platform support.
- [Best GPU Terminal Emulators](https://www.trmn.sh/best/gpu-terminal-emulators): A practical look at GPU-accelerated terminal emulators for fast rendering, smooth scrolling, and modern terminal graphics.
- [Best Terminal Emulators](https://www.trmn.sh/best/terminal-emulators): A practical shortlist of terminal emulators for developers who care about speed, features, polish, and platform fit.
- [Best Terminal Emulators for Linux](https://www.trmn.sh/best/terminal-emulators-for-linux): Best terminal emulators for Linux compared: Ghostty, kitty, foot, Alacritty, WezTerm, Konsole and Ptyxis, by rendering, splits and config.

---

Canonical: https://www.trmn.sh/terminals/ghostty
