Mac Developer Setup Guide 2025: From Zero to Productive
A complete guide to setting up your Mac for software development—covering terminal, package managers, editors, languages, and productivity tools.
You’ve got a new Mac. Here’s how to turn it into a proper development machine in under an hour.
This guide is opinionated—I’ll tell you what to install and why, not list every possible option. Adjust to your needs, but this setup works for web development, backend work, and most general programming.
Before You Start
Update macOS to the latest version. System Preferences → General → Software Update.
This ensures you have the latest security patches and developer tools compatibility.
1. Install Xcode Command Line Tools
Open Terminal and run:
xcode-select --install
This installs Git, compilers, and other essential tools. You don’t need the full Xcode app unless you’re doing iOS development.
2. Install Homebrew
Homebrew is the package manager for macOS. You’ll use it to install almost everything else.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
After installation, follow the instructions to add Homebrew to your PATH. For Apple Silicon Macs:
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zshrc
source ~/.zshrc
Verify it works:
brew --version
3. Install a Better Terminal
The default Terminal.app works, but modern alternatives are faster and more pleasant.
Option A: Warp (Recommended for Beginners)
brew install --cask warp
Warp has AI features, modern UI, and works great out of the box.
Option B: iTerm2 (Classic Choice)
brew install --cask iterm2
Highly customizable, proven, no account required.
Option C: Alacritty (Minimalist)
brew install --cask alacritty
Blazing fast, GPU-accelerated, requires more configuration.
4. Configure Your Shell
macOS uses Zsh by default. Let’s make it better.
Install Oh My Zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
This adds themes, plugins, and sensible defaults.
Add Useful Plugins
Edit ~/.zshrc and update the plugins line:
plugins=(git z docker npm yarn)
- git: Git aliases and completion
- z: Jump to frequently used directories
- docker: Docker command completion
- npm/yarn: Package manager completion
Set a Theme
The robbyrussell default is fine. For something fancier, try Starship:
brew install starship
echo 'eval "$(starship init zsh)"' >> ~/.zshrc
Reload your config:
source ~/.zshrc
5. Install Essential CLI Tools
# Modern replacements for standard tools
brew install eza # Better 'ls'
brew install bat # Better 'cat' with syntax highlighting
brew install ripgrep # Better 'grep'
brew install fd # Better 'find'
brew install fzf # Fuzzy finder
brew install jq # JSON processor
brew install htop # Better 'top'
brew install tldr # Simplified man pages
# Git tools
brew install gh # GitHub CLI
brew install git-delta # Better git diffs
Add aliases to ~/.zshrc:
alias ls="eza"
alias cat="bat"
alias grep="rg"
alias find="fd"
6. Install Your Code Editor
VS Code
brew install --cask visual-studio-code
Install the code command for terminal: Open VS Code → Cmd+Shift+P → “Shell Command: Install ‘code’ command”
Cursor (AI-Native)
brew install --cask cursor
Fork of VS Code with built-in AI. See our VS Code vs Cursor comparison.
Zed (Performance-Focused)
brew install --cask zed
Blazing fast, built in Rust. See our Zed vs VS Code comparison.
7. Install Programming Languages
Node.js (via nvm)
Don’t install Node directly—use a version manager:
brew install nvm
Add to ~/.zshrc:
export NVM_DIR="$HOME/.nvm"
[ -s "/opt/homebrew/opt/nvm/nvm.sh" ] && \. "/opt/homebrew/opt/nvm/nvm.sh"
Reload and install Node:
source ~/.zshrc
nvm install --lts
nvm use --lts
Python (via pyenv)
brew install pyenv
Add to ~/.zshrc:
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
Install Python:
source ~/.zshrc
pyenv install 3.12
pyenv global 3.12
Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Go
brew install go
8. Install Docker
For running containers locally:
brew install --cask docker
Open Docker Desktop once to complete setup.
Alternative: OrbStack (faster, lighter):
brew install --cask orbstack
See our Docker Desktop alternatives guide.
9. Install Databases (Optional)
Only install what you actually need:
# PostgreSQL
brew install postgresql@16
brew services start postgresql@16
# Redis
brew install redis
brew services start redis
# MongoDB
brew tap mongodb/brew
brew install mongodb-community
brew services start mongodb-community
For GUI management:
brew install --cask tableplus # Multi-database GUI
10. Install Productivity Apps
# Window management
brew install --cask rectangle # Free window snapping
# Spotlight replacement
brew install --cask raycast # Powerful launcher (free tier is great)
# Screenshot tool
brew install --cask shottr # Better screenshots
# Menu bar management
brew install --cask hiddenbar # Hide menu bar icons
11. Configure Git
Set your identity:
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
Set sensible defaults:
git config --global init.defaultBranch main
git config --global pull.rebase true
git config --global push.autoSetupRemote true
Generate SSH Key
ssh-keygen -t ed25519 -C "you@example.com"
Start the SSH agent and add your key:
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
Copy your public key:
pbcopy < ~/.ssh/id_ed25519.pub
Add it to GitHub: Settings → SSH and GPG keys → New SSH key
12. macOS System Settings
These tweaks make macOS more developer-friendly.
Show Hidden Files in Finder
defaults write com.apple.finder AppleShowAllFiles -bool true
killall Finder
Show Path Bar in Finder
defaults write com.apple.finder ShowPathbar -bool true
Faster Key Repeat
defaults write NSGlobalDomain KeyRepeat -int 2
defaults write NSGlobalDomain InitialKeyRepeat -int 15
Disable Auto-Correct
defaults write NSGlobalDomain NSAutomaticSpellingCorrectionEnabled -bool false
Restart your Mac for all changes to take effect.
Quick Reference: Essential Commands
# Homebrew
brew update # Update package list
brew upgrade # Upgrade installed packages
brew cleanup # Remove old versions
brew list # Show installed packages
# Node/npm
nvm ls # List installed Node versions
nvm use 20 # Switch to Node 20
npm list -g # Show global packages
# Git
gh repo clone owner/repo # Clone via GitHub CLI
gh pr create # Create pull request
# General
z project-name # Jump to directory (after using it once)
tldr git commit # Quick command reference
Next Steps
Your Mac is ready for development. From here:
- Clone your projects
- Set up project-specific tools as needed
- Explore your editor’s extensions
For maintaining this setup across machines, look into dotfiles—version-controlled configuration files that let you recreate your environment anywhere.
Summary Checklist
- Update macOS
- Install Xcode Command Line Tools
- Install Homebrew
- Install terminal (Warp/iTerm2/Alacritty)
- Configure Zsh with Oh My Zsh
- Install CLI tools (eza, bat, ripgrep, etc.)
- Install code editor
- Install language version managers (nvm, pyenv)
- Install Docker
- Configure Git and SSH
- Apply macOS tweaks
Total time: 45-60 minutes for a fully configured development environment.