Ghostty Cheatsheet

1.0

Keyboard 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.

Window Management
Cmd+N
Open a new window
Cmd+Shift+W
Close the current window
Cmd+Ctrl+F
Toggle fullscreen
Cmd+M
Minimize window
Cmd+,
Open configuration file
Cmd+Q
Quit Ghostty

Tab Management

Tabs work just like Safari or Finder tabs — native macOS tab bar, drag to reorder, the whole deal.

Tab Management
Cmd+T
Open a new tab
Cmd+W
Close the current tab (or split)
Cmd+Shift+]
Switch to the next tab
Cmd+Shift+[
Switch to the previous tab
Cmd+1-9
Jump directly to tab by number

Split Management

This is where Ghostty earns its keep. Native splits with no tmux prefix dance — just Cmd-based shortcuts that feel natural.

Split Management
Cmd+D
Split pane right (vertical divider)
Cmd+Shift+D
Split pane down (horizontal divider)
Cmd+]
Navigate to the next split
Cmd+[
Navigate to the previous split
Cmd+Alt+Arrow Keys
Navigate to split in arrow direction
Cmd+Ctrl+Arrow Keys
Resize split in arrow direction
Cmd+Shift+Enter
Toggle zoom on current split (equalize/maximize)
Cmd+W
Close current split

Text & Clipboard

Standard macOS text manipulation, plus a few terminal-specific extras for font sizing.

Text & Clipboard
Cmd+C
Copy selected text
Cmd+V
Paste from clipboard
Cmd+A
Select all text in the terminal
Cmd++
Increase font size
Cmd+-
Decrease font size
Cmd+0
Reset font size to default
Shift+Selection
Extend selection with mouse

Scrolling & Navigation

Navigate your scrollback buffer without reaching for the mouse.

Scrolling & Navigation
Cmd+Up
Scroll up one line
Cmd+Down
Scroll down one line
Page Up
Scroll up one page
Page Down
Scroll down one page
Cmd+Home
Scroll to top of scrollback
Cmd+End
Scroll to bottom (back to prompt)
Cmd+F
Open search in terminal output
Cmd+G
Find next match
Cmd+Shift+G
Find previous match

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.

Config Essentials
font-family = "JetBrains Mono"
Set your terminal font
font-size = 14
Set font size in points
theme = catppuccin-mocha
Apply a built-in or custom color theme
window-decoration = false
Hide the native title bar for a clean look
background-opacity = 0.95
Set background transparency (0.0–1.0)
cursor-style = block
Cursor shape: block, bar, or underline
cursor-style-blink = false
Disable cursor blinking
shell-integration = zsh
Enable shell integration for your shell
copy-on-select = true
Automatically copy text when selected
scrollback-limit = 10000
Number of lines to keep in scrollback
keybind = cmd+k=clear_screen
Custom keybinding example: Cmd+K clears screen
window-padding-x = 8
Horizontal padding inside the terminal window
window-padding-y = 4
Vertical padding inside the terminal window

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.

Related Tools