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-themes to 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.