TL;DR:

  • Ghostty is a native terminal emulator for macOS and Linux, built in Zig, with GPU-accelerated rendering that makes it noticeably faster than Electron-based alternatives
  • It ships with sensible defaults: no mandatory configuration, native OS decorations, full Unicode support, and ligature rendering out of the box
  • The multi-window and tab model, combined with native keyboard shortcuts, makes it feel like a first-class macOS citizen rather than a cross-platform port

Terminal emulators are one of those tools most developers stop questioning after finding one that works. iTerm2 on macOS, Alacritty or Kitty on Linux, maybe Warp if you want AI assistance baked in. Ghostty is worth a look even if your current terminal isn’t broken, because it approaches the problem from first principles: native GPU rendering, native OS integration, and a clean default experience that doesn’t require a config file to be usable.

What Ghostty Is

Ghostty was built by Mitchell Hashimoto, founder of HashiCorp (the company behind Terraform, Vault, and Consul). After years of using various terminal emulators and finding consistent performance or feature gaps, he spent several years building Ghostty as a personal project before open-sourcing it. It’s written in Zig for performance and compiled natively for each platform — macOS uses AppKit, Linux uses GTK4.

That native-first approach is the distinguishing feature. Most terminals are either Electron (fast to build, heavy to run) or Qt/GTK cross-platform builds (consistent behaviour, sometimes off-brand on macOS). Ghostty on macOS looks and behaves like a macOS app — native title bar, native menus, native keyboard shortcuts — while Ghostty on Linux is a proper GTK4 application.

Performance

GPU-accelerated rendering is the technical headline. Ghostty uses custom Metal shaders on macOS and OpenGL/Vulkan on Linux to render glyphs on the GPU rather than the CPU. In practice, this means scrolling through large log outputs, running builds, or working with tmux across many panes stays smooth. The CPU overhead is low compared to iTerm2 and dramatically lower than anything Electron-based.

Benchmark comparisons show Ghostty rendering large terminal outputs at 120fps+ on modern hardware where iTerm2 drops to 40-60fps under the same conditions. In daily use, the difference is perceptible but not dramatic for most workflows — where it matters most is when you’re scrolling quickly through dense output or running terminal multiplexers with many active panes.

Configuration

Ghostty is opinionated by default but configurable in depth. The default configuration is minimal: a sensible font, good default colours, and standard keybindings. You don’t need to create any configuration file to start using it.

When you do want to customise, configuration lives in ~/.config/ghostty/config (Linux XDG standard) or ~/Library/Application Support/com.mitchellh.ghostty/config (macOS):

# Example Ghostty config
font-family = "Monaspace Neon"
font-size = 14
theme = "Catppuccin Mocha"

# Shell integration
shell-integration = detect

# Window
window-decoration = true
background-opacity = 0.95

# Scrollback
scrollback-limit = 10000

The configuration format is a simple key = value file — no TOML, YAML, or JSON parsing required. Keys are named clearly and the defaults are documented inline in the configuration reference.

Shell Integration

Ghostty ships with native shell integration for bash, zsh, fish, and elvish. When enabled, this gives you:

  • Semantic zones: the terminal understands which parts of the screen are prompts, which are command output, and which are user input
  • Prompt navigation: jump between previous commands with keyboard shortcuts
  • Automatic title updates: the window title reflects the current running command
  • Copy on select: optional automatic clipboard copy when you select text

Shell integration is enabled by sourcing a small script in your shell profile. Ghostty can detect your shell automatically and prompt you to configure it on first launch.

# Auto-detected, or manually add to ~/.zshrc:
eval "$(ghostty +shell-integration zsh)"

Multi-Window and Tab Support

Unlike minimalist terminals like Alacritty (which has no tabs and relies on tmux/zellij for multiplexing), Ghostty has native tabs and windows. You can create tabs with Cmd+T, split panes horizontally and vertically with Cmd+D and Cmd+Shift+D on macOS, and navigate between panes with keyboard shortcuts.

For users who want terminal multiplexing without learning tmux’s key bindings from scratch, Ghostty’s native tab/split model is a real convenience. For users who already live in tmux, the native splits are optional and the two can coexist.

Comparison to Alternatives

FeatureGhosttyAlacrittyiTerm2Warp
GPU renderingYesYesPartialYes (Electron)
Native macOSYesNo (cross-platform)YesNo
Built-in tabsYesNoYesYes
AI featuresNoNoNoYes
Config formatSimple key=valueTOMLGUIGUI
Linux supportYesYesNoNo

Ghostty’s main competition on macOS is iTerm2 (which has been the default for a decade) and Warp (which adds AI features). Against iTerm2, Ghostty wins on performance and startup time. Against Warp, Ghostty wins on resource usage and works without a network connection or account. If you specifically want AI command suggestions and inline docs, Warp is still the better choice.

Getting Started

Ghostty is available for macOS and Linux:

# macOS (Homebrew)
brew install --cask ghostty

# Linux — build from source or use distro packages
# Arch Linux (AUR)
yay -S ghostty

On first launch on macOS, you’ll be prompted to grant accessibility permissions for shell integration. The setup takes about a minute. From there, the defaults are good enough to start using immediately, and the configuration documentation covers everything you’d want to change.

For developers on macOS looking to move off iTerm2, Ghostty is the most serious alternative in the space in 2026. It’s not trying to add features beyond what a terminal needs — it’s trying to make the fundamentals faster and more native. That’s a useful trade-off.