← All articles
PRODUCTIVITY Ghostty: A New Terminal Emulator Worth Switching To 2026-03-04 · 5 min read · ghostty · terminal · terminal-emulator

Ghostty: A New Terminal Emulator Worth Switching To

Productivity 2026-03-04 · 5 min read ghostty terminal terminal-emulator zig developer-tools

Terminal emulators are productivity-critical but rarely exciting. Most developers settle on one — iTerm2, Alacritty, WezTerm, Kitty — and stop thinking about it. Ghostty is the first terminal in years that's worth reconsidering your setup.

Built by Mitchell Hashimoto (founder of HashiCorp, creator of Vagrant and Packer) and released in December 2024, Ghostty combines GPU rendering with genuine native OS integration. On macOS, it uses AppKit/Metal properly — not Electron, not a wrapped cross-platform library. On Linux, it uses GTK4 with GPU rendering. The result is a terminal that feels native on each platform rather than a consistent compromise.

Ghostty terminal with split panes and customized theme

What Makes Ghostty Different

Native rendering with GPU acceleration: Ghostty renders via GPU on both platforms — Metal on macOS, OpenGL on Linux. This isn't unique (Alacritty and Kitty both do GPU rendering), but Ghostty combines it with...

Genuine native OS integration: On macOS, Ghostty uses native macOS APIs for windows, tabs, menus, accessibility, and system clipboard — not cross-platform abstractions. Command-key shortcuts work as expected. The font rendering uses Core Text. Accessibility tools like VoiceOver work because Ghostty integrates with the macOS accessibility stack.

Shell integration out of the box: Ghostty ships with shell integration scripts for bash, zsh, fish, and elvish. Features include:

Built-in splits and tabs: No tmux required for basic multiplexing. Ghostty handles horizontal/vertical splits and tabs natively, with GPU-rendered borders.

Zero configuration required: Unlike Alacritty (which starts mostly unstyled and requires extensive config) or WezTerm (deep Lua configuration), Ghostty works well out of the box with sensible defaults.

Installation

macOS:

brew install --cask ghostty

Or download from ghostty.org.

Linux (Arch):

# AUR:
yay -S ghostty
# or
paru -S ghostty

Linux (building from source):

# Requires Zig 0.13+
git clone https://github.com/ghostty-org/ghostty
cd ghostty
zig build -p ~/.local -Doptimize=ReleaseFast

Pre-built binaries for common Linux distributions are available at ghostty.org/download.

Configuration

Ghostty uses a simple key=value config file at ~/.config/ghostty/config:

# Font
font-family = "JetBrains Mono"
font-size = 14

# Theme (built-in or custom)
theme = catppuccin-mocha

# Window
window-padding-x = 12
window-padding-y = 12

# Shell integration
shell-integration = detect  # auto-detects your shell

# Opacity
background-opacity = 0.95

# Cursor
cursor-style = bar
cursor-style-blink = true

# Key bindings
keybind = cmd+shift+enter=toggle_fullscreen
keybind = ctrl+shift+t=new_tab

# Performance
gtk-single-instance = true  # Linux: reuse process for new windows

Available built-in themes: Ghostty ships with 300+ themes including Catppuccin variants, Dracula, Tokyo Night, One Dark, Gruvbox, Nord, and many others. No download required.

# List themes:
ghostty +list-themes

# Preview a theme:
ghostty +list-themes | grep -i catppuccin

Shell Integration Features

Enable shell integration (automatic with shell-integration = detect):

Prompt navigation: Jump between commands in your scroll history with keyboard shortcuts — no mouse needed.

Default keybindings:
  Cmd+Shift+Up    — Previous prompt
  Cmd+Shift+Down  — Next prompt

Command marks: Each completed command gets a visual indicator in the scrollbar showing success (green) or failure (red). Quickly locate the last failing command in a long build output.

Split pane working directory: New splits inherit the working directory of the current pane — no cd needed.

OSC 133 compatibility: Ghostty's shell integration follows the OSC 133 standard (same as used by iTerm2, WezTerm, Kitty), so any shell scripts that emit semantic prompt markers work automatically.

Performance

Ghostty's GPU rendering is fast. Synthetic benchmark comparisons with other terminals are less interesting than real-world feel — scrolling through git log --oneline on a large repo, watching make output, tailing logs.

In practice, Ghostty is comparable to Alacritty and Kitty for throughput, and substantially faster than Hyper or terminals with JavaScript rendering layers. The difference is most noticeable when scrolling through dense output or with many open splits.

Splits and Tabs

Ghostty has built-in splits without requiring tmux:

Action macOS Linux
Vertical split Cmd+D Ctrl+Shift+D
Horizontal split Cmd+Shift+D Ctrl+Shift+R
Navigate splits Cmd+[ / Cmd+] Ctrl+[ / Ctrl+]
New tab Cmd+T Ctrl+Shift+T
Close tab Cmd+W Ctrl+Shift+W
Next tab Cmd+Shift+] Ctrl+Tab

Splits are rendered at the OS level — resizing is smooth, not blocked on terminal redraws.

Comparison with Alternatives

Terminal GPU Rendering Native OS Shell Integration Config
Ghostty Yes Yes Built-in Simple INI
Alacritty Yes No (cross-platform) None built-in YAML
Kitty Yes No Built-in Complex
WezTerm Yes Partial Built-in Lua
iTerm2 Partial macOS only Built-in GUI
Warp No (Electron) macOS/Linux Yes GUI

vs. Alacritty: Both are fast, both GPU-accelerated. Ghostty adds shell integration, built-in splits, tabs, and native OS integration. Alacritty is intentionally minimal — if you want a simple, no-frills terminal that you heavily customize via external tools (tmux, etc.), Alacritty's philosophy fits better.

vs. Kitty: Similar philosophy — GPU rendering, shell integration, extensible. Kitty is mature with a large extension ecosystem (kitten plugins). Ghostty is newer but has better native OS integration, especially on macOS where Kitty feels less native.

vs. WezTerm: WezTerm is the power user's choice — deeply customizable via Lua, runs everywhere including Windows, supports multiplexing via SSH. More complex to configure; Ghostty is simpler and more polished out of the box.

vs. iTerm2: iTerm2 is macOS-only, mature, feature-rich. Ghostty is faster (GPU rendering vs. iTerm2's CPU-heavy rendering), more minimal, and cross-platform. iTerm2's AI features and deep tmux integration may keep some users on it.

Font Configuration

Ghostty supports any system-installed font:

font-family = "Monaspace Neon"
font-family-bold = "Monaspace Neon"
font-size = 14
font-feature = liga       # enable ligatures
font-feature = calt       # contextual alternates
adjust-cell-height = 20%  # increase line height

Common developer fonts that work well: JetBrains Mono, Cascadia Code, Monaspace variants (Neon/Argon/Xenon), Fira Code, Berkeley Mono, Operator Mono.

Should You Switch?

Ghostty is worth trying if:

It's probably not worth switching if:

The bar for switching terminals is high because any terminal "works." Ghostty clears it for users who value native OS integration and shell features without configuration overhead.