Comparison table
chezmoi | dotbot | rcm | vcsh | yadm | bare git | |
---|---|---|---|---|---|---|
Distribution | Single binary | Python package | Multiple files | Single script or package | Single script | - |
Install method | Many | git submodule | Many | Many | Many | Manual |
Non-root install on bare system | ✅ | ⁉️ | ✅ | ✅ | ✅ | ✅ |
Windows support | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ |
Bootstrap requirements | None | Python, git | Perl | sh, git | git | git |
Source repos | Single | Single | Multiple | Multiple | Single | Single |
dotfiles are... | Files | Symlinks | Files | Files | Files | Files |
Config file | Optional | Required | Optional | None | Optional | Optional |
Private files | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ |
Show differences without applying | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ |
Whole file encryption | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ |
Password manager integration | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
Machine-to-machine file differences | Templates | Alternative files | Alternative files | Branches | Alternative files, templates | ⁉️ |
Custom variables in templates | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
Executable files | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
File creation with initial contents | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ |
Externals | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
Manage partial files | ✅ | ❌ | ❌ | ⁉️ | ✅ | ⁉️ |
File removal | ✅ | ❌ | ❌ | ✅ | ✅ | ❌ |
Directory creation | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Run scripts | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
Run once scripts | ✅ | ❌ | ❌ | ✅ | ✅ | ❌ |
Machine-to-machine symlink differences | ✅ | ❌ | ❌ | ⁉️ | ✅ | ⁉️ |
Shell completion | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ |
Archive import | ✅ | ❌ | ❌ | ✅ | ❌ | ✅ |
Archive export | ✅ | ❌ | ❌ | ✅ | ❌ | ✅ |
Implementation language | Go | Python | Perl | POSIX Shell | Bash | C |
✅ Supported, ⁉️ Possible with significant manual effort, ❌ Not supported
For more comparisons, visit dotfiles.github.io/utilities.