Packages
This setup treats package installation as declarative: edit a source list, run chezmoi apply, and let hooks converge the installed tools.
Read path
| Slice | Owns |
|---|---|
| Package catalog | what the managed tools are for, grouped across package managers |
| Sources and scope | every package registry, list file, hook, and .isWork scoping rule |
| Reconcile behavior | what each hook installs, updates, removes, or intentionally leaves alone |
| Verification and troubleshooting | high-signal checks and common failure modes |
Add-package recipes
| Priority | Package type | Recipe |
|---|---|---|
| 1 | Homebrew formula/cask | Add a Homebrew package |
| 2 | mise runtime/tool version | Pin a tool version |
| 3 | Cargo crate | Add a Cargo crate |
| 4 | Go tool | Add a Go tool |
| 5 | Ruby gem | Add a Ruby gem |
| 6 | Global yarn package | Add a global yarn package |
| 7 | uv Python tool | Add a uv tool |
| 8 | Custom GitHub/source package | Add a custom package |
| 9 | llama.cpp GGUF model | Add a llama.cpp model |
Core workflow
- Edit the source file under
home/. - Run
chezmoi apply. - Verify the tool is installed and available.
The package lists are source-of-truth declarations. For Homebrew specifically, brew bundle cleanup --global --force removes packages not present in the assembled Brewfile.