Migration
Migration guides
Coming from another dotfiles manager. One guide per tool, each with real commands, a rollback path, and an honest section on what you lose by switching.
| You use | Guide | Rough effort |
|---|---|---|
| yadm | from-yadm.md | 30 min — closest model, both wrap git and template |
| GNU Stow | from-gnu-stow.md | 1–2 h — symlink farm to managed copies is a real change |
A bare git repo (--git-dir=$HOME/.dotfiles) | from-bare-git-repo.md | 45 min |
| Plain chezmoi, no framework | from-plain-chezmoi.md | 10 min — same engine underneath |
Upgrading between versions of this project is a different document: ../operations/MIGRATION.md.
Read this first
Three facts that apply to every guide.
chezmoi is the engine. This project is a framework over chezmoi, not a replacement for it. Files live in a source tree, chezmoi apply renders them into $HOME, and dot is a control plane over that. If you already know chezmoi, you already know 80% of this.
Nothing is destroyed without asking. chezmoi apply shows a diff first when you run dot diff, and dot sync --check previews without writing. Every guide below tells you to take a backup anyway, because "nothing is destroyed" is a claim about the tool, not about your typos.
You can leave. scripts/uninstall.sh --force runs chezmoi purge and removes the repo, the chezmoi config and state, caches, and logs. Your files stay where they were applied; nothing phones home and nothing is left behind to reinstall itself. Each guide ends with the rollback for that specific migration.
The shape of every migration
# 1. Back up. Always.
||
# 2. After the verified release download in docs/guides/INSTALL.md,
# install the framework (does not touch your files yet).
# 3. Bring your own files under management, one at a time.
# 4. Preview, then apply.
# 5. Check the result.
Step 3 is where the guides differ, because it depends on how your current tool stores things.
Choosing not to switch
Genuinely reasonable reasons to stay where you are:
- You only symlink a handful of files and never templated anything. GNU Stow is simpler and does that job well.
- You need Windows-native support without WSL or PowerShell 7.
- You do not want a CLI layer. Plain chezmoi is a smaller surface.
The case for switching is multi-machine fleets, per-host templating, multi-shell parity, and signed/attested releases. If none of those describe you, the migration cost may not repay itself.