Ghostty -- The Terminal I Didn't Know I Needed
Why I Switched to Ghostty
I spent years on iTerm2. It worked. I never thought about it much — which, for a terminal, sounds like a compliment but is really just inertia.
Then I tried Ghostty, and I started actually noticing my terminal again. In a good way.
What Is Ghostty?
Ghostty is a fast, feature-rich, and cross-platform terminal emulator that uses platform-native UI and GPU acceleration.
It was built by Mitchell Hashimoto (founder of HashiCorp) and written in Zig. On macOS, it's a true SwiftUI-based application — real windowing, menu bars, a settings GUI. It uses a Metal renderer with CoreText for font discovery, and supports AppleScript and Apple Shortcuts.
The pitch is simple: you shouldn't have to choose between speed, features, and a native feel. Ghostty gives you all three.
Why It's Different
Most fast terminals (Alacritty, for example) achieve their speed by stripping things down — no native UI, minimal features, cross-platform lowest-common-denominator. Ghostty and Alacritty are usually within a few percentage points of each other on benchmarks — but both are something like 100x faster than Terminal.app and iTerm. The difference is that Ghostty is also feature-rich and has a much more native app experience.
It feels like a Mac app. Because it is one.
Other things worth knowing:
- Hundreds of built-in themes — run
ghostty +list-themesto browse them - Native tabs, splits, and windows — no tmux required (though tmux still works great)
- Kitty Graphics Protocol — render images inline in the terminal
- Terminal Inspector — real-time debugging of keystrokes and render timings
- Zero config to start — sane defaults out of the box, Nerd Fonts supported without extra setup
My Config
The config lives at ~/.config/ghostty/config. It's a plain text key-value file — no scripting, no JSON, no YAML. Just readable settings.
Here's what I'm running:
# Font
font-family = "JetBrains Mono"
font-size = 14
font-thicken = true
# Theme
theme = catppuccin-mocha
# Window
background-opacity = 0.92
background-blur-radius = 20
window-padding-x = 8
window-padding-y = 8
# Behavior
copy-on-select = true
cursor-style = bar
cursor-style-blink = false
mouse-hide-while-typing = true
# Shell integration
shell-integration = zsh
shell-integration-features = cursor,sudo,title
# macOS
macos-option-as-alt = true
quit-after-last-window-closed = true
A few notes on the choices:
font-thicken = true — Makes thin fonts more legible on Retina displays. Especially helpful with JetBrains Mono's lighter weight.
background-opacity + background-blur-radius — A subtle frosted glass look. Not distracting, but makes the window feel lighter. Set opacity to 1 if you want fully solid.
macos-option-as-alt = true — Essential if you use shell keybindings that expect Alt (like alt+b/alt+f for word jumping in zsh). Without this, Option produces special characters instead.
shell-integration = zsh — Enables smart features: the cursor changes shape based on context, titles update automatically, sudo prompts get flagged.
copy-on-select = true — Copies text to clipboard the moment you select it. Personal preference, but once you're used to it you miss it everywhere else.
Getting Started
Install via Homebrew:
brew install --cask ghostty
Or download directly from ghostty.org.
Open the config with Cmd + , inside the app, or edit ~/.config/ghostty/config directly. Changes reload automatically — no restart needed.
Should You Switch?
If you're happy with your terminal, maybe not. Inertia is fine.
But if you've ever felt like your terminal was slightly fighting you — slow to render, weirdly un-Mac-like, requiring a dozen plugins just to feel decent — Ghostty is worth an afternoon.
It gets out of your way. That's the whole point.