| name | dotfiles |
| description | Dotfile and config management using yadm - track, sync, and deploy configuration across machines |
| metadata | {"tags":"dotfiles, config, yadm, configuration, symlink, backup"} |
| triggers | ["dotfiles","config","yadm",".zshrc",".tmux.conf","my config","track this file"] |
When to use
Use this skill whenever dealing with:
- Dotfiles management (
.zshrc, .tmux.conf, .vimrc, etc.)
- Config file changes or tracking
- Syncing configuration across machines
- Setting up new machine from dotfiles
- Any mention of "dotfiles" or "my config"
How yadm works
yadm is a git-based dotfile manager that:
- Stores dotfiles in
~/.local/share/yadm/repo.git/
- Creates symlinks from home directory to tracked files
- Works like git but for dotfiles
Commands
Check status
yadm status
ystat
Add files to tracking
yadm add ~/.zshrc ~/.tmux.conf
yadd ~/.zshrc
Commit changes
yadm commit -m "description of changes"
ycom "updated tmux keybindings"
Push to remote
yadm push
ypush
Pull from remote
yadm pull
ypull
Clone on new machine
yadm clone <repo-url>
Tracked files
Dwain's current dotfiles:
~/.zshrc - Shell configuration
~/.tmux.conf - Tmux configuration (via ~/.config/tmux/tmux.conf##os.Darwin)
~/.agents/skills/ - Claude/opencode agent skills and references
~/bin/gwt - Git worktree helper
~/.pi/agent/settings.json - Pi settings
~/.pi/agent/extensions/harness-review.ts - Pi extension
Best practices
- Commit after config changes — including skill updates
- Push after commits to sync to remote
- Pull before making changes on a new machine
- Use aliases: ystat, yadd, ycom, ypush, ypull
- When editing skills: the skill files are tracked — commit after creating or modifying any
SKILL.md or references
Example workflow
# Made changes to .zshrc?
yadd ~/.zshrc
ycom "add new alias for git"
ypush
# New machine setup?
yadm clone git@github.com:user/dotfiles.git
Troubleshooting
- Files show as
120000 mode = symlink (correct!)
yadm status shows "No commits yet" = needs first commit
- Symlinks broken = re-run
yadm checkout <file>