Setting up a fresh macOS terminal doesn’t have to be painful. In this guide, I walk through my go-to setup — Ghostty as the terminal emulator, Starship for a clean prompt, and a curated set of modern CLI tools like eza, bat, ripgrep, and zoxide that replace the defaults with something faster and more enjoyable. Whether you’re starting from scratch or refining your workflow, this is a quick reference to get up and running.

1. Install Ghostty (Terminal Emulator)

Download from ghostty.org or:

brew install --cask ghostty

Config lives at ~/.config/ghostty/config. Example:

font-family = JetBrainsMono Nerd Font
font-size = 14
theme = catppuccin-mocha
window-padding-x = 10
window-padding-y = 10

You’ll need a Nerd Font for icons — install one with:

brew install --cask font-jetbrains-mono-nerd-font

2. Install Homebrew (if you don’t have it)

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Then add to ~/.zprofile:

eval "$(/opt/homebrew/bin/brew shellenv)"

3. Install CLI Tools

All at once:

brew install eza bat fd ripgrep zoxide fzf neovim lazygit btop starship zsh-autosuggestions zsh-syntax-highlighting
Tool Replaces What it does
eza ls Better file listing with icons & colors
bat cat Syntax-highlighted file viewer
fd find Faster, simpler file finder
ripgrep (rg) grep Blazing fast search
zoxide cd Smart directory jumper (learns your habits)
fzf Fuzzy finder for everything
neovim vim Modern vim
lazygit Terminal UI for git
btop top/htop Beautiful system monitor
starship shell theme Fast, customizable prompt
zsh-autosuggestions History-based command suggestions as you type
zsh-syntax-highlighting Colors valid/invalid commands in real-time

4. Configure ~/.zshrc

Replace your ~/.zshrc with:

# ── Aliases ──
alias n='nvim'
alias ll='eza -la --icons'
alias ls='eza --icons'
alias cat='bat'
alias find='fd'
alias grep='rg'
alias lg='lazygit'
alias top='btop'

# ── Zoxide (smart cd) ──
eval "$(zoxide init zsh)"
alias cd='z'

# ── fzf ──
[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh
alias ff='fzf --preview "bat --color=always {}"'

# ── Autosuggestions & Syntax Highlighting ──
source $(brew --prefix)/share/zsh-autosuggestions/zsh-autosuggestions.zsh
source $(brew --prefix)/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh

# ── Prompt (Starship) ──
eval "$(starship init zsh)"

5. Configure Starship Prompt

Create ~/.config/starship.toml. A minimal starting point:

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

[directory]
truncation_length = 3

[git_branch]
symbol = " "

Full options: starship.rs/config


6. Open a New Terminal

Close and reopen Ghostty. You should now have autosuggestions (gray text as you type), syntax highlighting (green/red commands), and the Starship prompt.


Cheat Sheet

Shortcut What it does
ll List files with details & icons
cat file.txt View file with syntax highlighting
cd projects Smart jump (learns frequent dirs)
ff Fuzzy find files with preview
lg Open lazygit
n file.txt Open in neovim
top System monitor
Right arrow Accept autosuggestion