Guide

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.

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:

  1. Clone your projects
  2. Set up project-specific tools as needed
  3. 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.

mac setup developer setup macos development homebrew mac developer tools new mac setup