mivehchi.app
apple silicon / bootstrap + migration kit

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.

zsh - new mac
# 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 
// what's included

Packages, configs, and the docs to rebuild it

120

Packages

One Brewfile, three sources.

  • 50 Homebrew formulae
  • 40 casks
  • 30 App Store apps
7

Config sets

Portable, no hardcoded usernames.

  • zshrc, aliases, PATH
  • Ghostty terminal
  • macOS defaults
  • Git + SSH identity
  • Ollama LaunchAgent
4

Knowledge base

Every choice, written down.

  • dependencies.md
  • apps-inventory.md
  • configs-map.md
  • rebuild-guide.md
// setup.sh

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.

01Xcode CLI Toolscore
02Homebrewcore
03Brew Bundle (120 packages)core
04Mac App Store verificationcore
05Claude Codedev
06uv (Python)dev
07Bun (JS)dev
08Ollama Modelsllm
09Git + SSHconfig
10macOS Defaultsconfig
11Symlink Configsconfig
12Claude Code config restorerestore
13Editor settings restorerestore
14Raycast prefs restorerestore
15Project data restorerestore
16Manual app checklistverify
17Verification (30+ tools)verify
18iCloud config syncsync
// migration workflow

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.

On your old Mac
$ cd ~/mac-dev-setup
$ ./audit.sh          # scan state
$ ./backup.sh         # encrypted secrets
$ git add -A && git commit
$ git push
On your new Mac
$ 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.

// safety

Safe to run, safe to re-run

idempotent

Every phase checks first

Each phase inspects state before acting, so running setup twice does not double-install or clobber existing config.

dry-run

Preview before you commit

Pass --dry-run to print exactly what each phase would do without touching the machine.

secrets

Never commits backups

The backups folder is gitignored and encrypted. Secrets live in the macOS Keychain, not in committed files.

// requirements

What you need

macOS 13+ Apple Silicon recommended Admin privileges Homebrew, defaults App Store sign-in for mas apps Internet connection

Read the scripts, fork the kit

Brewfile, all 18 phases, backup and restore, and the knowledge base are on GitHub.

View on GitHub ↗
// license

MIT

Open source under the MIT License. Fork it, adapt the Brewfile, and make it your own. See the full license.