CLI tools tracked in tasks/metadata.yaml, installed from upstream release binaries, and optionally
packaged into a container image.
curl -Ls https://astral.sh/uv/install.sh | sh
uv syncuv run inv tools.install # all tools to dist/
uv run inv tools.install --name <tool> # single tool to dist/
uv run inv tools.install --local # all tools to ~/.local/bin
uv run inv tools.install --force # force reinstallThe download_url field uses Jinja templates. See tasks/metadata.yaml for examples.
| Variable | Description |
|---|---|
{{name}} |
Tool name |
{{version}} |
Resolved semantic version |
{{repo_url}} |
Repository URL from metadata |
{{os}} |
Target operating system |
{{arch}} |
Target architecture (Go-style) |
{{rust_arch}} |
Rust-style architecture (when required by upstream) |
| Variable | Description |
|---|---|
GITHUB_TOKEN |
GitHub API token (increases rate limits) |
CONTAINER_REGISTRY |
Override the container image registry |
GITHUB_REPOSITORY |
Auto-detected in CI for registry and labels |
Copy .env.example to .env for local configuration.
| Workflow | Trigger | Description |
|---|---|---|
lint-and-test.yaml |
Push to main, pull requests |
Runs pre-commit hooks (lint, tests) |
build-and-publish-image.yaml |
Push to main, pull requests, manual |
Builds and pushes container to GHCR |
bump-tool-versions.yaml |
Weekly schedule (Sundays 03:00), manual | Runs tools.update --pr for bumps |
prune-ghcr-images.yaml |
Daily schedule (01:30 UTC), manual | Removes stale GHCR images |
- CONTRIBUTING.md for adding tools, updating versions, digests, container builds, and development setup
- AGENTS.md for build commands, code style, and testing reference