One command. Eighteen phases. A whole Mac, rebuilt.
Eighteen idempotent phases install 120 packages, restore your configs from an encrypted backup, verify the result, and leave behind a documented knowledge base. It goes beyond dotfiles into full disaster recovery for a development machine.
# Clone and run
$ git clone https://github.com/parsamivehchi/mac-dev-setup.git ~/mac-dev-setup
$ cd ~/mac-dev-setup
$ ./setup.sh
# Preview every phase first, change nothing
$ ./setup.sh --dry-run
Packages, configs, and the docs to rebuild it
Packages
One Brewfile, three sources.
- 50 Homebrew formulae
- 40 casks
- 30 App Store apps
Config sets
Portable, no hardcoded usernames.
- zshrc, aliases, PATH
- Ghostty terminal
- macOS defaults
- Git + SSH identity
- Ollama LaunchAgent
Knowledge base
Every choice, written down.
- dependencies.md
- apps-inventory.md
- configs-map.md
- rebuild-guide.md
The eighteen phases
Each phase checks state before acting, so a re-run is safe. Types group the work: core, dev, llm, config, restore, verify, sync.
From an old Mac to a new one
Audit and back up the machine you are leaving, then clone, restore, and verify on the machine you are moving to.
$ cd ~/mac-dev-setup
$ ./audit.sh # scan state
$ ./backup.sh # encrypted secrets
$ git add -A && git commit
$ git push
$ git clone <repo> ~/mac-dev-setup
# copy backups/ via AirDrop
$ ./setup.sh # 18 phases
$ ./restore.sh backups/<ts>
$ ./tests/verify.sh
Backups carry AES-256 encrypted secrets and a SHA-256 manifest that restore verifies before writing anything. The backups folder is gitignored and moves between machines over AirDrop, never through git.
Safe to run, safe to re-run
Every phase checks first
Each phase inspects state before acting, so running setup twice does not double-install or clobber existing config.
Preview before you commit
Pass --dry-run to print exactly what each phase would do without touching the machine.
Never commits backups
The backups folder is gitignored and encrypted. Secrets live in the macOS Keychain, not in committed files.
What you need
Read the scripts, fork the kit
Brewfile, all 18 phases, backup and restore, and the knowledge base are on GitHub.
MIT
Open source under the MIT License. Fork it, adapt the Brewfile, and make it your own. See the full license.