Skip to content

Packages

Minimal makes it easy to add tools and dependencies to your project using the minimal add command.

Adding a package

Every package needs a destination, which controls where it should be available. There are three options:

shell
# Add to a specific task
$ minimal add --task shell ripgrep jq

# Add as a build dependency (needed to compile your code)
$ minimal add --build protobuf-compiler

# Add as a runtime dependency (needed wherever your code runs)
$ minimal add --runtime openssl

Each command updates your minimal.toml automatically.

Build vs runtime dependencies

Build dependencies are packages needed during compilation but not at runtime. These are declared in the [harness] section:

toml
[harness]
use = "rust"
build_packages = ["protobuf-compiler", "perl"]

Runtime dependencies are packages that must be present wherever the built software runs:

toml
[harness]
use = "rust"
runtime_packages = ["openssl"]

Task-specific packages

Packages can also be added to individual tasks. These are only available when that task runs:

toml
[tasks.shell]
packages = ["base", "git", "curl"]
exec = "bash -l"

[tasks.lint]
packages = ["python", "ruff"]
exec = "ruff check ."

Available packages

The Minimal Public Package Registry contains 150+ packages including compilers, interpreters, build tools, and common CLI utilities.