A highly opinionated, modular, and repeatable way to bootstrap a macOS machine for development. This setup includes CLI tools, apps, language environments, and dotfiles β with sensible defaults and a modular structure for easy customization.
This repository provides a personal set of scripts and configuration files to automate and standardize how I set up my macOS development environment.
Feel free to adapt it to your own needs.
If you spot a bug, have a suggestion, or want to contribute improvements, please open an issue
As this bootstrap is tailored to my personal development workflow. It assumes:
- You're comfortable using the terminal and command-line tools
- You understand what each step does, or you're willing to read the source scripts
- You accept responsibility for the changes it will make to your system
Do not use this on a production machine or a shared device unless you know exactly what you're doing.
- β Software Updates
- π Directory Structure:
~/code/{learn,personal,work,playground} - πΊ Homebrew (package manager)
- π§ CLI Tools (e.g.,
git,bat,fzf,zoxide,tldr,neovim, etc.) - π§ Shell Setup (
oh-my-zsh, Powerlevel10k, plugins) - π Python via
pyenv,poetry,pipenv,uv - π§βπ» Node.js via
nvm - β Java SDKs via
sdkman - π³ Docker & Kubernetes (
kind,kubectl,helm) - βοΈ Cloud CLIs: AWS, Azure, GCP, Terraform
- π» GUI Apps (e.g., Chrome, Firefox Dev, VSCode, iTerm2, JetBrains Toolbox, Slack, Obsidian)
- π΅ Optional personal apps: Discord, Signal, Zoom, Spotify, WhatsApp, NordVPN
- π§Ό Dotfiles setup for
.zshrc,.p10k.zsh,.editorconfig, andgitconfigwith per-folder overrides
Before beginning, Xcode Command Line Tools must be installed. These are required for git, make,Homebrew, and many essential development utilities.
- β Install Xcode Command Line Tools:
xcode-select --install-
β Install macOS software updates (via System Settings or run manually):
sudo softwareupdate -ia --verbose
-
β On Apple Silicon (M1/M2/M3) Macs, install Rosetta (for x86 CLI support):
sudo softwareupdate --install-rosetta --agree-to-license
Once installed proceed to clone this repo and begin the bootstrap:
π‘ Tip: Clone or Fork?
If you're comfortable with how the scripts work and want to use this setup as-is, you can clone the repository:git clone https://github.com/<your-username>/bootstrap-mac-dev.gitHowever, if you plan to customize the setup, or want to maintain your own version, it's better to fork the repo first and then clone your fork:
git clone https://github.com/<your-github-username>/bootstrap-mac-dev.git
β οΈ Important:
Please take a moment to review the scripts before running them. This setup script makes system-level changes, and blindly cloning and executing scripts you donβt understand can lead to unintended consequences.
cd bootstrap-mac-dev
makeThis will run all scripts in order via the Makefile.
.
βββ dotfiles
β βββ git
βββ Makefile
βββ README.md
βββ scripts
β βββ 00-create-code-folders.sh
β βββ 01-homebrew.sh
β βββ 02-ohmyzsh.sh
β βββ 03-core-tools.sh
β βββ 04-macos-defaults.sh
β βββ 05-apps.sh
β βββ 06-client-tools.sh
β βββ 08-containers.sh
β βββ 09-python.sh
β βββ 10-cloud-providers-and-dev-tools.sh
β βββ 11-fonts.sh
β βββ 12-personal-casks.sh
β βββ 97-dotfiles.sh
β βββ 99-post-setup.sh
β βββ README.md
βββ templates
βββ Pipfile
βββ pyproject.toml
- SSH key setup (planned for a future script)
- CLI to walk through installation
Suggestions, improvements, and pull requests are welcome!