Turbocharge Your Mac Terminal: The Ultimate Starship and Ghostty Setup Guide

Transform your Mac terminal with Ghostty + Starship: install, pick a preset, apply a clean prompt config, and add productivity tools like zoxide and eza.

Turbocharge Your Mac Terminal: The Ultimate Starship and Ghostty Setup Guide

Your Mac terminal is about to transform from a bland command-line interface into a sleek, fast tool that boosts productivity. In this guide, you’ll set up Ghostty (a GPU-accelerated terminal emulator) and Starship (a fast, cross-shell prompt) to build a modern day-to-day terminal environment.

You’ll start with a clean Ghostty config, apply a Starship preset (Tokyo Night or Catppuccin Powerline), then layer on practical upgrades like zoxide and eza (the modern replacement for ls). You’ll also get a small “safe edit” approach for your ~/.zshrc so you don’t accidentally duplicate init lines over time.

If you want a Ghostty-first overview (features, inspector, multiplexer vs tmux, etc.), read: Ghostty Terminal: A Complete Setup Guide for Modern Mac Development.

TL;DR: Quick setup (copy/paste)

Run these, then follow the sections below for the “why” and optional upgrades:

brew install --cask ghostty
brew install starship zoxide eza
brew install font-meslo-lg-nerd-font

Add Starship and zoxide once to your ~/.zshrc:

open -e ~/.zshrc

Add:

eval "$(starship init zsh)"
eval "$(zoxide init zsh)"

Pick a Starship preset:

mkdir -p ~/.config
starship preset tokyo-night -o ~/.config/starship.toml
# or:
# starship preset catppuccin-powerline -o ~/.config/starship.toml

Reload:

source ~/.zshrc

Now continue for the recommended Ghostty config, safer .zshrc editing notes, and Starship tweaks.

Why Ghostty and Starship?

Ghostty is a cutting-edge terminal emulator built with Zig for exceptional performance. It offers GPU acceleration, native macOS integration, and a straightforward configuration system, making it ideal for developers seeking speed and flexibility. Learn more at ghostty.org.

Starship is a cross-shell prompt that integrates seamlessly with Zsh, macOS’s default shell since Catalina. It delivers a fast, customizable prompt with prebuilt presets that display critical information like Git status, directory paths, and runtime environments in a visually appealing format. Explore its capabilities at starship.rs.

Together, Ghostty and Starship create a terminal experience that’s as efficient as it is elegant, tailored for developers who demand both form and function.

Step 1: Install Ghostty on Your Mac

To begin, install Ghostty using Homebrew, the preferred package manager for macOS:

brew install --cask ghostty

This command installs Ghostty into your Applications folder. If you don’t have Homebrew, set it up first:

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

Launch Ghostty from the Applications folder or by typing ghostty in your current terminal. Its performance is noticeably snappy, thanks to GPU acceleration. For alternative installation methods, visit ghostty.org/download.

Step 2: Install a Nerd Font for Enhanced Visuals

Starship’s rich prompt features rely on a font with extensive glyph support. Meslo Nerd Font is an excellent choice for its clarity and developer-friendly icons.

Install it via Homebrew:

brew install font-meslo-lg-nerd-font

Verify the font’s installation in Font Book by searching for “Meslo.” For additional font options, explore nerdfonts.com.

Step 3: Configure Ghostty for Optimal Appearance

Before you edit anything, make sure the config directory exists (Ghostty won’t read a file that isn’t there):

mkdir -p ~/.config/ghostty

Ghostty’s configuration file allows precise control over its look and feel. Create or edit the config file:

touch ~/.config/ghostty/config
open -e ~/.config/ghostty/config

Add the following configuration (simple, readable defaults you can tweak later):

font-family = MesloLGS Nerd Font Mono
font-size = 16
background-opacity = 0.85
theme = Argonaut

Quick checks:

  • List fonts: ghostty +list-fonts
  • List themes: ghostty +list-themes

This configuration:

  • Sets MesloLGS Nerd Font Mono as the font for clear, icon-rich rendering.
  • Uses a font size of 16 for readability.
  • Applies 85% background opacity for a subtle transparency effect.
  • Selects the Argonaut theme for a clean, professional look. List available themes with ghostty +list-themes or fonts with ghostty +list-fonts.

Save the file and restart Ghostty to apply the changes. Your terminal should now feel polished and responsive.

Step 4: Install Starship for a Dynamic Prompt

Starship elevates your prompt with contextual information and stunning visuals. Install it with Homebrew:

brew install starship

Integrate Starship with Zsh by adding it to your ~/.zshrc.

Instead of blindly appending with echo ... >> (which can create duplicates), open your config and add the init line once:

open -e ~/.zshrc

Add:

eval "$(starship init zsh)"

Then reload:

source ~/.zshrc

Sanity check:

starship --version

This ensures Starship loads with every new Zsh session. For other shells, refer to Starship’s installation guide.

Step 5: Apply Starship Presets for Instant Style

Starship’s presets provide ready-to-use configurations that save time while delivering professional aesthetics. We’ll explore two popular options: Tokyo Night and Catppuccin Powerline. Browse all presets at starship.rs/presets.

Option 1: Tokyo Night Preset

The Tokyo Night preset offers a dark, vibrant theme inspired by urban nightscapes, ideal for developers who thrive in a cyberpunk aesthetic.

Apply it with:

mkdir -p ~/.config
starship preset tokyo-night -o ~/.config/starship.toml

This creates a starship.toml file in ~/.config/. Inspect it with:

open -e ~/.config/starship.toml

The preset includes modules for Git status, current directory, and programming language versions, styled in Tokyo Night’s signature purples and blues. Restart your terminal or run source ~/.zshrc to see the result.

Option 2: Catppuccin Powerline Preset

For a softer, pastel-inspired look, the Catppuccin Powerline preset delivers a clean, powerline-style prompt with warm tones.

Apply it with:

mkdir -p ~/.config
starship preset catppuccin-powerline -o ~/.config/starship.toml

This overwrites the existing starship.toml. The preset features smooth segment transitions and a cohesive color scheme. Reload your shell with source ~/.zshrc to apply it.

Presets are a great start, but a couple of small changes usually make the prompt more practical: shorter paths, optional timestamps, and command duration for slow commands.

Open the config file:

open -e ~/.config/starship.toml

Below are small, safe additions you can paste at the end of the file. They work well with both Tokyo Night and Catppuccin.

# Keep the prompt responsive if anything external is slow
command_timeout = 1000

[directory]
truncation_length = 3
truncate_to_repo = true

[cmd_duration]
min_time = 500
format = "took [$duration]($style) "
style = "yellow bold"

Reload your shell:

source ~/.zshrc

Optional: show time (useful in SSH sessions)

[time]
disabled = false
format = "[$time]($style) "
time_format = "%R"

Optional: show battery (laptops)

[battery]
disabled = false

Optional: Git status styling

If you want clearer Git signals, keep it simple and avoid overly “busy” prompts:

[git_status]
style = "bold purple"

For a comprehensive list of modules and options, consult Starship’s configuration documentation.

Starship’s starship.toml file is your playground for tailoring the prompt to your workflow. Below are professional-grade tweaks to enhance functionality and aesthetics, building on the preset you’ve chosen.

If you prefer a more “information-dense” prompt (username/host, Node, etc.), add modules one at a time so you can keep the prompt fast and readable.

For example, enable Node.js only when you actually do Node work:

[nodejs]
disabled = false

Tip: if your prompt ever feels slow, disable modules you don’t need and keep command_timeout set (shown above).

Step 7: Install zoxide for Smarter Navigation

zoxide is an intelligent alternative to the cd command, learning your most frequently used directories and enabling quick navigation with the z command.

Install it with Homebrew:

brew install zoxide

Add it to your ~/.zshrc:

echo 'eval "$(zoxide init zsh)"' >> ~/.zshrc
source ~/.zshrc

Now, use z instead of cd. For example, z proj jumps to your ~/Projects directory if it’s frequently used. Over time, zoxide prioritizes your most-visited directories, making navigation effortless. Learn more at zoxide’s documentation.

Step 8: Install eza for Prettier Directory Listings

Note: eza is the modern replacement for ls (and what many people mean when they reference “exa” in older tutorials).

Replace the default ls command with eza, a modern tool that provides colorized, icon-rich directory listings.

Install it with Homebrew:

brew install eza

Add aliases to your ~/.zshrc for a better experience (again: add these once, don’t repeatedly append them):

open -e ~/.zshrc

Add:

alias ls="eza --icons"
alias ll="eza -l --icons"
alias la="eza -la --icons"

Reload:

source ~/.zshrc

These aliases:

  • ls: Lists files with icons for file types.
  • ll: Shows a detailed list with icons.
  • la: Includes hidden files in the detailed list.

Eza’s vibrant output makes directory navigation more intuitive. Explore its features at eza’s website.

Step 9: Create Custom Commands with Aliases

Streamline your workflow with custom aliases in your ~/.zshrc. These shortcuts save time for common tasks.

Add the following to ~/.zshrc:

# Quick edit configuration files
alias editstarship="vim ~/.config/starship.toml"
alias editghost="vim ~/.config/ghostty/config"

# Git shortcuts
alias gs="git status"
alias ga="git add"
alias gc="git commit -m"
alias gp="git push"

# Quick directory navigation
alias dev="cd ~/Development"
alias docs="cd ~/Documents"

Apply the changes:

source ~/.zshrc

These aliases:

  • Allow quick editing of Starship and Ghostty configs (editstarship, editghost).
  • Simplify Git commands (gs, ga, gc, gp).
  • Provide fast navigation to common directories (dev, docs).

Step 10: Bonus Zsh Plugins for Enhanced Productivity

Boost your terminal further with zsh-autosuggestions and zsh-syntax-highlighting, which improve command input and error detection.

Install them with Homebrew:

brew install zsh-autosuggestions zsh-syntax-highlighting

Add to your ~/.zshrc (place syntax-highlighting near the end of the file):

open -e ~/.zshrc

Add:

source $(brew --prefix)/share/zsh-autosuggestions/zsh-autosuggestions.zsh
source $(brew --prefix)/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh

Reload:

source ~/.zshrc
  • zsh-autosuggestions: Suggests commands based on your history, displayed in gray. Accept with the right arrow key.
  • zsh-syntax-highlighting: Highlights valid commands in green and invalid ones in red, catching errors before execution.

For detailed setup guides, see Enable Command Autocomplete in Zsh and Enable Syntax Highlighting in Zsh.

Troubleshooting: Ghostty Gotchas

Error: 'xterm-ghostty': unknown terminal type

Some tools may not recognize Ghostty’s terminal type. Fix it for the current session:

export TERM=xterm-256color

For a “permanent” solution, it’s safer to set this only for SSH so you don’t accidentally change behavior locally.

Add to your ~/.zshrc:

open -e ~/.zshrc

Add:

# Some servers don't know about Ghostty's TERM entry
if [[ -n "$SSH_CONNECTION" ]]; then
  export TERM=xterm-256color
fi

Reload:

source ~/.zshrc

FAQ

Starship vs Powerlevel10k: which should you use?

If you want a prompt that works across multiple shells and machines with minimal fuss, Starship is a great default. If you’re all-in on Zsh and want deep Zsh-native customization, Powerlevel10k is excellent.

Do you still need tmux if Ghostty has multiplexing?

For many local workflows, Ghostty’s built-in multiplexing is enough. If you rely on detaching/attaching remote sessions, long-running jobs on servers, or a mature ecosystem and portability, tmux still wins.

My prompt icons look broken—what’s wrong?

It’s almost always the font. Make sure Ghostty is set to a Nerd Font (for example, MesloLGS Nerd Font Mono) and restart the terminal.

Why do some remote servers show 'unknown terminal type'?

Some environments don’t ship Ghostty’s terminfo entry. Setting TERM=xterm-256color for SSH sessions is the simplest fix.

Conclusion

Your Mac terminal is now a high-performance, visually polished environment powered by Ghostty and Starship. With a preset you actually like, a few minimal Starship tweaks, and practical tools like zoxide, eza, and sensible aliases, you’ve got a setup that stays fast while still being informative.

Next steps:

For more inspiration, visit toolhunt.net’s Mac apps section or Starship’s preset gallery.