Skip to content

Comparison with other tools

There are many good dotfile tools, and they solve different problems. Here’s an honest comparison.

dotsync chezmoi yadm GNU Stow Mackup mise dotfiles
Model two-way sync source state, applied to your home your home is a git work tree symlinks into a directory copies to and from a cloud-storage folder files linked, copied or templated from a source, or tracked in place with git history
You edit the real file the source, or the file then chezmoi re-add the real file the real file, through its symlink the real file the real file, or the source for copied and templated files
Other machines get changes automatically when you run chezmoi update when you run yadm pull when you pull the directory when you run mackup restore automatically with the history watcher and history.sync = "sync", otherwise when you run mise dot sync
Same file changed on two machines per-file conflict: both kept, you choose git merge conflict in the source; asks before overwriting a file changed since the last apply git merge conflict git merge conflict, if the directory is a git repository whatever the storage provider does per-file conflict, but sync pauses for every tracked file until you choose
Secrets held back before upload templates that read password managers; encryption encryption not handled not handled encryption; credential files skipped by name
Differences per machine per-OS entries, per-machine exclusions templates alternate files, templates separate packages not handled templates, per-OS and per-profile variants

Choose dotsync if you want your files to simply be the same on every Mac and Linux machine, edited anywhere and synced without ceremony, with every replaced file backed up, and you’d rather be told about a conflict than have one resolved for you.

Choose chezmoi if machines need genuinely different versions of the same file (templates, per-host data, secrets pulled from password managers), if you use Windows, or if you prefer an explicit apply step.

Choose yadm if you like working with git directly and want your home directory to be the repository.

Choose GNU Stow if you want the smallest possible tool, you’re happy running it by hand, and your applications don’t replace symlinks.

Choose mise’s dotfiles if you already use mise to set up machines (packages, services, tools) and want dotfiles in the same configuration, with templates and a full edit history you can roll back. Its two-way sync needs the history watcher and history.sync = "sync". It doesn’t scan contents for secrets, so encrypt anything sensitive before its first save. See mise’s dotfiles docs.

Choose Mackup if you mainly want to back up and restore application settings, especially macOS application preferences, through a folder in your cloud storage.

dotsync only touches the files in its manifest, so it coexists with other tools as long as they don’t manage the same files. A common setup is dotsync for everyday configuration, and chezmoi for a few heavily templated files. If you use both dotsync and mise, see Use with mise.

Moving over? See Migrate from another tool.