Matthew Lang avatar

Ghostty

Ghostty is a GPU-accelerated terminal emulator by Mitchell Hashimoto — native UI on each platform (not Electron), fast, and configured with a single plain-text file rather than a settings GUI.

Config file

Platform Location
macOS ~/Library/Application Support/com.mitchellh.ghostty/config
Linux ~/.config/ghostty/config

Format is key = value, one per line, no quoting needed for most values:

font-family = JetBrains Mono
font-size = 14
theme = catppuccin-mocha
background-opacity = 0.95
window-padding-x = 10
window-padding-y = 10
cursor-style = block
shell-integration = detect
copy-on-select = true

Config reloads live — no restart needed after saving (Cmd+Shift+, on macOS opens it directly).

Useful CLI subcommands

ghostty +list-themes       # every built-in theme, with a live preview flag
ghostty +list-fonts        # fonts Ghostty can see on the system
ghostty +show-config       # fully resolved config, including defaults
ghostty +list-keybinds     # every active keybinding

Keybindings (macOS defaults)

Shortcut Action
Cmd+D Split right
Cmd+Shift+D Split down
Cmd+Opt+Arrow Move focus between splits
Cmd+T New tab
Cmd+Shift+P Command palette
Cmd+K Clear scrollback
Cmd+Shift+, Open config file

All keybinds are remappable via keybind = <trigger>=<action> in config, e.g.:

keybind = cmd+shift+r=reload_config
keybind = global:cmd+grave_accent=toggle_quick_terminal

Quick terminal

A Ghostty-hosted, drop-down/global terminal (like iTerm2’s Hotkey Window) — bind a global shortcut (toggle_quick_terminal) and it summons over whatever app is focused, no Cmd+Tab needed.

Shell integration

shell-integration = detect auto-injects hooks for bash/zsh/fish/elvish on startup, giving you:

  • Correct working-directory tracking (new tabs/splits open where you were).
  • Cursor shape changes between prompt and command execution.
  • Safer paste handling — warns on multi-line or suspicious pastes.
  • Sudo password prompt handled without echoing to the scrollback.

Notes

  • Rendering uses Metal (macOS) or OpenGL/Vulkan (Linux) — GPU-driven, not a CPU text renderer, which is most of why it feels faster than Electron-based terminals under heavy scrollback.
  • Deliberately no plugin/extension system — the philosophy is a small, fast, well-defaulted core rather than an ecosystem to configure.
  • Ligature support is built in; toggle with font-feature = -calt if you want to disable a specific one (e.g. to stop != rendering as ≠).