Yet Another Dotfiles Manager
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Tim Byrne f28d4bc1c6
Update image tag
1 year ago
.github Run "make test" in github workflow 2 years ago
completion Fix compatibility bug with Git completions (#318) 2 years ago
contrib fix: Find symlinks in bootstrap-in-dir 2 years ago
test Merge pull request #395 from erijo/shellcheck 1 year ago
.gitattributes Force `eol=lf` 6 years ago
.gitignore Use a common target to pick yadm to test in test/scripthost 2 years ago
CHANGES Update version number and update documentation 1 year ago
CONTRIBUTORS Update version number and update documentation 2 years ago
LICENSE Update GPLv3 LICENSE information 4 years ago
Makefile Update image tag 1 year ago Fix arch-badge 1 year ago
bootstrap Standardize on &> when not appending output 3 years ago
pylintrc Support architecture in alternates (#202) 3 years ago
pytest.ini Mark deprecated tests 3 years ago
yadm Bump shellcheck to version 0.8.0 in docker image 1 year ago
yadm.1 Support overriding architecture 1 year ago fix “Mackbook” typo in manpage 1 year ago
yadm.spec Update version number and update documentation 1 year ago

yadm - Yet Another Dotfiles Manager

Latest Version Homebrew Version OBS Version Arch Version License
Master Update Develop Update Website Update
Master Status Develop Status GH Pages Status Dev Pages Status

yadm is a tool for managing dotfiles.

  • Based on Git, with full range of Git's features
  • Supports system-specific alternative files or templated files
  • Encryption of private data using GnuPG, OpenSSL, transcrypt, or git-crypt
  • Customizable initialization (bootstrapping)
  • Customizable hooks for before and after any operation

Complete features, usage, examples and installation instructions can be found on the website.

A very quick tour

# Initialize a new repository
yadm init

# Clone an existing repository
yadm clone <url>

# Add files/changes
yadm add <important file>
yadm commit

# Encrypt your ssh key
echo '.ssh/id_rsa' > ~/.config/yadm/encrypt
yadm encrypt

# Later, decrypt your ssh key
yadm decrypt

# Create different files for Linux vs MacOS
yadm add path/file.cfg##os.Linux
yadm add path/file.cfg##os.Darwin

If you enjoy using yadm, consider adding a star to the repository on GitHub. The star count helps others discover yadm.