Capture your config on the old Mac, carry one folder across, and provision the new one from a manifest you control. Packages, dotfiles, macOS defaults, app preferences, and encrypted SSH/GPG keys.
Fastest start: curl -fsSL https://migration-machine.callmesukhi.com/install.sh | bash
// why
No black box. Every action is a small shell script, declared in a manifest, that you can inspect, dry-run, and override.
Declare your steps in JSON. The engine runs them in order, checks each one, and skips whatever is already done.
Each step is a small, idempotent script. Drop in your own, reorder them, or run just one with --only.
SSH and GPG keys travel inside an AES-256 encrypted disk image. Never plaintext, never in the repo.
Every step has a validation check. Preview the entire run with --dry-run before anything is touched.
A swiftDialog progress window when there's a desktop, a clean terminal list when there isn't. Auto-detected.
Your captured config lives in a folder you carry. The repo stays generic, so anyone can clone and use it.
// how it works
Capture once, carry one folder, provision on the other side.
On the old Mac, export dotfiles, packages, macOS defaults, app preferences, and keys into a data folder.
Sync or copy that one MIGRATION_DATA folder to the new Mac. Cloud drive, USB, whatever you trust.
On the new Mac, run from a manifest: Xcode CLT, a package manager, your dotfiles, settings, and keys.
Clone it, point it at your data folder, and read the docs before your first real run.