Your terminal is where you live as a dev. This guide turns that bland default setup into something you'll actually want to open — autocompletion, syntax highlighting, a clean prompt, and pro tools included. Let’s be real: the default terminal is ugly. Plain text, no color, no context. And you’re going to spend hours in there. This guide takes you from zero to a setup that looks professional and feels comfortable — no prior customization experience needed. Works on macOS, Linux, and WSL. About 30 minutes of your time. The package manager that ties everything together. macOS: Linux / WSL: Bash is fine. Zsh is better — more plugins, smarter autocompletion, better ecosystem. The framework that makes Zsh actually usable out of the box. Two plugins that will permanently change how you type commands. Starship (next step) uses icons. You need a font that supports them. macOS: Linux / WSL: download Fira Code Nerd Font and install it manually. Then go to your terminal preferences and set the font to Replaces the boring default prompt with one that shows: current directory, git branch, exit codes, project language, and more. Starship works across any shell. If you ever switch to Fish or Bash, you don’t lose a thing. When you switch machines, you don’t want to redo all of this. GNU Stow creates symlinks automatically. Your configs live in the repo, but behave as if they’re in Icons not showing → Make sure you selected the Nerd Font in your terminal preferences. Command not found after installing something → Run Weird characters in the prompt → The Nerd Font isn’t active in your terminal emulator. Your setup is solid. If you want to go further: Terminal Makeover: From Boring to Beautiful 🎨
What you’ll end up with
1. Install Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zshrc
eval "$(/opt/homebrew/bin/brew shellenv)"/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> ~/.bashrc
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
2. Switch to Zsh
brew install zsh
chsh -s $(which zsh)
3. Oh My Zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
4. Essential plugins
brew install zsh-syntax-highlighting zsh-autosuggestions
echo 'source $(brew --prefix)/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh' >> ~/.zshrc
echo 'source $(brew --prefix)/share/zsh-autosuggestions/zsh-autosuggestions.zsh' >> ~/.zshrc
→
5. Nerd Font
brew tap homebrew/cask-fonts
brew install --cask font-fira-code-nerd-fontFiraCode Nerd Font.
6. Starship — the prompt
brew install starship
echo 'eval "$(starship init zsh)"' >> ~/.zshrc
7. Dev tools you’ll use every day
brew install bat eza ripgrep gh
echo 'alias ls="eza --icons --git"' >> ~/.zshrc
echo 'alias cat="bat"' >> ~/.zshrcTool Replaces Why batcatSyntax highlighting, pagination, line numbers ezalsIcons, git status, colors ripgrepgrepWay faster, respects .gitignore by defaultghbrowser GitHub’s official CLI
8. Version your setup with dotfiles
brew install stow
mkdir ~/dotfiles && cd ~/dotfiles
git init
mv ~/.zshrc ~/dotfiles/.zshrc
mv ~/.config/starship.toml ~/dotfiles/starship.toml
stow dotfiles~.
Quick troubleshooting
source ~/.zshrc or restart your terminal.
What’s next
ls ~/.oh-my-zsh/themes
terminal productivity tools