Terminal GuideTerminal Guide
ghostty icon

Ghostty

Terminal Emulators
macOSLinux
Zig

High-performance terminal emulator written in Zig with native platform integration.

Official Website

Features

GPU AccelerationFast StartupNative UIFont Ligatures

Installation

Homebrew
brew install --cask ghostty

Why Use Ghostty?

Ghostty is a next-generation terminal emulator developed by Mitchell Hashimoto, founder of HashiCorp. Written in the Zig language, it delivers remarkable performance through native UI and GPU acceleration.

Ultra-Fast Performance

Zig language optimization and GPU acceleration deliver speeds that surpass other terminals.

Native UI

Uses native UI for each platform. On macOS, uses Cocoa for full system integration.

Simple Configuration

Simple text-based configuration files. Intuitive and easy-to-understand configuration approach.

Latest Feature Support

Full support for latest features: Kitty graphics protocol, Sixel, ligatures, and color emoji.

Main Features

Performance

Ghostty is developed in Zig language with excellent memory efficiency and execution speed. GPU acceleration ensures smooth display of large log outputs and scrolling. Benchmarks show superior performance compared to Alacritty, Kitty, and iTerm2.

Native Platform Integration

Uses Cocoa/AppKit on macOS and GTK4 on Linux to provide native look and feel for each platform. Automatically adapts to system dark mode switching.

Ghostty terminal

Source: ghostty.org

Screen Splitting and Tabs

Built-in native tab and pane splitting features. Build an efficient work environment without needing tmux.

Font Rendering

Features a high-quality font rendering engine. Fully supports ligatures, color emoji, and variable fonts.

Installation

macOS

macOS
# Install via Homebrew Cask
brew install --cask ghostty

# Download from official site
# https://ghostty.org/download

Linux

Linux
# Arch Linux (AUR)
yay -S ghostty-git

# NixOS / Nix
nix-env -iA nixpkgs.ghostty

# Build from source (requires Zig)
git clone https://github.com/ghostty-org/ghostty.git
cd ghostty
zig build -Doptimize=ReleaseFast

# Flatpak (coming soon)
# flatpak install flathub org.ghostty.Ghostty

Build from Source

To try the latest features, you can build from source. Zig 0.13 or higher is required.

Build from Source
# Install Zig (macOS)
brew install zig

# Clone repository
git clone https://github.com/ghostty-org/ghostty.git
cd ghostty

# Build
zig build -Doptimize=ReleaseFast

# Install
sudo zig build install --prefix /usr/local

Basic Configuration

Ghostty configuration files are placed at ~/.config/ghostty/config. Configuration uses a simple key = value format.

Basic Configuration File

~/.config/ghostty/config
# ~/.config/ghostty/config

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

# Color theme
theme = catppuccin-mocha

# Window settings
window-padding-x = 10
window-padding-y = 10
window-decoration = true

# Background transparency
background-opacity = 0.95

# Cursor settings
cursor-style = block
cursor-style-blink = true

# Mouse settings
mouse-hide-while-typing = true

# Scrollback lines
scrollback-limit = 10000

# Shell integration
shell-integration = detect

Color Theme Configuration

Ghostty includes many built-in themes. Custom colors can also be configured.

Color Theme Settings
# Use built-in theme
theme = dracula
# theme = tokyo-night
# theme = gruvbox-dark
# theme = nord
# theme = one-dark

# Custom color settings
# foreground = #c0caf5
# background = #1a1b26
# selection-foreground = #c0caf5
# selection-background = #33467c

# ANSI colors (0-15)
# palette = 0=#15161e
# palette = 1=#f7768e
# palette = 2=#9ece6a
# palette = 3=#e0af68
# palette = 4=#7aa2f7
# palette = 5=#bb9af7
# palette = 6=#7dcfff
# palette = 7=#a9b1d6

Keybinding Configuration

Keybinding Settings
# Keybinding configuration
# Format: keybind = <key>=<action>

# Pane splitting
keybind = cmd+d=new_split:right
keybind = cmd+shift+d=new_split:down

# Pane navigation
keybind = cmd+shift+h=goto_split:left
keybind = cmd+shift+l=goto_split:right
keybind = cmd+shift+k=goto_split:top
keybind = cmd+shift+j=goto_split:bottom

# Pane resizing
keybind = cmd+alt+h=resize_split:left,50
keybind = cmd+alt+l=resize_split:right,50

# Tab operations
keybind = cmd+t=new_tab
keybind = cmd+w=close_surface
keybind = cmd+1=goto_tab:1
keybind = cmd+2=goto_tab:2
keybind = cmd+3=goto_tab:3

# Font size change
keybind = cmd+plus=increase_font_size:1
keybind = cmd+minus=decrease_font_size:1
keybind = cmd+0=reset_font_size

# Search
keybind = cmd+f=search

# Copy & Paste
keybind = cmd+c=copy_to_clipboard
keybind = cmd+v=paste_from_clipboard

Default Keyboard Shortcuts

Below are the default shortcuts for macOS.

ShortcutFunction
⌘TOpen new tab
⌘NOpen new window
⌘WClose current pane/tab
⌘DVertical split (pane on right)
⌘⇧DHorizontal split (pane below)
⌘] / ⌘[Move to next/previous pane
⌘1-9Switch tabs by number
⌘FSearch
⌘+ / ⌘-Change font size
⌘0Reset font size
⌘EnterToggle fullscreen

Advanced Configuration

Quick Terminal (Hotkey Window)

Configure features similar to iTerm2's hotkey window.

Quick Terminal
# Quick Terminal settings
# Toggle with global hotkey
keybind = global:ctrl+`=toggle_quick_terminal

# Quick Terminal specific settings
quick-terminal-position = top
quick-terminal-size = 0.4
quick-terminal-animation-duration = 0.2

Conditional Configuration

Conditional configuration based on OS or hostname is also possible.

Conditional Settings
# macOS specific settings
[macos]
macos-option-as-alt = true
macos-titlebar-style = hidden

# Linux specific settings
[linux]
gtk-single-instance = true

# Settings for specific hostname
[host:my-macbook]
font-size = 14

[host:my-desktop]
font-size = 13

Tips

  • *Config Reload: Use ghostty +reload-config to reload the configuration file. Alternatively, opening a new window applies new settings.
  • *List Config Options: Use ghostty +list-config to view all configuration options and their descriptions.
  • *List Themes: Use ghostty +list-themes to list all available built-in themes.
  • *Performance: When handling large logs, adjust scrollback-limit to optimize memory usage.
  • *Shell Integration: Setting shell-integration = detect automatically enables shell integration for bash/zsh/fish, enabling features like prompt marks.
  • *Development Status: Ghostty is actively developed by Mitchell Hashimoto. Watch the GitHub releases to check out the latest features.
Written by Dai AokiPublished: 2026-01-20

Related Articles

Explore More