.chezmoirootpoints tohome/— all managed dotfiles live underhome/- File naming:
dot_prefix →.in target,.tmplsuffix → processed as Go template,run_once_before_prefix → script runs once before apply
available/ and enabled/ implement Apache/Nginx-style modular shell config:
available/: Shell config modules (aliases, functions, env vars) grouped by toolenabled/: Symlinks intoavailable/with numeric prefixes controlling load order
Shell init files (dot_zshrc, dot_bashrc) source all enabled/??-* files. enabled/mklinks.sh auto-creates symlinks based on
installed tools.
Load order:
00-09: Bootstrap (prepend_path/append_pathpath helpers)10-19: Core tools (openssl, ssh)20-29: OS-specific (homebrew, darwin, linux)30-39: Dev tools (git, docker)40-49: Languages (python, go, rust)60-79: Cloud/platform (azure, gcloud, kubernetes, terraform)99: Host-specific overrides
ACTIVE_AGENTenv var: when set, shell configs skip history, plugins, and interactive features — set this in agent/LLM contexts- Templates reference
.chezmoi.hostname,.chezmoi.os, and custom data from~/.config/chezmoi/chezmoi.toml - Host-specific configs live in
~/.dotfiles.local/<hostname>-*(gitignored, not managed by chezmoi) prepend_path/append_path(defined in00-bootstrap) handle idempotent PATH modifications