yadm is a dotfiles manager that uses Git as its foundation for tracking and synchronizing configuration files across machines.
yadm solves the problem of maintaining consistent system configurations across multiple computers and environments. It builds on Git to provide version control for dotfiles while adding specialized features for the unique challenges of configuration management. The tool supports system-specific alternative files, allowing different versions of the same configuration for different operating systems. It includes templating capabilities using Jinja2 for dynamic configuration generation. Private data like SSH keys can be encrypted using GnuPG, OpenSSL, transcrypt, or git-crypt. The tool provides customizable bootstrap scripts for initial setup and hooks that run before and after operations, enabling automated workflows.
Developers managing dotfiles across multiple machines should consider yadm if they want a Git-based approach with built-in support for encryption and per-system configuration variants. The tool suits projects where configuration needs to differ between Linux and macOS systems, or where sensitive credentials must be stored alongside other dotfiles. It works well for teams or individuals maintaining consistent development environments across heterogeneous infrastructure.
The project maintains active engagement with its user base through regular issue responses and feature discussions. Development includes ongoing refinement of core functionality and expansion of encryption method support. The maintainers actively review and merge contributions that extend the tool's capabilities. Documentation receives consistent updates to reflect new features and usage patterns. The project demonstrates sustained attention to both bug fixes and feature requests from the community.