Editor's Note: After HashiCorp founder Mitchell Hashimoto open-sourced Ghostty in late 2024, it quickly gained popularity. Thanks to its Zig foundation + GPU hardware-accelerated rendering, it outperforms traditional terminal emulators by a wide margin. With the official 1.0 stable release in 2025, it has become the hottest new terminal choice in the macOS and Linux developer communities. This guide takes you from zero to hero — covering installation, configuration, and advanced usage.
1. What Is Ghostty and Why Should You Care?
1.1 Core Features
Ghostty is a cross-platform, GPU-accelerated, native UI terminal emulator. Its design philosophy boils down to three words:
| Feature | Description |
|---|---|
| GPU Accelerated | Renders via OpenGL/Metal, delivering frame rates far beyond CPU-rendered terminals |
| Native UI | Uses AppKit on macOS and GTK4 on Linux — no Electron or web tech stacks |
| Written in Zig | The underlying language ensures memory safety, peak performance, and lean binaries |
1.2 Comparison with Popular Terminals
| Terminal | Language | Rendering | Platforms | Open Source |
|---|---|---|---|---|
| Ghostty | Zig | GPU (OpenGL/Metal) | macOS, Linux | ✅ MIT |
| iTerm2 | Objective-C | CPU | macOS | ❌ |
| Alacritty | Rust | GPU (OpenGL) | macOS, Linux, Windows | ✅ Apache |
| Kitty | C/Python | GPU (OpenGL) | macOS, Linux | ✅ GPL |
| Tabby | TypeScript | Electron/Canvas | All platforms | ✅ MIT |
Ghostty's core advantage: Zig guarantees lightning-fast startup and minimal memory usage, while native UI frameworks ensure deep OS integration instead of relying on cross-platform wrappers.
1.3 Who Is Ghostty For?
- Developers who care about startup speed and rendering smoothness
- Users tired of Electron terminals (like Tabby) eating up RAM
- macOS users looking for a modern, lightweight, customizable alternative to iTerm2
- Linux users who want GTK4-native integration in their terminal emulator
2. Installing Ghostty
2.1 macOS Installation
Method One: Homebrew (Recommended)
brew install --cask ghostty
Once installed, search for "Ghostty" in Launchpad or Spotlight to launch it.
Method Two: Manual Download
Head to the Ghostty GitHub Releases page, download the .dmg file, and drag it into your /Applications folder.
2.2 Linux Installation
Ubuntu / Debian:
# Add the official APT repository
curl -fsSL https://ghostty.org/install.sh | sh
Arch Linux:
# Via AUR
yay -S ghostty
# Or the official package
pacman -S ghostty
Fedora / RHEL:
# Install via COPR repository
sudo dnf copr enable ghostty/ghostty
sudo dnf install ghostty
2.3 Building from Source
If you want to try the latest features or contribute code, build from source:
# Clone the repository
git clone https://github.com/ghostty-org/ghostty.git
cd ghostty
# Install the Zig compiler (0.13+ required)
# macOS
brew install zig
# Linux
# Visit https://ziglang.org/download/ for the right version
# Build
zig build -Doptimize=ReleaseSafe
The compiled binary lives at zig-out/bin/ghostty.
2.4 Verify Installation
ghostty --version
# Output looks like: ghostty 1.0.3 (2026-xx-xx)
3. Quick Start
3.1 First Launch
When you first open Ghostty, you'll see a clean, minimal terminal window with your system font and colors. The default experience is already great, but the real power lies in configuration.
3.2 Configuration File
Ghostty uses a simple key-value config file located at:
# macOS
~/.config/ghostty/config
# Linux
~/.config/ghostty/config
If the file doesn't exist, create it manually:
mkdir -p ~/.config/ghostty
touch ~/.config/ghostty/config
3.3 Minimum Viable Configuration
Here's a beginner-friendly config covering the most common settings:
# ~/.config/ghostty/config
# Font settings
font-family = "JetBrains Mono"
font-size = 14
# Window padding
window-padding-x = 10
window-padding-y = 10
window-padding-balance = true
# Cursor style
cursor-style = bar
cursor-color = "#58ff58"
# Shell (defaults to your system shell)
# shell = /bin/zsh
4. Themes and Colors
4.1 Built-in Themes
Ghostty supports basic dark and light themes, but the real strength comes from custom color palettes:
# Switch themes in the config file
theme = "dark"
# or
theme = "light"
4.2 Custom Color Schemes
Ghostty lets you customize the full 16-color palette, compatible with all major terminal themes:
# ~/.config/ghostty/config
# Foreground and background
foreground = "#cdd6f4"
background = "#1e1e2e"
# 16-color palette (Catppuccin Mocha example)
palette = "0=#45475a;1=#f38ba8;2=#a6e3a1;3=#f9e2af;4=#89b4fa;5=#f5c2e7;6=#94e2d5;7=#bac2de;8=#585b70;9=#f38ba8;10=#a6e3a1;11=#f9e2af;12=#89b4fa;13=#f5c2e7;14=#94e2d5;15=#a6adc8"
4.3 Popular Themes Ready to Use
Catppuccin Mocha (Recommended):
foreground = "#cdd6f4"
background = "#1e1e2e"
palette = "0=#45475a;1=#f38ba8;2=#a6e3a1;3=#f9e2af;4=#89b4fa;5=#f5c2e7;6=#94e2d5;7=#bac2de;8=#585b70;9=#f38ba8;10=#a6e3a1;11=#f9e2af;12=#89b4fa;13=#f5c2e7;14=#94e2d5;15=#a6adc8"
Tokyo Night:
background = "#1a1b26"
foreground = "#a9b1d6"
palette = "0=#32344a;1=#f7768e;2=#9ece6a;3=#e0af68;4=#7aa2f7;5=#bb9af7;6=#7dcfff;7=#a9b1d6;8=#444b6a;9=#f7768e;10=#9ece6a;11=#e0af68;12=#7aa2f7;13=#bb9af7;14=#7dcfff;15=#c0caf5"
Nord:
background = "#2e3440"
foreground = "#d8dee9"
palette = "0=#3b4252;1=#bf616a;2=#a3be8c;3=#ebcb8b;4=#81a1c1;5=#b48ead;6=#88c0d0;7=#e5e9f0;8=#4c566a;9=#bf616a;10=#a3be8c;11=#ebcb8b;12=#81a1c1;13=#b48ead;14=#8fbcbb;15=#eceff4"
Gruvbox Dark:
background = "#282828"
foreground = "#ebdbb2"
palette = "0=#282828;1=#cc241d;2=#98971a;3=#d79921;4=#458588;5=#b16286;6=#689d6a;7=#a89984;8=#928374;9=#fb4934;10=#b8bb26;11=#fabd2f;12=#83a598;13=#d3869b;14=#8ec07c;15=#ebdbb2"
5. Splits and Multi-Window
5.1 Split Shortcuts
Ghostty has powerful built-in split support — no tmux needed for efficient multi-terminal management:
| Action | macOS Shortcut | Linux Shortcut |
|---|---|---|
| Split vertically | Cmd + \ |
Ctrl + Shift + \ |
| Split horizontally | Cmd + Enter |
Ctrl + Shift + Enter |
| Switch pane focus | Cmd + Option + Arrow |
Ctrl + Shift + Arrow |
| Close pane | Cmd + Shift + W |
Ctrl + Shift + W |
5.2 Tab Management
| Action | Shortcut |
|---|---|
| New tab | Cmd + T / Ctrl + Shift + T |
| Close tab | Cmd + W / Ctrl + Shift + W |
| Switch tabs | Cmd + { / Cmd + } |
| Jump to tab N | Cmd + 1~9 |
5.3 Default Window Settings
# Window size
window-width = 1200
window-height = 800
# Window position
window-position-x = 100
window-position-y = 50
# Maximize on launch
# window-maximize = true
6. Advanced Configuration
6.1 Custom Keyboard Shortcuts
Ghostty's shortcut system is highly flexible. The format is key = modifier+key \ action:
# ~/.config/ghostty/config
# Custom tab switching
key = cmd+1 \ tab:activate:1
key = cmd+2 \ tab:activate:2
key = cmd+3 \ tab:activate:3
# Custom split shortcuts
key = cmd+shift+v \ split:right
key = cmd+shift+h \ split:down
# One-key new window with command
key = cmd+shift+n \ spawn:window
6.2 Mouse Support
Ghostty fully supports the SGR mouse event protocol, working out of the box with:
- Vim/Neovim — Mouse click navigation, visual selection
- tmux — Mouse mode for window and pane selection
- htop / ranger / fzf — Mouse interaction for TUI tools
# Mouse reporting (enabled by default)
mouse-report = true
6.3 Environment Variables and Shell Integration
# Startup directory
cwd = ~/Projects
# Environment variables
env = TERM=xterm-256color
env = LANG=en_US.UTF-8
# Custom window title
title = "Ghostty — {cwd}"
6.4 Transparency and Blur Effects (macOS)
# Background transparency
background-opacity = 0.95
# macOS frosted glass effect
macos-titlebar-blur = true
macos-window-blur = true
6.5 Cursor and Scrolling
# Cursor style: block, beam, underline
cursor-style = bar
# Cursor blinking
cursor-blink = true
# Scrollback lines
scrollback-limit = 20000
# Mouse scroll speed
scroll-multiplier = 3
7. Practical Scenarios
7.1 Ghostty + Neovim: A Perfect Match
Ghostty's GPU rendering and full keyboard protocol support make it the ideal Neovim terminal:
# ~/.config/ghostty/config
# Enable kitty keyboard protocol (enhanced keyboard support, distinguishes Ctrl+ combos)
kitty-keyboard = true
# Ensure true color
env = TERM=xterm-256color
Ghostty's full Neovim support includes:
- ✅ True color (24-bit color)
- ✅ italic / bold / underline / strikethrough
- ✅ Kitty keyboard protocol (correctly distinguishes Ctrl+i from Tab)
- ✅ OSC 52 clipboard integration
- ✅ Fast rendering, zero typing lag
7.2 Ghostty + tmux Combo
For heavy tmux users, Ghostty integrates seamlessly:
# Ghostty config
term = xterm-ghostty
In ~/.tmux.conf:
# Enable mouse
set -g mouse on
# True color
set -g default-terminal "screen-256color"
set -ga terminal-overrides ",xterm-ghostty:Tc"
Starting with version 1.0, Ghostty supports TERM=xterm-ghostty, which tmux 3.3+ recognizes correctly.
7.3 Multi-Window Workflow Example
Say you're a full-stack developer. Here's how you might set up Ghostty for a multi-window workflow:
# One-key frontend dev environment startup
key = cmd+shift+f \ spawn:window npm run dev
# One-key backend service launch
key = cmd+shift+b \ spawn:window make run
# One-key log monitoring
key = cmd+shift+l \ spawn:window tail -f logs/app.log
8. Performance Comparison
Here's how Ghostty stacks up against popular terminal emulators (based on community benchmarks):
| Metric | Ghostty | Alacritty | Kitty | iTerm2 |
|---|---|---|---|---|
| Cold Start | ~30ms | ~20ms | ~40ms | ~150ms |
| Memory Usage | ~25MB | ~15MB | ~35MB | ~200MB |
| Rendering | GPU | GPU | GPU | CPU |
| Large File Scrolling | ⚡ Smooth | ⚡ Smooth | ⚡ Smooth | 🐢 Laggy |
| Tab / Split | ✅ Built-in | ❌ Needs tmux | ✅ Built-in | ✅ Built-in |
| Config Language | INI | TOML | conf | plist |
Ghostty's memory footprint is far lower than iTerm2, its startup speed rivals Alacritty's, and its built-in split means no tmux dependency.
9. FAQ
Q1: Does Ghostty Support Windows?
Ghostty officially supports macOS and Linux at this time. Windows support is on the roadmap but hasn't been officially released yet. Windows users can run the Linux version of Ghostty inside WSL2.
Q2: How Do I Import an iTerm2 Color Scheme?
iTerm2 uses the .itermcolors XML format, which needs to be manually converted to Ghostty's palette format. You can use online converters like iTerm to Ghostty for the conversion.
Q3: Does Ghostty's Config File Support Hot Reloading?
Yes! After you modify ~/.config/ghostty/config, Ghostty automatically detects and applies the changes — no restart needed. That's a major advantage over many other terminals.
Q4: Can I Replace iTerm2 with Ghostty?
For most developers, absolutely. Ghostty covers iTerm2's core features: - ✅ Splits, tabs, search - ✅ Custom colors, fonts - ✅ Transparency, blur effects - ✅ Keyboard shortcut customization - ⚠️ Missing: iTerm2's Shell Integration (Ghostty has its own implementation), Instant Replay, Broadcast Input
10. Summary
With its Zig foundation + GPU acceleration + native UI trio, Ghostty has carved out a fresh path in the "old track" of terminal emulators. It's not the most feature-packed terminal, but it's certainly one of the fastest, lightest, and most elegantly configurable.
Why you should try it: - 🚀 GPU-accelerated rendering, zero typing lag - 🎨 Rich theme support with hot-reload config - 🖥️ Built-in splits, no tmux dependency needed - 🐧 Native support on both macOS and Linux - 🔧 Simple configuration, low learning curve
If you're looking for a terminal emulator that's fast, beautiful, and rock-solid, Ghostty deserves a spot at the top of your shortlist.
Related Links: - Ghostty Official Site - Ghostty GitHub - Ghostty Documentation - Ghostty Config Reference