Claude-skill-registry chezmoi-dotfiles
Manage dotfiles using chezmoi. Use when creating, modifying, or deploying dotfiles, shell functions, or configuration files in this repository.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/chezmoi-dotfiles" ~/.claude/skills/majiayu000-claude-skill-registry-chezmoi-dotfiles && rm -rf "$T"
manifest:
skills/data/chezmoi-dotfiles/SKILL.mdsource content
Chezmoi Dotfiles Management
This skill helps manage dotfiles using chezmoi in this repository.
Repository Location
All dotfiles are managed in
~/.local/share/chezmoi which is a git repository synced to GitHub at https://github.com/craigtkhill/dotfiles.git.
Critical Workflow
When creating or modifying dotfiles, you MUST follow this exact order:
-
Navigate to chezmoi source directory
cd ~/.local/share/chezmoi -
Create or edit files using chezmoi naming conventions
- Use
prefix for dotfiles (e.g.,dot_
→dot_gitconfig
)~/.gitconfig - Preserve directory structure (e.g.,
→dot_config/fish/functions/
)~/.config/fish/functions/ - You can edit directly in
or use~/.local/share/chezmoichezmoi edit <target-path>
- Use
-
Apply changes to home directory
chezmoi apply # or for specific file: chezmoi apply ~/.config/fish/functions/myfile.fish -
Commit and push to GitHub
cd ~/.local/share/chezmoi git add . git commit -m "your message" git push origin main -
Verify it's managed
chezmoi managed | grep myfile
Common Commands
- Show what has changedchezmoi status
- Show detailed differenceschezmoi diff
- List all managed fileschezmoi managed
- Apply changes from dotfiles to home directorychezmoi apply
- Force apply, overriding conflictschezmoi apply --force
- Add a file to chezmoi trackingchezmoi add <file>
- Re-add a tracked filechezmoi re-add <file>
Fish Shell Specifics
Fish automatically loads functions from
~/.config/fish/functions/. Each function must be in its own file named functionname.fish.
After adding new fish functions:
- Copy to
~/.config/fish/functions/ - Functions are immediately available (fish auto-loads them)
- No need to source or reload
Adding Existing Files to Chezmoi
If you want to add an existing file from your home directory to chezmoi:
chezmoi add ~/.config/fish/functions/myfile.fish
This will copy the file to
~/.local/share/chezmoi with proper naming and make it managed.
Common Mistakes
❌ DON'T: Edit files directly in
~/.config/fish/ without updating chezmoi
- Changes will be lost when chezmoi applies source files
❌ DON'T: Forget to commit and push changes to GitHub
- Your dotfiles won't be backed up or available on other machines
✅ DO: Edit in
~/.local/share/chezmoi → Apply → Commit → Push