Package Installation
Skill for installing, adding, or setting up packages, CLI tools, and applications. Manages configuration manifests (Mise, Homebrew) and applies changes via chezmoi.
name: install description: Use when the user asks to install, add, or set up a package, tool, CLI, or application argument-hint: [package-name...] allowed-tools:
- Read
- Grep
- Glob
- AskUserQuestion
- Edit(home/dot_config/mise/config.toml)
- Edit(home/.chezmoidata/packages.yaml)
- Bash(mise registry:*)
- Bash(mise ls-remote:*)
- Bash(gh release view:*)
- Bash(npm view:*)
- Bash(pip index:*)
- Bash(chezmoi diff:*)
Package Installation Skill
Arguments
$ARGUMENTS: Space-separated package names to install.
Workflow
When to escalate: For complex backend decisions, version conflicts, or security concerns, consult the Package Manager subagent.
For each package in $ARGUMENTS:
1. Identify Package Type
Check in order:
-
Mise registry:
mise registry | grep -i <package> -
Known GUI/system apps: GUI applications → cask, system utilities → brew
Package type mapping:
| Package Type | Format |
|-------------|---------|
| Aqua registry | "aqua:owner/repo" = "version" |
| GitHub releases | "github:owner/repo" = "version" |
| Python CLI | "pipx:package" = "version" |
| Node.js CLI | "npm:package" = "version" |
| GUI app | Add to casks list |
| System utility | Add to brews list |
2. Discover Latest Version
GitHub tools (aqua/github):
gh release view --repo <owner>/<repo> --json tagName --jq .tagName
npm:
npm view <package> version
PyPI:
pip index versions <package> 2>/dev/null | head -1
Native mise:
mise ls-remote <tool> | tail -1
3. Add to Manifest
Mise tools → home/dot_config/mise/config.toml:
- Add under
[tools]section - Use backend prefix
- Pin exact version
- Follow comment organization (Runtimes, Aqua, GitHub, Python, Node)
Homebrew → home/.chezmoidata/packages.yaml:
- Add to
packages.darwin.brewsorpackages.darwin.casks - Follow alphabetical order
4. Verify
chezmoi diff
Expected: Only the intended manifest file changed. If unrelated changes appear, investigate.
5. Apply
Requires user approval:
chezmoi apply
CRITICAL: Always run chezmoi apply with no arguments. This triggers run_onchange_00-install-mise-tools.sh.tmpl which runs mise install. Targeted apply (chezmoi apply <file>) skips this script.
If the diff shows unrelated changes, ask the user how to proceed - do NOT attempt a partial apply.
6. Commit
git add <manifest-file>
git commit -m "feat: add <package-name>"
After all packages: Ask user "All packages installed and committed. Push to origin?"
Rules
- Mise > Homebrew for dev tools; aqua > other mise backends
- Exact versions only (no
latest, ranges, wildcards) - One commit per package
- Edit source files in
home/only
Reference
See docs/package-management.md for complete backend documentation.
Related skills
Docker Compose Architect
Designs optimized Docker Compose configurations.
Incident Postmortem Writer
Writes structured and blameless incident postmortem reports.
Runbook Creator
Creates clear operational runbooks for common DevOps procedures.