chezmoi is a command-line utility designed to manage and synchronize system configuration files across multiple machines. It uses a local Git repository as the single source of truth, allowing users to track, version, and distribute dotfiles while maintaining a consistent state across diverse operating systems and hardware architectures.
The project distinguishes itself through a declarative reconciliation model that computes the difference between the current filesystem and the desired state defined in the repository. It features a robust templating engine that processes configuration files as dynamic templates, enabling the injection of machine-specific data, environment variables, and system metadata. To maintain security, it includes a transparent encryption layer and integrates directly with third-party password managers and key vaults, allowing sensitive credentials to be retrieved at runtime rather than stored in plain text.
Beyond core synchronization, the tool provides extensive automation capabilities for environment provisioning and lifecycle management. It supports custom hook-based scripts that execute before or after configuration operations, facilitating automated dependency installation and system-level setup. The platform also handles complex file management tasks, including symbolic link creation, external dependency fetching, and the ability to manage configurations within ephemeral container environments.
The project is distributed as a standalone binary, providing a comprehensive command-line interface for auditing configuration drift, previewing changes, and bootstrapping new environments.