Ghostty Terminal: A Complete Setup Guide for Modern Mac Development
Learn how to install and configure Ghostty terminal on Mac. Then enhance it with a modern prompt, zsh plugins, and tmux for a fast, GPU-accelerated workflow.
Ghostty is a modern, GPU-accelerated terminal emulator that’s quickly gaining popularity among developers and power users. It’s fast, native-feeling on macOS, and straightforward to configure.
In this guide you’ll:
- Install Ghostty and a Nerd Font (so icons render correctly)
- Set up a clean
~/.config/ghostty/config - Learn the standout Ghostty features (themes, inspector, shaders, image support)
- (Optional) Layer in a modern prompt and productivity tools like tmux and zoxide
If you specifically want Starship + Ghostty with presets and a complete prompt setup, see my companion guide: Turbocharge Your Mac Terminal: The Ultimate Starship and Ghostty Setup Guide: https://www.bitdoze.com/starship-ghostty-terminal/
Key Features of Ghostty
GPU Acceleration
Ghostty renders using your GPU, which means fast scrolling and smooth performance. Complex terminal output stays responsive, and working with large files doesn’t slow things down.
Native UI
Ghostty doesn’t try to be a one-size-fits-all UI. On macOS it uses native Swift and AppKit, on Linux it uses GTK4. Because of this, Ghostty actually feels like part of your system instead of a foreign tool.
Simple Configuration File (Key-Value)
Config is straightforward: ~/.config/ghostty/config uses simple key-value pairs. No scripting language, no complex syntax. Change fonts, pick a theme, adjust opacity.
Built-in Multiplexer
Ghostty has built-in multiplexing so you can split panes and manage multiple sessions without reaching for tmux.
Rich Color Support
Supports true color and comes with over 100 themes built-in. You can also add custom ones if you prefer something specific.
Image Support
Ghostty supports the Kitty Graphics Protocol, so you can render images directly in the terminal. Useful if you work with preview tools or want visual output inline.
Performance
Ghostty’s written in Zig, which shows in the performance. Benchmarks consistently put it among the fastest terminals for handling large Unicode files.
Keep in mind: benchmarks depend heavily on your setup (font, shaders, opacity) and the workload being tested. Real-world differences are smaller than numbers suggest.
| Terminal | Version | Speed |
|---|---|---|
| Ghostty | 1 | 73ms |
| Alacritty | 0.13.1 | 66ms |
| WezTerm | 20240203 | 140ms |
Unique Features
Terminal Inspector
The Terminal Inspector is one of Ghostty’s best features. It shows you real-time debugging info—keystrokes, render timings, everything happening under the hood. Handy if you’re troubleshooting or just curious about what’s going on.
Shaders
You can write custom shaders to apply visual effects—think glow effects, CRT filters, or whatever else you want to try. Fun if you like tweaking things visually.
Installation and Configuration
If you are interested to see some free cool Mac Apps you can check toolhunt.net mac apps section.
Quickstart (TL;DR)
Quick setup if you just want Ghostty running:
brew install --cask ghostty
brew install font-meslo-lg-nerd-font
mkdir -p ~/.config/ghostty
Then create ~/.config/ghostty/config with the basic config below and restart Ghostty.
Ghostty Install
Download Ghostty directly or use Homebrew:
brew install --cask ghostty
Install Meslo Nerd Font
Nerd Fonts include programming icons and symbols. Install Meslo LG via Homebrew:
brew install font-meslo-lg-nerd-font
The font installs automatically. Verify it in Font Book if needed. You may need to restart Ghostty after installation.
Setup Ghostty Config File
Create the config file and add basic settings:
mkdir -p ~/.config/ghostty
vim ~/.config/ghostty/config
Add this to the config:
font-family = MesloLGS Nerd Font Mono
font-size = 18
background-opacity = 0.9
theme = Argonaut
Find available fonts and themes:
ghostty +list-fonts
ghostty +list-themes
Restart Ghostty after saving. If icons look broken, verify that Ghostty is using the Nerd Font you installed.
Tip: Keep your Ghostty config minimal—put heavy customization in your shell rc files or prompt setup instead. This makes it easier to sync across machines.
Prompt Options (Pick One)
Now you need a prompt. Pick one:
- Starship: Works with any shell, has ready-made themes, and is fast. I have a full guide for Starship + Ghostty: https://www.bitdoze.com/starship-ghostty-terminal/
- Powerlevel10k: Built for zsh, highly configurable, popular with zsh users.
Install powerlevel10k theme
Install Powerlevel10k:
brew install powerlevel10k
echo "source $(brew --prefix)/share/powerlevel10k/powerlevel10k.zsh-theme" >> ~/.zshrc
source ~/.zshrc
The first run shows a configuration wizard. Walk through it to customize your prompt—choose what segments to display, colors, icons, etc. You can always rerun p10k configure later to tweak it.
The result is a prompt that shows git status, command execution time, and more, without sacrificing speed. Edit ~/.p10k.zsh if you want to fine-tune it further.
Setup zsh-autosuggestions plugin
zsh-autosuggestions suggests commands as you type, based on your history. Get it working:
brew install zsh-autosuggestions
echo "source $(brew --prefix)/share/zsh-autosuggestions/zsh-autosuggestions.zsh" >> ~/.zshrc
source ~/.zshrc
Now when you type, you’ll see faded suggestions. Press the right arrow or End to accept them. The suggestions you customize in .zshrc if you want—change colors, tweak keybindings, etc.
See also: Enable Command Autocomplete in Zsh
Setup zsh-syntax-highlighting
zsh-syntax-highlighting colors your commands as you type—green for valid commands, red for errors. Install it:
brew install zsh-syntax-highlighting
echo "source $(brew --prefix)/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> ~/.zshrc
source ~/.zshrc
It highlights valid commands and options, underlines existing file paths, and matches bracket pairs. Catch typos before you hit enter.
See also: Enable Syntax Highlighting in Zsh
Enhance Ghostty with tmux and zoxide
Ghostty has built-in multiplexing, but tmux is worth adding if you need:
- Remote attach/detach workflows over SSH
- Session sharing across machines or teams
- A larger ecosystem and documentation
zoxide makes jumping between directories faster.
What is tmux and how can it help
tmux lets you manage multiple terminal sessions in one window. Useful for running background processes, sharing sessions with others, or keeping your setup across reboots.
brew install tmux
Then just type tmux to start a new session. More details: Tmux Basics
What is zoxide and how can it help
zoxide replaces cd with smarter navigation. It tracks your most-used directories so you can jump to them quickly with fuzzy matching.
brew install zoxide
echo 'eval "$(zoxide init zsh)"' >> ~/.zshrc
source ~/.zshrc
Now use z instead of cd to jump around. See: Zoxide Guide
With tmux, zoxide, and Ghostty together, you’ve got a solid terminal workflow—multiplexing, fast navigation, and GPU-powered rendering.
Known Ghostty Errors
’xterm-ghostty’: unknown terminal type
On some remote Linux machines, tools may not recognize Ghostty’s terminal type and you can see errors like: 'xterm-ghostty': unknown terminal type.
Quick fix for the current session:
export TERM=xterm-256color
Permanent fix on that machine:
echo "export TERM=xterm-256color" >> ~/.bashrc
source ~/.bashrc
If it only happens over SSH, set TERM conditionally in your shell config instead.
Conclusion
Ghostty feels like a terminal built for 2026. GPU rendering, native UI, the Inspector—it’s a step above what most terminals offer. It’s still actively developed, but it’s already solid enough to be your daily driver.
If you spend time in the terminal, give it a try. The setup is straightforward, and once configured, you’ve got a fast, responsive terminal that doesn’t get in your way.
Ghostty works great with Fish Shell too. If you’re looking for a shell upgrade, see my Fish Shell vs Bash vs Zsh comparison or set up Starship prompt with Fish.