Automate the installation and configuration of a full macOS development environment: CLI tools, programming languages, editors, and system preferences.
.
├── git/
│   ├── .gitconfig
│   ├── .gitignore_global
│   └── install.sh
├── languages/
│   ├── dotnet.sh
│   ├── go.sh
│   ├── java.sh
│   ├── javascript.sh
│   ├── latex.sh
│   ├── python.sh
│   └── rust.sh
├── zsh/
│   ├── .zshrc
│   └── install.sh
├── browsers.sh
├── cli_tools.sh
├── devtools.sh
├── essential.sh
├── ides.sh
├── install.sh
├── macos.sh
├── terminal.sh
├── tools.sh
└── README.mdgit clone https://github.com/ben196888/mac-set-up.git
cd mac-set-upchmod +x install.sh
./install.shComment out any steps in
install.shif you only want part of the setup.
- 
Download this repo as a ZIP from GitHub Download ZIP
 - 
Extract the ZIP file and navigate to the folder:
 
cd ~/Downloads/mac-set-up-master  # Or wherever you unzipped it- Run the installer:
 
chmod +x install.sh
./install.sh- Zsh config: with Starship, Oh My Zsh, and language-aware prompts
 - Git setup: with aliases, delta, and conditional editor logic
 - VS Code + Cursor: with settings sync and optional extension restore
 - Terminal: Warp + shell utilities
 - Languages: Go, Python, Node (via n), Rust, Java (via SDKMAN), .NET (via Homebrew), LaTeX
 - Browsers: Firefox, Chrome, Edge, DuckDuckGo
 - Dev Tools: OrbStack (Docker), kubectl, Postman, Google Cloud SDK, ChatGPT, Raycast
 - System Preferences: Dock, trackpad gestures, key remapping, fast repeat rate
 
- All 
.zshrcadditions are conditional to avoid errors if tools aren't installed macos.shapplies safedefaults writeandhidutilchanges (some may require logout/reboot)- You can export/import GUI app settings (like Rectangle) separately if needed
 
- Implement checkpoint/resume mechanism to allow interrupted installations to continue from the last successful step, with progress tracking and state persistence
 - Add login item setup via 
osascript(e.g., for Raycast or Rectangle) - Add versioned 
global.jsonfor .NET SDK pinning - Add sync logic for VS Code extensions
 - Add robust brew cask installation handling with pre-installation checks and force flags to prevent interruptions from existing app installations
 - Add checks for npm global installations to prevent conflicts with Homebrew-installed packages (e.g., yarn, pnpm)
 
MIT — use it, fork it, improve it.