Ghostty Cheatsheet

Getting Started

Use this Ghostty reference while you build software engineering projects, review code, or refresh the syntax you reach for most.

What Ghostty is

Ghostty is a native, GPU-accelerated terminal emulator by Mitchell Hashimoto. The macOS GUI is Swift with AppKit and SwiftUI, the Linux GUI is Zig with GTK4, and both drive a shared Zig core called libghostty. Current stable release is 1.3.1.

PropertyValue
PlatformsmacOS and Linux
macOS minimummacOS 13 Ventura or later, universal binary
TERM valuexterm-ghostty
Config formatplain text, key = value
Embedded fontJetBrains Mono, plus built-in Nerd Font glyphs
Built-in themeshundreds, sourced from iterm2-color-schemes

Native tabs, native splits, a macOS quick terminal, Kitty graphics protocol, OSC 8 hyperlinks, and light/dark theme switching are all built in.

Install on macOS

Official signed and notarized .dmg from the download page, or the community-maintained Homebrew cask that repackages the same .dmg.

brew install --cask ghostty

Nixpkgs users want ghostty-bin on macOS, which repackages the official .dmg. The plain ghostty package is the GTK build for Linux.

Install on Linux

The project only officially distributes prebuilt binaries for macOS. On Linux you use a distro package or build from source.

pacman -S ghostty            # Arch, [extra]
apk add ghostty              # Alpine, testing repo

Distro packages are built and verified by the distributions, not by the Ghostty project. Report packaging problems to your distro maintainers first. If your distro has no package, build from source with Zig.

Zero configuration first

Ghostty is designed to need no configuration. It ships sensible defaults, embeds a font, and the project treats "you had to configure this" as a bug worth discussing. Launch it and use it before you write a config file.

When you do want to change something, one line is usually enough.

# ~/.config/ghostty/config.ghostty
theme = catppuccin-mocha
font-size = 14
background-opacity = 0.95

Reload without restarting: cmd+shift+, on macOS, ctrl+shift+, on Linux. Some options only apply to newly created terminals, and a few cannot be reloaded at all. The per-option reference says which.

Where the config lives

The file is named config.ghostty (it was config before 1.2.3, and that name still loads). Every existing location is loaded in order, and later files override earlier ones.

OrderPath
1$XDG_CONFIG_HOME/ghostty/config.ghostty
2$XDG_CONFIG_HOME/ghostty/config
3~/Library/Application Support/com.mitchellh.ghostty/config.ghostty (macOS)
4~/Library/Application Support/com.mitchellh.ghostty/config (macOS)

$XDG_CONFIG_HOME defaults to ~/.config. macOS reads the XDG path too, and all macOS-specific files load after all XDG files.

First commands to know

ghostty --version              # version and build info
ghostty +list-themes           # browse and preview built-in themes
ghostty +list-fonts            # valid font-family values
ghostty +list-keybinds --default   # the default keybind set
ghostty +show-config --default --docs | less   # every option, documented
ghostty +validate-config       # check the config file for errors
ghostty +edit-config           # open the config in your editor

Every configuration key is also a command-line flag, so ghostty --font-size=16 --theme=nord starts a one-off terminal without touching your config file.