finds.dev

twpayne/chezmoi

Manage your dotfiles across multiple diverse machines, securely.

View on GitHubHomepage ↗

★ 22,045GoMITupdated Oct 2026

// the take

chezmoi is a dotfile manager that templates your configuration files per-machine and syncs them via a git repo, so one source of truth can produce slightly different outputs on your laptop, your work desktop, and a server. It's aimed at developers who manage dotfiles across more than one OS or machine and are tired of symlink farms or ad-hoc shell scripts.

Ships as a single static Go binary with no runtime dependencies, so bootstrapping a new machine is just 'download binary, run init' even before git or a shell is configured. The Go-template-based source state lets you branch on hostname, OS, or arbitrary data in one file instead of maintaining parallel dotfile trees. It integrates directly with password managers (1Password, Bitwarden, pass, KeePassXC) and age/gpg encryption so secrets can live in the templated config without being committed in plaintext. 'chezmoi diff' before 'chezmoi apply' gives you a dry-run against your live home directory, which catches accidental clobbers before they happen.

The source-state naming convention (dot_, private_, executable_, encrypted_ prefixes) is powerful but adds real cognitive overhead - reading a raw file listing in the repo doesn't tell you what will land on disk without knowing the prefix grammar. There's no transactional rollback for a bad apply beyond git revert plus a manual re-apply, so a broken template can leave your home directory half-updated. Multi-machine drift resolution is just git merge semantics; there's no first-class conflict UI when two machines diverge on the same managed file. The secret-manager integrations shell out to external CLIs (op, bw, pass, etc.), so a misconfigured PATH or missing binary fails silently-ish at template-render time rather than at a clear setup-check step, and secrets can end up in shell history or temp files if a template function is used carelessly.

We read the README, the directory tree and a key source file in October 2026. Nobody pays to be listed. How we judge →

// at a glance

Stars
22,045
Forks
698
Language
Go
License
MIT
Last commit
26 Oct 2026

// nearby

If chezmoi isn't quite it.

All repos →