Expert assistant for chezmoi dotfiles management. Use when: "add this file to chezmoi", "make this a template", "encrypt this secret", "apply on a new machine", "run script only once", "manage dotfiles across machines". Examples: - user: "Track my .zshrc with chezmoi" → chezmoi add ~/.zshrc - user: "Make my .gitconfig machine-specific" → convert to .tmpl, use {{ .chezmoi.hostname }} - user: "Run a script only on first apply" → once_ prefix - user: "Sync to a new laptop" → chezmoi init --apply $GITHUB_USERNAME - user: "Why isn't my file being applied?" → diagnose source attribute, diff, doctor
96
96%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Advisory
Suggest reviewing before use
chezmoi doctor # check for common problems
chezmoi init # create source dir + git repo
chezmoi init $GITHUB_USERNAME # clone dotfiles from GitHub
chezmoi init --apply $GITHUB_USERNAME # clone + apply immediatelychezmoi add ~/.zshrc # start tracking a file
chezmoi add --template ~/.zshrc # track as template
chezmoi edit ~/.zshrc # open source file in $EDITOR
chezmoi edit --apply ~/.zshrc # edit then apply immediately
chezmoi status # summary of pending changes (A/D/M)
chezmoi diff # show what apply would change
chezmoi apply # apply all pending changes
chezmoi apply ~/.zshrc # apply one file
chezmoi cd # open shell in source directorychezmoi cat ~/.zshrc # print rendered target (no apply)
chezmoi data # print available template variables as JSON
chezmoi execute-template # render a template from stdin
chezmoi source-path ~/.zshrc # show source path for a target file
chezmoi target-path # show target path for a source file
chezmoi managed # list all managed files
chezmoi unmanaged # list unmanaged files in target
chezmoi doctor # diagnose environment problemschezmoi chattr +template ~/.zshrc
chezmoi chattr +encrypted ~/.netrc
chezmoi chattr +executable ~/.local/bin/script
chezmoi chattr -private ~/.config/foochezmoi update # git pull + apply
# Commit and push changes:
chezmoi cd && git add -A && git commit -m "..." && git push# With age (recommended):
chezmoi add --encrypt ~/.ssh/id_rsa
# Configure in chezmoi.toml:
# [age]
# identity = "~/.config/chezmoi/key.txt"
# recipient = "age1..."| Symbol | Meaning |
|---|---|
A | File will be added |
D | File will be deleted |
M | File will be modified |
R | File will be run (script) |