Contributing & Making Changes
dotfiles/
├── .chezmoi.toml.tmpl Config template (prompts on init)
├── .chezmoiexternal.toml External deps
├── .chezmoiignore Platform-specific exclusions
│
├── dot_zshrc.tmpl ~/.zshrc (Go template)
├── dot_zsh_plugins.txt ~/.zsh_plugins.txt
├── dot_zprofile.tmpl ~/.zprofile (Go template)
├── dot_p10k.zsh ~/.p10k.zsh (generated by p10k configure)
├── dot_gitconfig.tmpl ~/.gitconfig (Go template)
├── dot_vimrc.tmpl ~/.vimrc (Go template)
│
├── private_dot_ssh/
│ └── config ~/.ssh/config (0600 permissions)
│
├── private_dot_config/
│ └── private_opencode/ ~/.config/opencode/
│ ├── AGENTS.md AI agent rules
│ ├── opencode.json Agent definitions + model routing
│ └── package.json Plugin SDK dependency
│
├── run_onchange_install-packages.sh.tmpl Runs brew/pacman when Brewfile changes
├── run_onchange_setup-opencode.sh.tmpl Installs GSD and plugin dependencies
├── run_onchange_antidote-bundle.sh.tmpl Regenerates antidote static plugins
│
├── Brewfile macOS Homebrew manifest
├── AGENTS.md AI agent instructions for this repo
└── README.md
# Add an existing file
chezmoi add ~ /.some-config
# Add as a template (for cross-platform content)
chezmoi add --template ~ /.some-config
Adding a New Alias or Function
Run chezmoi edit ~/.zshrc to open dot_zshrc.tmpl
Add your alias in the appropriate section (under the matching # === banner)
If it's OS-specific, wrap it in a Go template conditional
Run chezmoi apply to deploy
Commit and push
Adding a New Homebrew Package (macOS)
# Install the package
brew install some-package
# Regenerate the Brewfile
brew bundle dump --file=$( chezmoi source-path) /Brewfile --force
# Commit
cd $( chezmoi source-path)
git add Brewfile && git commit -m " chore: add some-package to brewfile"
git push
Edit dot_zsh_plugins.txt (in the source repo or via chezmoi edit ~/.zsh_plugins.txt)
Run chezmoi apply — this triggers run_onchange_antidote-bundle.sh automatically
Open a new terminal