Skip to content

First module is free — start with a sampler of plugins, skills & e-books.Access for free

Setup · 5 min

How to install Ghostty on macOS (and why it beats Terminal.app)

Terminal.app got you this far, and you could honestly stop there — except you're about to spend hundreds of hours in this window, and Terminal.app keeps its settings in checkboxes you can't copy, share, or ask a tool to read. To install Ghostty on macOS takes one Homebrew command and about three minutes. What you get is a faster, GPU-rendered terminal configured entirely by one plain-text file you can carry to any Mac you'll ever own.

Studio Schema

What Ghostty buys you over Terminal.app

Two things, and only one of them is speed. Ghostty draws your text with the GPU — on a Mac, through Apple's Metal renderer — so scrolling a wall of build output stays smooth where older terminals stutter. Nice, but not the deciding reason. (If the shell prompt itself is still new territory, what a terminal actually is covers the layer underneath; everything here sits on top of it.)

The deciding reason is the config file. Every visual and behavioral choice in Ghostty lives in one text file at ~/.config/ghostty/config, in plain key = value lines. That makes your terminal portable text: copy one file to a new Mac and your whole setup arrives with it, diff it to see what changed, paste it anywhere you need to show it. Terminal.app's checkboxes can do none of that — the full version of this argument lives at config file beats checkboxes.

How to install Ghostty on macOS

Three commands and one keystroke, about three minutes end to end.

  1. 01Check for Homebrew. Type brew --version in Terminal.app. An answer like Homebrew 6.0.0 means you have it. A command not found means install it first with the official one-liner in the block at the end of this article — Homebrew is the Mac's missing package manager.
  2. 02Install Ghostty. Run brew install --cask ghostty. Homebrew downloads the signed app (version 1.3.1 as of this writing) and moves it to /Applications. Wait for the beer mug.
  3. 03Launch it. Cmd+Space, type Ghostty, Enter. A terminal window opens — same shell, same zsh, answering exactly as before. It looks plain right now. That's the before photo.
  4. 04Create the config file. Ghostty runs fine with no config at all, so the file doesn't exist yet. Make it: mkdir -p ~/.config/ghostty && touch ~/.config/ghostty/config. Empty file, full of intent.
  5. 05Test the reload keystroke. In Ghostty, press Cmd+Shift+, (comma). That's reload_config — Ghostty re-reads the file on the spot, no restart. Nothing visibly changes yet because the file is empty.
Terminal output of brew reinstall --cask ghostty fetching Cask ghostty 1.3.1, moving Ghostty.app to /Applications, and reporting a successful install
The install on a machine that already had Ghostty — output trimmed to the lines that matter. The beer mug means Homebrew is done.

One honesty note on that frame: the machine it was captured on already had Ghostty, so it shows brew reinstall — which replays the identical download-and-install flow you'll see. On a fresh Mac the command is brew install --cask ghostty. Either way, the line to watch is Moving App 'Ghostty.app' to '/Applications' — Ghostty is a normal Mac app; Homebrew is putting it where every other app lives.

Verify the pieces landed. Ghostty ships a command-line tool alongside the app, so you can ask it directly:

$ ghostty +version
Ghostty 1.3.1

Version
  - version: 1.3.1
  - channel: stable
Build Config
  - renderer      : renderer.generic.Renderer(renderer.Metal)
Output trimmed to the relevant rows — the renderer line is the GPU claim, confirmed by the program itself.

That renderer.Metal line is the GPU acceleration claim verified by the binary rather than a marketing page. And ls ~/.config/ghostty should answer with one word — config — proving the empty file is in place.

Homebrew cask or the .dmg?

Ghostty's own docs offer two macOS routes: the .dmg from ghostty.org/download — signed and notarized, drag to Applications, perfectly fine — and the Homebrew cask. This guide standardizes on Homebrew because it turns "install a tool" into a one-line command you can read, script, and replay, and because the tools most people install next — a multiplexer, a file manager, most of a modern terminal stack — install the same way. One package manager, one mental model. Both routes are documented at ghostty.org/docs/install/binary.

Updates take care of themselves either way: Ghostty updates itself in place (Homebrew marks the cask auto_updates for exactly this reason), so you're never stuck on an old build because you forgot to run an upgrade command.

The config location is worth one footnote. Ghostty also accepts a config at ~/Library/Application Support/com.mitchellh.ghostty/, the traditional macOS spot. Use ~/.config/ghostty/config instead — the cross-platform XDG path — because most modern command-line tools keep their config under your home folder's dotfiles, and one convention beats two.

The complete install, copy-paste ready

# 1. Homebrew itself (skip if brew --version already answers)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# 2. Ghostty
brew install --cask ghostty

# 3. The empty config file, ready to fill
mkdir -p ~/.config/ghostty && touch ~/.config/ghostty/config
The full sequence for a fresh Mac — three commands, three minutes.

Before calling it done, four quick checks:

  • brew --version answers with a version number
  • ghostty +version reports 1.3.1 (or newer)
  • ls ~/.config/ghostty shows the config file
  • Cmd+Shift+, in Ghostty does nothing visible — and nothing breaks

The empty file and the reload keystroke are the setup for the real payoff: twelve lines of configuration that turn a default Ghostty into a finished daily driver. That file, line by line — including the lines you should never delete — is covered in the 12-line Ghostty config guide. Once it's filled, Cmd+Shift+, stops being a no-op and becomes a light switch.