Skip to main content

Reconcile behavior

Each package source has a different convergence model. The important question is whether removed declarations also remove installed tools.

Manager behavior

ManagerInstalls / updatesRemoves when deleted from list?Notes
Homebrewbrew bundle --global --no-upgradeYes, via brew bundle cleanup --global --forceassembled Brewfile is authoritative; installs missing only (upgrades owned by ,update)
misemise install --yes, then mise reshimNo cleanup of old runtimes by this hookrespects project .tool-versions; Node reads .nvmrc
Cargoinstalls missing cratesYeshook uninstalls crates no longer listed
Goinstalls missing module binariesYes, but only binaries this tooling installedstate ledger at ~/.cache/chezmoi/golang-pkgs-state protects hand-installed binaries
Ruby gemsinstalls listed gemsNohook does not uninstall gems removed from the list
yarninstalls missing globals, uninstalls absent globals, upgrades latestYesavoids Yarn v1 staying on old 0.x ranges
uv Pythoninstalls listed managed Python versionsYeshook uninstalls managed Python versions absent from home/readonly_dot_python-version
uv toolsinstalls listed global toolsmanaged by uv tool hooktool source is home/readonly_dot_default-uv-tools.tmpl
gh extensionsinstalls managed extensionsYeshook prunes extensions no longer listed
Custom packagesdownloads GitHub release assets, DMGs, or source buildsPartialstale launchers/repos are cleaned when safe; dirty source repos are preserved

Notable package decisions

DecisionReason
Homebrew link: false for colliding sem binariesGNU parallel and Ataraxy semantic-git both expose sem; wrappers expose the intended ,parallel and ,sem commands
Pi globals live in yarn@earendil-works/pi-coding-agent, @earendil-works/pi-tui, pi-mcp-adapter, and pi-subagents are kept together in the managed yarn list
Custom installer includes ytsurfinstalled outside standard package managers in this setup
git_maven_jar rows are declarativeadd/update rows clone/build/install; removed clean repos are deleted; dirty stale repos are preserved

Where to make changes

GoalStart here
Add or remove a Homebrew packageAdd a Homebrew package
Pin a runtimePin a tool version
Add a language-specific CLICargo / Go / Ruby / yarn / uv recipe pages
Add a GitHub release binary or DMGCustom packages registry