yadm

Dotfiles manager built on Git, with per-system alternate and templated files, encryption via GnuPG/OpenSSL/transcrypt/git-crypt, bootstrapping, and hooks.

yadm is a dotfiles manager built on Git. It wraps Git commands so a repository of configuration files can be tracked in place in your home directory, and the full range of Git's features is available. Typical usage mirrors Git: yadm init, yadm clone <url>, yadm add <file>, and yadm commit.

For machines that need different configuration, yadm supports system-specific alternate files and templated files. A file can be added with a suffix such as path/file.cfg##os.Linux or path/file.cfg##os.Darwin so that a different version is used on Linux and macOS.

Private data can be encrypted using GnuPG, OpenSSL, transcrypt, or git-crypt. Paths to protect are listed in ~/.config/yadm/encrypt, then yadm encrypt and yadm decrypt handle them. yadm also provides customizable bootstrapping for initializing a new machine, and customizable hooks that run before and after any operation.

It is aimed at developers and system administrators who keep dotfiles in Git and want to sync them across multiple machines or operating systems. Full documentation is on yadm.io.

Alternatives & related tools

add a badge to your README

Maintain yadm? Show that it's featured on trmn. The badge links back to this page.

Featured on trmn
Markdown
[![Featured on trmn](https://www.trmn.sh/badge/yadm.svg)](https://www.trmn.sh/tools/yadm?utm_source=badge)
HTML
<a href="https://www.trmn.sh/tools/yadm?utm_source=badge"><img src="https://www.trmn.sh/badge/yadm.svg" alt="Featured on trmn" height="20"></a>