A curated, opinionated checklist for spinning up a fresh macOS machine in 2025.
Goal: Be fully productive (coding, design, comms) in ~30 minutes with repeatable commands and sensible defaults.
System & UX Setup
1. Update macOS
Ensures the latest security patches, Xcode SDKs, and firmware.
- Open System Settings → General → Software Update.
- Install any pending updates, then reboot before continuing.
2. Install Homebrew
The package manager for everything that isn't on the Mac App Store.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"eval "$(/opt/homebrew/bin/brew shellenv)" # add to ~/.zprofile3. System Apps
Core utilities that shape the desktop experience.
brew install --cask ghostty raycast shottr rectangle maccy monitorcontrol- Raycast - Spotlight-replacement launcher for faster search, powerful extensions, and clipboard history
- Ghostty - Minimal GPU-accelerated terminal with blazing-fast, TTY-style text rendering
- Rectangle - Window manager for quick ⌥⌘→ tiling, multi-display-aware
- Shottr - Screenshot utility with instant markup, redaction, and auto-copy to clipboard
- Maccy - Clipboard manager with plain-text history synced across apps
Ghostty config (~/.config/ghostty/config.toml):
font-family='Menlo'theme='flexoki-dark'font-size=16window-padding-balance=truemouse-hide-while-typing=trueDevelopment Environment
4. Developer Tooling
xcode-select --installbrew install git nvm gh vercel-cli wget miniconda nvim- git - version control
- nvm - per-project Node versions
- gh - GitHub CLI for PRs & issues
- vercel-cli - instant Next.js deploys
- wget - classic download tool
- miniconda - lightweight Python env manager
5. Install Node via NVM
nvm install --ltsnvm use --ltsnvm alias default lts/*6. Development Apps
brew install --cask cursor zed httpie linear-linear- Cursor - AI-pair-programmer built on VS Code
- Zed - ultra-fast collaborative editor by Atom's creators
- HTTPie Desktop - delightful REST & GraphQL client
- Linear - native macOS wrapper for Linear issue tracker
7. Oh My Zsh (+ Plugins)
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
# Plugins:git clone https://github.com/zsh-users/zsh-autosuggestions \ ~/.oh-my-zsh/custom/plugins/zsh-autosuggestionsgit clone https://github.com/zsh-users/zsh-syntax-highlighting \ ~/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting.zshrc snippet:
plugins=(git zsh-autosuggestions zsh-syntax-highlighting)8. Install pnpm
npm install -g pnpm@latest-109. Install Bun
curl -fsSL https://bun.sh/install | bash10. Neovim via Kickstart
git clone https://github.com/nvim-lua/kickstart.nvim.git \ "${XDG_CONFIG_HOME:-$HOME/.config}"/nvim11. Handy Aliases (in .zshrc)
# PNPMalias p='pnpm'alias pb='pnpm build'alias pd='pnpm dev'
# Gitalias gs='git send'
# Bunalias b='bun'alias bb='bun build'alias bd='bun dev'12. Global Git Config
[alias] send = "!f() { git add . && git commit -m \"${1:-wip}\" && git push; }; f"[user] name = Bridger Tower email = bridgertower@gmail.com[init] defaultBranch = mainProductivity & Collaboration
13. Messaging Apps
brew install --cask discord slack whatsapp14. Productivity Apps
brew install --cask notion obsidian notion-calendar ticktick spotify15. Design Apps
brew install --cask adobe-creative-cloud figma imageoptim fontbaseOther Apps to install via Apple App Store
- Bear: Markdown editor for macOS
- Davinci Resolve: Video editing software for macOS
AI & Automation
16. AI / Local LLM Apps
brew install --cask claude chatgpt ollama17. Claude Code CLI
npm install -g @anthropic-ai/claude-codemacOS Customization
Automated macOS Defaults Script
Use the following script to set macOS defaults for a cleaner and more developer-friendly experience.
Run each command individually, or save them in a shell script (e.g., macos-defaults.sh) and execute it with bash macos-defaults.sh.
# Show all filename extensions in Finderdefaults write NSGlobalDomain AppleShowAllExtensions -bool true
# Set Finder view to Column by defaultdefaults write com.apple.finder FXPreferredViewStyle -string "clmv"
# Show Path Bar in Finderdefaults write com.apple.finder ShowPathbar -bool true
# Set fast key repeat ratedefaults write NSGlobalDomain KeyRepeat -int 1defaults write NSGlobalDomain InitialKeyRepeat -int 10
# Disable auto-correctdefaults write NSGlobalDomain NSAutomaticSpellingCorrectionEnabled -bool false
# Always expand save and print panels by defaultdefaults write NSGlobalDomain NSNavPanelExpandedStateForSaveMode -bool truedefaults write NSGlobalDomain PMPrintingExpandedStateForPrint -bool true
# Prevent Photos from opening automatically when devices are plugged indefaults -currentHost write com.apple.ImageCapture disableHotPlug -bool true
# Set screenshot location to ~/Desktop/Screenshotsmkdir -p ~/Desktop/Screenshotsdefaults write com.apple.screencapture location ~/Desktop/Screenshots
# Save screenshots in PNG formatdefaults write com.apple.screencapture type -string "png"
# Restart Finder to apply changeskillall FinderThese defaults help streamline Finder, boost typing responsiveness, and reduce distractions. Customize further as needed!