alloy-provisioner Command Reference¶
alloy-provisioner runs inside a Linux system (PC, laptop, or server, VM, WSL2, or Docker) and applies a blueprint to install packages, download toolchains, and configure the environment. This page documents the CLI; for the full mental model see How Alloy works. The alloy-host reference documents the host-side tool that manages VMs and runs the provisioner inside them.
Subcommands¶
alloy-provisioner install [name[:tag]]¶
Install supports two modes:
install <name[:tag]>: pull a blueprint from the registry and run it immediately (recommended for Alloy Hub).installwith no name (and--blueprint-dir): run a local blueprint directory without pulling from the registry.
sudo alloy-provisioner install community/nordic/nrf91:1.1.3
sudo alloy-provisioner install community/raspberry-pi/raspberry-pi-5:1.0.3 --registry api.alloy-it.io
# Local blueprint (already cloned or in a repo)
sudo alloy-provisioner install --blueprint-dir /path/to/blueprint
# Simulate without executing tasks (still validates and may pull the blueprint)
sudo alloy-provisioner install --dry-run community/nordic/nrf91:1.1.3
Use a tagged blueprint name. Published tags are listed with clone --list community. The default --tag is latest, which is not published on the registry—always pass name:tag or --tag.
Short names without a project prefix are resolved under community/ (e.g. nordic/nrf91:1.1.3 → community/nordic/nrf91:1.1.3).
alloy-provisioner clone <name[:tag]>¶
Pull blueprint files from the registry without running them. Files are written to:
<blueprint-dir>/blueprints/<name> (default base: ~/.alloy-it/).
alloy-provisioner clone community/nordic/nrf91:1.1.3
# Inspect the blueprint, then:
sudo alloy-provisioner install --blueprint-dir ~/.alloy-it/blueprints/community/nordic/nrf91
--list <project>: browse available blueprints¶
Example output shape:
BLUEPRINT TAGS
community/nordic/nrf91 1.1.3
community/nordic/nrf52 1.1.3
community/raspberry-pi/raspberry-pi-5 1.0.3
...
Use the blueprint name and tag from the list as the argument to clone or install:
alloy-provisioner clone community/nordic/nrf91:1.1.3
sudo alloy-provisioner install community/nordic/nrf91:1.1.3
alloy-provisioner check¶
Run pre-flight URL reachability checks on the blueprint without provisioning tasks. Exit code 0 if all checks pass, 1 if any URL is unreachable.
alloy-provisioner update-check¶
Query GitHub releases and print whether a newer alloy-provisioner version is available.
Running from a local blueprint¶
For Docker builds where you want tasks with exclude: [docker] to be skipped (required on 1.4.0):
export ALLOY_BLUEPRINT_DIR=/path/to/blueprint
sudo -E alloy-provisioner install --blueprint-dir "$ALLOY_BLUEPRINT_DIR"
Global flags¶
These apply to install, clone, check, and update-check (see alloy-provisioner --help).
| Flag | Description |
|---|---|
--blueprint-dir |
Path to the blueprint directory. Overrides ALLOY_BLUEPRINT_DIR. Default: $HOME/.alloy-it |
--docker |
Activate the docker environment tag (skip tasks with exclude: [docker]). Or ALLOY_ENV_DOCKER=1 |
--wsl2 |
Activate the wsl2 environment tag. Or ALLOY_ENV_WSL2=1 |
--dry-run |
Simulate install: validate blueprint and print execution plan without executing tasks. Or ALLOY_DRY_RUN=1 |
--preflight |
Run URL reachability checks before provisioning. Or ALLOY_RUN_PREFLIGHT=1 |
--env-file |
Path to a KEY=VALUE env file; if omitted, .env in the blueprint directory is auto-detected |
-v, --version |
Print version and exit |
Flags on install and clone only¶
| Flag | Description | Default |
|---|---|---|
--registry |
Registry host/URL; overrides ALLOY_URL, ALLOY_REGISTRY_URL, ALLOY_REGISTRY |
api.alloy-it.io |
--tag |
Blueprint image tag when not given as name:tag |
latest (use an explicit tag in practice) |
--platform |
Force OS/arch (e.g. linux/arm64, linux/amd64) |
Current machine |
clone only¶
| Flag | Description |
|---|---|
--list |
List blueprints in a project (e.g. community) and exit |
Environment variables¶
| Variable | Purpose |
|---|---|
ALLOY_BLUEPRINT_DIR |
Blueprint directory path (same as --blueprint-dir) |
ALLOY_URL, ALLOY_REGISTRY_URL, ALLOY_REGISTRY |
Registry URL for pulling blueprints |
ALLOY_REGISTRY_USERNAME |
Username for private registry authentication |
ALLOY_REGISTRY_PASSWORD |
Password or token for private registry authentication |
ALLOY_ENV_DOCKER |
If set to 1, activates the docker environment tag |
ALLOY_ENV_WSL2 |
If set to 1, activates the wsl2 environment tag |
ALLOY_DRY_RUN |
If set to 1, same as --dry-run |
ALLOY_RUN_PREFLIGHT |
If set to 1, same as --preflight |
Custom variables (e.g. for blueprint required_env:) can be set in an env file and passed with --env-file, or exported before running the provisioner.
alloy-provisioner catalog¶
The catalog subcommand lets you browse and query the alloy-catalog toolchain repository from the command line. It is stored locally at ~/.alloy-it/catalog/ and must be fetched before first use.
catalog update¶
Requires git. Run once before searching, and again to pick up new toolchain versions.
catalog search <query>¶
Find toolchain descriptors by ID, name, or tag (not Hub blueprints). For published blueprints use clone --list community.
catalog info <id[@version]>¶
alloy-provisioner catalog info toolchain.arm-gnu.arm-none-eabi
alloy-provisioner catalog info toolchain.arm-gnu.arm-none-eabi@13.3.rel1
For full background on the catalog, see Available Toolchains.
Next steps¶
- Installing environments: native, alloy-host, Docker
- Blueprint variables and env files
- Available Toolchains (catalog)
- alloy-host command reference