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
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"

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