People keep asking what terminal setup I use. Here’s the complete thing - emulator, prompt, and theme - all configured to feel like one cohesive tool.

Ghostty

Ghostty 1.3.1 is the current release. Install it:

brew install ghostty

Minimal config at ~/.config/ghostty/config:

font-family = JetBrains Mono
font-size = 14
theme = catppuccin-mocha
background-opacity = 0.95
scrollbar = never
copy-on-select = false

That’s the base. theme = catppuccin-mocha is built into Ghostty - no plugin needed. The deep-dive on config options is in my Ghostty 1.3 config post, and the tmux setup is covered in Ghostty + tmux.

Starship Prompt

brew install starship

Add to ~/.zshrc:

eval "$(starship init zsh)"

Then ~/.config/starship.toml:

palette = "catppuccin_mocha"

[palettes.catppuccin_mocha]
rosewater = "#f5e0dc"
flamingo  = "#f2cdcd"
mauve     = "#cba6f7"
red       = "#f38ba8"
peach     = "#fab387"
yellow    = "#f9e2af"
green     = "#a6e3a1"
blue      = "#89b4fa"
text      = "#cdd6f4"
surface1  = "#45475a"
base      = "#1e1e2e"

[git_branch]
format = "[$symbol$branch]($style) "
style = "bold mauve"

[git_status]
format = "([$all_status$ahead_behind]($style) )"
style = "bold red"

[cmd_duration]
min_time = 2000
format = "[$duration]($style) "
style = "yellow"

[nodejs]
format = "[$symbol($version )]($style)"
style = "green"

[python]
format = "[$symbol($version )]($style)"
style = "peach"

[character]
success_symbol = "[❯](bold green)"
error_symbol   = "[❯](bold red)"

The palette = "catppuccin_mocha" at the top is the key - every color reference in your format strings resolves from the palette block below it. You can trim that palette down to only the colors you actually use.

tmux - No Jarring Color Switch

If you’re running tmux inside Ghostty, the status bar is where the mismatch shows up. The catppuccin/tmux plugin fixes it. With TPM:

# ~/.tmux.conf
set -g @plugin 'catppuccin/tmux'
set -g @catppuccin_flavor 'mocha'

Then prefix + I to install.

Neovim

-- lazy.nvim
{ "catppuccin/nvim", name = "catppuccin", priority = 1000 }

Then in your init:

vim.cmd.colorscheme "catppuccin-mocha"

That’s the whole chain - Ghostty, Starship, tmux, Neovim, all mocha. Open a terminal and it looks like it was designed together, because it was.

All the Files

~/.config/ghostty/config     → theme = catppuccin-mocha
~/.config/starship.toml      → palette = "catppuccin_mocha"
~/.tmux.conf                 → @catppuccin_flavor 'mocha'
~/.config/nvim/              → colorscheme catppuccin-mocha

Pick mocha, pick it everywhere, done.