I set up a new Mac last month. Here's exactly what I installed.
No fluff. Just the tools I actually use daily, in install order.
Package Manager
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Everything below assumes you have Homebrew.
Terminal & Shell
brew install --cask iterm2
brew install zsh-autosuggestions zsh-syntax-highlighting
brew install starship # Cross-shell prompt
echo 'eval "$(starship init zsh)"' >> ~/.zshrc
Why starship: One config file, works across bash/zsh/fish, shows git branch + Python env + Node version automatically.
Git & GitHub
brew install git gh lazygit
gh auth login
lazygit is the tool I recommend most. Terminal UI for git that makes rebasing, cherry-picking, and resolving conflicts painless.
Code Editors
brew install --cask visual-studio-code cursor
VS Code for most things. Cursor for AI-heavy coding sessions.
Programming Languages
brew install python@3.12 node nvm
brew install go rustup
rustup-init
CLI Utilities (the good stuff)
brew install \
jq \ # JSON processor
ripgrep \ # Better grep (rg)
fd \ # Better find
bat \ # Better cat (with syntax highlighting)
eza \ # Better ls
fzf \ # Fuzzy finder
htop \ # Better top
tldr \ # Better man pages
httpie \ # Better curl (for humans)
duf \ # Better df (disk usage)
dust \ # Better du (directory sizes)
procs \ # Better ps
dog \ # Better dig (DNS)
gping # Better ping (with graph)
The "better X" tools are genuinely life-changing. Once you use ripgrep you'll never go back to grep.
Docker & Containers
brew install --cask docker
brew install docker-compose lazydocker
lazydocker = lazygit but for Docker. Terminal UI for managing containers.
Database Tools
brew install postgresql@16 redis sqlite
brew install --cask dbeaver-community
API & HTTP
brew install --cask postman insomnia
brew install curl wget
Python-Specific
pip install \
ruff \ # Linter + formatter (replaces black, isort, flake8)
ipython \ # Better Python REPL
httpx \ # Better requests
rich \ # Beautiful terminal output
typer # Build CLIs fast
Automation & Scraping
pip install playwright scrapy beautifulsoup4
playwright install
npm install -g apify-cli
apify login
I maintain 77 scrapers on Apify so these are essential.
Misc Apps
brew install --cask \
rectangle \ # Window management (free)
raycast \ # Spotlight replacement
notion \ # Notes
obsidian \ # Second brain
1password # Passwords
My one-liner setup script
I keep all of this in a single script:
#!/bin/bash
# setup.sh — run on fresh Mac
set -e
# Install Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Core tools
brew install git gh lazygit jq ripgrep fd bat eza fzf htop tldr httpie python@3.12 node
# Cask apps
brew install --cask iterm2 visual-studio-code docker rectangle raycast
# Python tools
pip install ruff ipython httpx rich playwright
playwright install
# Shell setup
brew install starship zsh-autosuggestions zsh-syntax-highlighting
echo 'eval "$(starship init zsh)"' >> ~/.zshrc
echo "Done! Restart terminal."
Save it. Run it on every new Mac. 15 minutes to a fully configured dev environment.
What's on YOUR new Mac install list that I'm missing? I'm especially curious about tools I haven't heard of.
Follow me for more developer productivity content. I write about automation and build open-source tools.
More from me: 10 Dev Tools I Use Daily | 77 Scrapers on a Schedule | 150+ Free APIs
Top comments (0)