01. Overview & Architecture

Profile: 3.5.0
Schema validatedSource pinned
Purpose
Yet Another Dotfiles Manager, a thin wrapper around git.
Compatibility
Any distro (Server: BOTH)
Desktop Part
Tools & utilities
Window Manager & Theme
Any WM / DE / Other

02. Installation & Deployment

Before you installThis changes your desktop configuration and installs packages. Run it as your normal user, never with sudo: it asks for sudo only where a step needs it (listed below).The guided installer shows its plan first. Files it would replace are kept unless you approve. Everything it copies, clones or appends to in your home folder is backed up and verified first, and --rollback restores it. Packages, sudo changes and the other commands listed under Impact are not undone.
IntegrityEach release from main builds the installers in GitHub Actions and signs them with a GitHub build attestation. Verify your download against the repository, not this website (Option B, step 2). If it does not verify, don't run it.
ImpactPackages: yadm
RecoveryGuided: backups in ~/.local/state/0xtsoa/backups/, undo with bash install.sh --rollback.Manual: the steps below only write in the download folder or run listed commands.
Option A: manual installAdvanced
Read the source at the reviewed commit, back up, then run each step yourself.
$git clone https://github.com/yadm-dev/yadm ~/0xtsoa-review/yadm-dev-yadm# 1. clone to a review folder
$git -C ~/0xtsoa-review/yadm-dev-yadm checkout --detach bbb58e6625de5d934fd49b4b81c1981e137e3057# 2. the reviewed commit
Then the steps. Package commands are written for Arch; on other distros use your package manager.

Step-by-step deployment protocol

Step-by-step deployment
1Install yadm (Arch repos)
$sudo pacman -S --needed yadm
$# Other distros: see the upstream README
Option B: guided installerRecommended
The same steps as one script for any distro. It shows the plan first, keeps files you already have unless you approve replacing them, and backs up everything it changes in your home folder. Never pipe it into a shell.
$curl -fsSLo install.sh 'https://www.0xtsoa.dev/configs/yadm-dev/yadm/install.sh'# 1. download
$gh attestation verify install.sh --repo nyharena25/0xTsoa --signer-workflow nyharena25/0xTsoa/.github/workflows/attest-installers.yml# 2. verify (GitHub CLI 2.49+, signed in)
$less install.sh# 3. read it
$bash install.sh --dry-run# 4. preview: changes nothing
$bash install.sh# 5. install (asks first)
$bash install.sh --rollback# undo the file changes
View script in browserOther options: --force (replace conflicts, backed up first), --yes, --help

03. Documentation & Guide

Source: yadm-dev/yadmRef: bbb58e6625
README.md|GitHub Flavored Markdown

yadm - Yet Another Dotfiles Manager

![Latest Version][releases-badge] ![Homebrew Version][homebrew-badge] ![OBS Version][obs-badge] ![Arch Version][arch-badge] ![License][license-badge]
![Master Update][master-date] ![Develop Update][develop-date] ![Website Update][website-date]
![Master Status][master-badge] ![Develop Status][develop-badge] ![GH Pages Status][gh-pages-badge] ![Dev Pages Status][dev-pages-badge]

https://yadm.io/

yadm is a tool for managing dotfiles.

Complete features, usage, examples and installation instructions can be found on the yadm.io 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.

GitHub Flavored Markdown (github-markdown-css)README snapshot at bbb58e6625