Ghostty Cheatsheet
1.0Keyboard shortcuts and config essentials for the Ghostty terminal
Official docs →Ghostty is the terminal emulator that actually respects your time. Built by Mitchell Hashimoto (yes, the HashiCorp founder), it's fast, native, and opinionated in the best way. No Electron, no web views — just a GPU-accelerated terminal that launches instantly and renders text like it's been doing this its whole life. It uses platform-native UI on macOS, which means it feels like a Mac app because it is a Mac app. Tabs, splits, fullscreen — everything uses the shortcuts your fingers already know.
The config story is refreshingly simple: one file, plain key-value pairs, no JSON/YAML/TOML debates. Drop a config file in ~/.config/ghostty/ and you're done. Ghostty live-reloads most settings, so you can tweak your font size or theme without restarting. The defaults are sane enough that many people run it with zero config, but the customization depth is there when you want it.
This cheatsheet covers the macOS shortcuts you'll actually use. Ghostty leans heavily on platform-native keybindings — if you've used Terminal.app or iTerm2, most of these will feel familiar. The split management is where Ghostty really shines, giving you tmux-like pane control without the prefix key overhead. Everything here uses the default keybindings; if you've remapped things via keybind in your config, adjust accordingly.
Window Management
Windows are your top-level containers. Ghostty windows are native macOS windows, so they behave exactly like you'd expect.
Tab Management
Tabs work just like Safari or Finder tabs — native macOS tab bar, drag to reorder, the whole deal.
Split Management
This is where Ghostty earns its keep. Native splits with no tmux prefix dance — just Cmd-based shortcuts that feel natural.
Text & Clipboard
Standard macOS text manipulation, plus a few terminal-specific extras for font sizing.
Scrolling & Navigation
Navigate your scrollback buffer without reaching for the mouse.
Config Essentials
Ghostty uses a simple key-value config file at ~/.config/ghostty/config. No file extension, no nesting, no ceremony. One setting per line, and most changes apply immediately without a restart.
Tips
Ghostty ships with a solid collection of built-in themes. Run ghostty +list-themes in your terminal to browse them all, or just set theme = your-pick in your config. You can also preview themes interactively — Ghostty live-reloads the config, so save the file and watch your terminal transform in real time.
Shell integration is one of Ghostty's underrated superpowers. With shell-integration enabled, Ghostty understands where your prompts and command outputs begin and end. This unlocks features like jumping between prompts and marking command boundaries in the scrollback. It works out of the box for zsh, bash, and fish.
If you're coming from tmux purely for splits, give Ghostty's native splits a serious try before reaching for a multiplexer. Cmd+D and Cmd+Shift+D get you side-by-side and stacked panes with zero config. You lose session persistence and remote detach, but for local dev workflows the reduced complexity is worth it.
Use window-decoration = false with some window padding for a modern, distraction-free look. Pair it with background-opacity set slightly below 1.0, and you've got a terminal that looks like it belongs on a design blog. Function and form — imagine that.
The keybind config option is more powerful than it looks. You can remap any action, create multi-key sequences, and even bind to shell commands. The format is keybind = keys=action, and you can stack multiple keybind lines. Check the docs for the full list of bindable actions — there are dozens.
Ghostty's copy-on-select = true setting is a game-changer if you frequently copy text from terminal output. Select text with your mouse or keyboard, and it's instantly on your clipboard — no Cmd+C required. It's one of those tiny workflow improvements that saves you hundreds of keystrokes a week.
You can use multiple font fallbacks by specifying font-family more than once. Ghostty tries each font in order, which is perfect for covering emoji, CJK characters, or Nerd Font symbols. Just add additional font-family lines below your primary font and Ghostty handles the rest.