Use case · Developer migration

A new Mac without the lost weekend

Engineers don’t dread new Macs because of the hardware. They dread two days of reinstalling Homebrew, restoring dotfiles, finding the SSH keys, remembering which Node version that one project pins, and discovering at 5pm that the IDE profile didn’t come over.

What shft handles, tool by tool

Migration Assistant copies the bytes. shft also reasons about what those bytes are, so the new Mac actually works.

Homebrew

shft captures the brew list (formulas, casks, taps) on the source Mac and lays down a re-bootstrap script on the destination. You run one command and your toolchain is back.

Dotfiles and shell configs

~/.zshrc, ~/.bashrc, ~/.config, ~/.gitconfig, and the rest of your shell environment move intact. If you symlink from a dotfiles repo, the symlinks come with you.

SSH keys and ~/.ssh

Keys move with permissions preserved. The known_hosts file and config come too — you don't have to re-trust every server on day one.

Version managers

nvm, asdf, rbenv, pyenv, mise. Installed versions are detected. The post-migration checklist tells you which managers to re-run install for.

IDE configs

VS Code settings, extensions, and keybindings; JetBrains IDE settings; Sublime, Cursor, Zed — anything that stores config in ~/Library or ~/.config gets carried over.

Dev directories

~/dev, ~/src, ~/code — pick what you want, skip what you don't. Build artifacts (node_modules, target, .venv) are smart-skipped by default and re-generated via the included script.

About build artifacts

Copying node_modules across machines is the wrong move. Architecture-specific binaries, broken symlinks, partial installs — you’ll spend a day chasing weirdness.

shft detects build directories and skips them by default. The destination Mac gets a regeneration script that re-runs npm install, cargo build, bundle install per repo so you get a clean tree without losing the day.

The post-migration checklist

shft writes a Markdown checklist to ~/shft-migration-report.md on the new Mac. It calls out exactly what to verify: brew doctor, ssh-add -l, signed-in IDEs, anything that needs re-authorization on the new hardware.

By the time you’ve worked through the checklist — usually 10-15 minutes — the Mac is ready. No two-day rebuild.

$49 once. Migrate as many of your own Macs as you want.

Personal license covers unlimited migrations across your own machines. Lifetime — no expiry, no subscription.