Automated macOS backup and restore strategy for techies
A comprehensive, idempotent backup and restore strategy that configures your mac for modern software development. Supports both Intel and Apple Silicon macs with automatic architecture detection.
The script is idempotent — every step checks whether its work is already done before executing, so you can safely re-run after a partial failure without undoing completed steps. Each skipped step logs the reason, so you can see at a glance what was already in place.
- 🔍 Auto-detects architecture - supports both Intel x86_64 and Apple Silicon arm64
- 🔄 Idempotent — safe to run multiple times
- 📝 Comprehensive logging — shows all logs with colors for ease of debugging and checking status
- 🛡️ Safe — retains your pre-existing configs instead of overwriting them
- ⚡ Fast shell startup — typically ~30ms on Apple Silicon, under 100ms on Intel
- Homebrew and a curated set of modern CLI/GUI tools — see the Brewfile
- Zsh shell config — antidote plugin manager, Starship prompt, aliases and functions
- macOS system preferences — seeded with sane defaults, then optionally overlaid with your own exported backup
Setup is split into two guides:
- Adoption.md (basic, start here) — fork the repo, set your GitHub username, and run the bootstrap command. This alone gets you a fully working machine: Homebrew, shell config, and macOS preferences.
- Advanced.md — once you're up and running: keeping backups current, encrypted preference backups via Keybase and/or
gpg+git bundle(both optional, can be used together), per-repository git customizations, and staying in sync with upstream.
⚡ Already forked and customized? Jump straight to the bootstrap command to copy-paste and run.
For contributors: See CONTRIBUTING.md for guidelines on submitting improvements.
- Adoption.md — Basic setup: preparing your machine, forking, and the bootstrap command
- Advanced.md — Ongoing maintenance, encrypted preference backups (Keybase and/or
gpg+git bundle), per-repo customizations, and staying up-to-date with upstream - Extras.md — Reference documentation for every utility script
- TechnicalDeepDive.md — Internal architecture, design decisions, and implementation details
- ToRevisit.md — Evaluations and experiments that were parked (zerobrew, stout, deja, postponed decisions), with the findings and what would make them worth another look
- CONTRIBUTING.md — Guidelines for contributing code, documentation, and reporting issues
- CHANGELOG.md — Version history and upgrade notes
These folks have contributed to this codebase till date:
- @arunvelsriram
- @shaz-ahammed
- @jotheeswaran-dev