chezmoi

chezmoi.io ↗

Manage and preview your dotfiles across Linux, macOS, and Windows machines.

SI Score
80/100
Pricing
Open Source AI reading, not confirmed
Free plan
Not confirmed
Sign-up required
Not confirmed

Ask SI about chezmoi

Answers use saved listing facts and recorded sources.
Homepage screenshot
Screenshot of the chezmoi homepage

What it does

chezmoi is a command-line dotfile manager that keeps a source state in a Git repository and applies the desired configuration files to a machine's home directory. It can template differences between computers, and its documentation covers password-manager integrations and file encryption for sensitive values. The project runs on Linux, macOS, and Windows and is distributed as a single statically linked binary. It is aimed at people who want a repeatable way to maintain personal shell, editor, and other configuration across computers.

chezmoi starts from a local source repository rather than directly replacing files whenever a change is made. Its quick start shows a small first-file workflow: initialize the source state with chezmoi init, add a file such as ~/.bashrc with chezmoi add ~/.bashrc, then inspect the proposed result with chezmoi diff. The documentation also shows chezmoi -v apply to apply changes. These commands are documented examples, not commands executed for this entry.

Before applying a change to a home directory, use the documented dry-run option with verbose output (chezmoi -n -v apply) to see what would happen without making changes. Once the source repository is ready, commit it with Git; on another machine, initialize from that repository, inspect chezmoi diff, and apply only after reviewing the result. Templates can express differences between machines, while the user guide also documents integrations for retrieving secrets from password managers and encrypting files.

This is a terminal workflow, not a hosted settings dashboard. A private dotfiles repository requires an authentication method; the quick-start guide gives SSH as an option. Treat the source repository with the care due to configuration data, and configure the documented encryption or password-manager approach for secrets rather than assuming that every managed file is encrypted automatically.

Strengths

  • Keeps a version-controlled source state separate from the files it manages in the home directory.
  • The diff and dry-run options let users review planned changes before applying them.
  • Templates and documented encryption and password-manager integrations cover differences between machines and secret-bearing files.
  • The project describes a single statically linked binary with no dependencies or root requirement.

Watch out for

  • Applying a change affects files in the target machine's home directory, so changes should be reviewed before use.
  • A private dotfiles repository needs an authentication method configured for that machine.

Best for

  • Developers keeping shell, editor, and tool configuration consistent across computers.
  • People who want to review and version dotfile changes instead of copying files by hand.

Sources

Related categories