ghostty-config
"Configure and optimize Ghostty terminal for any machine. Use when setting up Ghostty from scratch, changing fonts/themes/keybinds, optimizing for AI coding workflows, validating config, provisioning Ghostty for a team, troubleshooting Ghostty rendering or keybind issues, handling Ghostty upgrades, or fixing SSH terminfo problems."
Ghostty Config
Gate: Verify Ghostty is installed
Run ghostty +version before anything else. If it fails:
- macOS:
brew install ghosttyor download from ghostty.org/download - Linux: snap/deb/nix or build from source (ghostty.org/docs/install/build)
- Windows: community fork github.com/Thr45hx/ghostty-windows (unofficial)
Do NOT proceed until ghostty +version succeeds. Note the platform and version.
Config file
Location: ~/.config/ghostty/config
Create directory if absent: mkdir -p ~/.config/ghostty
Format: key = value, one per line, # comments, no sections or headers.
Ghostty auto-reloads most config changes. Some require restart (noted in docs).
CLI tools — use as source of truth
Never guess option names, theme names, or font names. Always discover from the CLI:
ghostty +show-config— current config with all defaultsghostty +show-config --default --docs— defaults with inline documentationghostty +validate-config— validate config file (MANDATORY after every write)ghostty +list-themes— themes available on THIS machineghostty +list-fonts— fonts installed on THIS machineghostty +list-keybinds— current keybind mappingsghostty +list-actions— all available keybind actionsghostty +list-colors— current color palette
Mandatory rules
- After writing ANY config change → run
ghostty +validate-config - Before recommending a theme → run
ghostty +list-themesto confirm it exists - Before recommending a font → run
ghostty +list-fontsto confirm it’s installed - Never hardcode font or theme names without runtime verification
Workflow: Provision new machine
ghostty +version— confirm installed, note platformmkdir -p ~/.config/ghosttyghostty +list-fonts— find best available font (prefer Nerd Font → monospace → system default)ghostty +list-themes— pick high-contrast dark theme from what’s available- Read
references/ai-coding-workflow-recommendations.mdfor opinionated defaults - Write config adapted to this machine’s fonts, themes, and platform
ghostty +validate-config— must pass with no errors
Workflow: Change theme or font
ghostty +list-themesorghostty +list-fonts— browse what’s available- Update the relevant line in config
ghostty +validate-config
Workflow: Troubleshooting
- Config errors:
ghostty +validate-config— shows exact errors - Font not rendering:
ghostty +list-fonts— verify the font name matches exactly - Keybind not working:
ghostty +list-keybinds— check for conflicts or typos - Broken rendering over SSH: Ghostty needs its terminfo on the remote.
Use
ghostty +ssh-cacheor setshell-integration-features = ssh-terminfoin config, or manually copy terminfo:infocmp -x | ssh user@host tic -x - - Notifications not firing: Check
desktop-notifications = truein config (default). On macOS, check system notification permissions for Ghostty.
Workflow: After Ghostty upgrade
ghostty +version— confirm new versionghostty +validate-config— check if any options were deprecated or changedghostty +show-config --default --docs— review new options available- Update config if needed, re-validate
When to read reference files
references/option-reference.txt— full Ghostty config reference fromghostty +show-config --default --docs(4000+ lines — grep for specific keys, don’t read the whole thing)references/keybind-actions.md— all keybind actions with arguments and syntaxreferences/ai-coding-workflow-recommendations.md— opinionated defaults, keybind philosophy, starter config template