Machine Config Migrator
Perform repeatable, low-risk migration of editor/shell/productivity configuration between machines.
Workflow
- Confirm source and target OS details and whether cross-platform migration is expected.
- Choose components to include from:
tmux,vim,emacs,zsh,alfred,git,ssh. - Run
scripts/collect_config_bundle.pyon the old machine to create one tarball bundle. - Transfer the bundle to the new machine.
- Run
scripts/apply_config_bundle.pyon the new machine with selected components. - Use plugin mode:
suggestto print plugin install commands.runto execute known plugin installers automatically.
- Validate startup for each selected tool (
tmux,vim/nvim,emacs,zsh, Alfred).
Commands
Collect from old machine:
python3 scripts/collect_config_bundle.py \
--bundle ~/machine-config-bundle.tar.gz \
--components tmux,vim,emacs,zsh,alfred
Apply on new machine:
python3 scripts/apply_config_bundle.py \
--bundle ~/machine-config-bundle.tar.gz \
--components tmux,vim,zsh,alfred \
--plugin-mode suggest
Apply with plugin installers:
python3 scripts/apply_config_bundle.py \
--bundle ~/machine-config-bundle.tar.gz \
--components tmux,vim,emacs,zsh \
--plugin-mode run
Dry run before writing files:
python3 scripts/apply_config_bundle.py \
--bundle ~/machine-config-bundle.tar.gz \
--components tmux,vim,zsh \
--dry-run
Safety Rules
- Run with
--dry-runfirst when target machine already has custom configs. - Do not migrate private keys by default;
sshcomponent includes only safe defaults (config,known_hosts). - Keep backup path from apply output. Existing files are copied before overwrite.
- Prefer component-by-component rollout instead of all-at-once on first migration.
Plugin Handling
- Trust plugin inventory generated during collection for migration context.
- Use
references/plugin-sources.mdwhen users ask to discover additional plugins. - If plugin manager is missing on target machine, install manager first, then rerun with
--plugin-mode run.
Resources
scripts/collect_config_bundle.py: Build a portable config bundle and plugin inventory.scripts/apply_config_bundle.py: Restore selected components with backup and optional plugin install.references/plugin-sources.md: Curated official plugin catalogs and popular plugin picks.
