Skip to content

Mac OS X development environment setup: Easy-to-understand instructions with automated setup scripts for developer tools like Vim, Sublime Text, Bash, iTerm, Python data analysis, Spark, Hadoop MapReduce, AWS, Heroku, JavaScript web development, Android development, common data stores, and dev-based OS X defaults.

Notifications You must be signed in to change notification settings

paul-phan/dev-setup

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

363 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Modern macOS Dev Setup (2026 Edition) πŸš€

A comprehensive, cutting-edge automated developer setup for macOS with modern tools, parallel installation, and complete automation.

Features ✨

Core Improvements (2026)

  • ⚑ Parallel Installation: 3-5x faster setup through concurrent operations
  • 🎯 Progress Tracking: Real-time progress indicators with time estimates
  • πŸ”„ Auto-Retry Logic: Resilient against network failures with exponential backoff
  • πŸ” Complete Automation: SSH/GPG keys + GitHub CLI authentication out-of-the-box
  • βœ… Idempotent: Run multiple times safely without side effects

Modern Tools Stack

  • Package Management: Homebrew with declarative Brewfile
  • Shell: Zsh + Oh My Zsh + Starship prompt
  • Version Management: Mise (unified Node/Python/Ruby/etc)
  • Python: UV (10-100x faster than pip)
  • Shell History: Atuin (SQLite-backed, searchable, synced)
  • Terminal Multiplexer: Zellij (modern tmux alternative)

Rust CLI Tools (Replacing Unix classics)

  • eza β†’ modern ls with icons & git status
  • bat β†’ modern cat with syntax highlighting
  • ripgrep β†’ faster grep with smart defaults
  • fd β†’ modern find with intuitive syntax
  • dust β†’ modern du with tree visualization
  • procs β†’ modern ps with better output
  • zoxide β†’ smarter cd with frecency
  • git-delta β†’ beautiful git diffs
  • btop β†’ modern htop with graphs

Terminals & Editors

  • Ghostty - GPU-accelerated terminal
  • Warp - Modern terminal with AI
  • Cursor - AI-native code editor
  • VS Code with essential extensions

AI Development Tools

Productivity & Browsers

  • Raycast - Spotlight replacement
  • Arc - Modern browser with workspaces

Quick Start ⚑️

Clone the repository and run the automated setup:

git clone git@github.com:paul-phan/dev-setup.git
cd dev-setup
chmod +x setup.sh
./setup.sh

What it does:

  • βœ… Installs Xcode CLI Tools & Homebrew
  • βœ… Installs all modern tools (UV, Mise, Atuin, Zellij, Carapace, etc)
  • βœ… Sets up shell (Zsh + Oh My Zsh + Starship + powerful autocompletion)
  • βœ… Generates SSH & GPG keys automatically
  • βœ… Configures GitHub CLI authentication
  • βœ… Installs VS Code extensions (parallel)
  • βœ… Configures macOS system defaults
  • βœ… Shows real-time progress with time estimates

Time: ~10-15 minutes

Post-Setup Steps

After running the setup script:

  1. Restart your terminal to load new shell configuration
  2. Install Cursor IDE (optional): https://cursor.sh/download
  3. Install Antigravity (optional): https://antigravity.google/download
  4. Configure Raycast: Open from Applications and set as Spotlight replacement

Autocompletion Features 🎯

Your terminal now has cutting-edge autocompletion powered by modern tools:

What You Get:

  1. Carapace - Smart completions for 1000+ commands

    • Knows valid flags, arguments, and values for git, docker, npm, kubectl, etc.
    • Context-aware (suggests only valid options)
    • Faster than traditional completion scripts
  2. zsh-autosuggestions - Fish-like inline suggestions

    • Gray text appears as you type (from your history)
    • Press β†’ or Ctrl+Space to accept
  3. zsh-syntax-highlighting - Real-time validation

    • Green = valid command
    • Red = invalid/not found
    • Helps catch typos before hitting Enter
  4. Atuin - Magical history search

    • Press ↑ for fuzzy history search
    • SQLite-backed, searchable, synced across machines
  5. fzf - Fuzzy finder integration

    • Ctrl+R - Search command history
    • Ctrl+T - Find files (with preview!)
    • Alt+C - Change directory (fuzzy)

How It Works:

# Start typing, see suggestions appear in gray
git comβ–ˆ          # Shows: git commit (from history)
                  # Press β†’ to accept

# Tab completion with Carapace
git <Tab>         # Shows all git subcommands
git commit -<Tab> # Shows all commit flags with descriptions

# Fuzzy history search (Atuin)
↑                 # Opens interactive search
# Type: "docker run" β†’ finds all docker run commands

# Fuzzy file finder (fzf)
Ctrl+T            # Opens file browser with preview
                  # Type to filter, Enter to select

# Fuzzy directory changer
Alt+C             # Opens directory browser
                  # Jump to any directory quickly

Pro Tips:

# Accept partial suggestion (zsh-autosuggestions)
Alt+β†’             # Accept one word from suggestion

# Navigate completion menu
Tab               # Open menu
Tab Tab           # Cycle through options
Shift+Tab         # Reverse cycle
Ctrl+N/P          # Next/Previous in menu

# Search while in completion menu
/pattern          # Filter completions (with Carapace)

Modern Tools Usage πŸ“š

Mise - Unified Version Manager

# Install Node.js
mise use --global node@20

# Install Python
mise use --global python@3.12

# Install multiple versions
mise use node@18 node@20 python@3.11 python@3.12

# Auto-switch based on .tool-versions
cd my-project  # Automatically uses versions from .tool-versions

UV - Fast Python Package Manager

# Create virtual environment (10-100x faster than venv)
uv venv

# Install packages (blazing fast)
uv pip install requests pandas numpy

# Install from requirements.txt
uv pip install -r requirements.txt

Atuin - Magical Shell History

# Search history interactively
atuin search

# Search for specific command
atuin search "git commit"

# Sync history across machines (optional)
atuin login
atuin sync

Zellij - Modern Terminal Multiplexer

# Start session
zellij

# Create new pane: Ctrl+p then n
# Switch panes: Ctrl+p then arrow keys
# Create new tab: Ctrl+t then n

Customization πŸ› οΈ

  • Dependencies: Edit Brewfile to add/remove apps or tools
  • Shell: Edit .zshrc (user config) or .aliases (shortcuts)
  • Git: Edit .gitconfig
  • Setup Script: Modify setup-2026.sh for custom automation

Troubleshooting πŸ”§

Setup fails during Homebrew installation

# Clean up and retry
rm -rf /opt/homebrew
./setup-2026.sh

SSH key not working with GitHub

# Verify SSH key is added to ssh-agent
ssh-add -l

# Test GitHub connection
ssh -T git@github.com

VS Code extensions not installing

# Ensure VS Code CLI is in PATH
which code

# If not found, open VS Code and run:
# Cmd+Shift+P β†’ "Shell Command: Install 'code' command in PATH"

What's New in 2026 Edition πŸ†•

  • ⚑ 3-5x faster setup through parallel installation
  • 🎯 Progress tracking with real-time status updates
  • πŸ”„ Auto-retry logic for network-related failures
  • πŸ” Automated SSH/GPG key generation & GitHub setup
  • 🎯 Cutting-edge autocompletion: Carapace (1000+ commands), zsh-autosuggestions, fzf, Atuin
  • πŸ“¦ Modern tools: UV, Mise, Atuin, Zellij, Carapace
  • πŸ¦€ Rust CLI tools: fd, dust, procs, btop, git-delta
  • πŸ€– Cursor IDE support (AI-native editor)
  • 🌐 Arc browser (modern browser with workspaces)
  • βœ… Idempotent design - run multiple times safely
  • πŸ“ Better logging - detailed logs in ~/.setup-logs/

Credits

2026 comprehensive rewrite with modern tools, parallel installation, and complete automation.

Based on the original dev-setup by Donne Martin.

About

Mac OS X development environment setup: Easy-to-understand instructions with automated setup scripts for developer tools like Vim, Sublime Text, Bash, iTerm, Python data analysis, Spark, Hadoop MapReduce, AWS, Heroku, JavaScript web development, Android development, common data stores, and dev-based OS X defaults.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 95.2%
  • Ruby 4.8%