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.