WARG CLI
warg-cli provides the warg command for working with the WARG autonomy
monorepo. It reads the root projects.toml, loads each project's warg.toml,
resolves project dependencies, manages Git sparse-checkout paths, and runs
project-defined commands.
Installation
Install from PyPI:
uv tool install warg-cli
Commands
Clone the WARG monorepo with sparse checkout enabled:
warg clone
warg clone autonomy-monorepo
warg clone git@github.com:warg/autonomy-monorepo.git
Only root files such as README.md and projects.toml are checked out
initially. Project directories stay absent until they are materialized. When
called without a repository, warg clone opens a searchable list of repositories
in the UWARG GitHub organization, sorted by most recently updated first. You can
also pass a UWARG repository name instead of a full clone URL.
Fork, clone, and configure the autonomy bootcamp repository:
warg bootcamp
warg bootcamp my-bootcamp
This forks UWARG/autonomy-bootcamp into your account with the gh CLI,
clones the fork, and sets origin to your fork and upstream to the original
repository. It needs gh installed and logged in. See the
bootcamp repository for details.
Check the machine for common dev environment problems:
warg doctor
warg doctor --verbose
Doctor checks the tools the CLI depends on (Git, uv, Docker, gh), SSH access to
GitHub, and the current clone's remote, Git identity, and checked-out projects.
Each result is marked ok, warn, or fail, with a suggested fix for anything that
isn't ok. The command exits non-zero only when a check fails. Run it from inside
a clone to include the repository checks; elsewhere they are skipped.
--verbose prints the output of every command doctor ran.
List registered projects:
warg list
Materialize a project and its dependencies:
warg up gesture_control
Unload a project from sparse checkout:
warg down gesture_control
Projects that depend on the unloaded project are unloaded too, with a warning.
Pass --include-dependencies to also unload checked-out dependencies.
Inspect a project's manifest metadata:
warg info gesture_control
Run commands defined in a project's warg.toml:
warg run camera test
warg run camera test:unit
warg run mavlink_comm lint -- --fix
If warg up or warg run is called without a project or command where one can
be selected interactively, the CLI prompts for a choice.
Project commands
The CLI does not hardcode command names such as test, lint, or run.
Projects define their own command surface in warg.toml:
[commands]
setup = "uv sync"
test = "uv run pytest"
run = "uv run python -m gesture_control"
lint = "uv run ruff check ."
warg up <project> runs setup for the project and its dependencies every
time, keeping already-materialized projects in sync with their current setup
commands.
Development
From the monorepo root directory:
warg run warg_cli setup
warg run warg_cli test
warg run warg_cli run -- --help
The package exposes the CLI entry point from pyproject.toml:
[project.scripts]
warg = "cli:app"
Metadata
Release files for warg-cli 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| warg_cli-0.1.3.tar.gz | 40.3 kB | With provenance | Details for warg_cli-0.1.3.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| warg_cli-0.1.3-py3-none-any.whl | Python 3 | none | any | Details for warg_cli-0.1.3-py3-none-any.whl |
Total release size: 62.2 kB
Release files / warg_cli-0.1.3.tar.gz
| Download URL | warg_cli-0.1.3.tar.gz |
|---|---|
| Size | 40.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9856f9e7b3f6385b1cd3c605e1bc76d668ade63bae72788c23eed35385a6ae39
|
|
BLAKE2b-256 checksum How to use checksums |
dd4cb8f3cac681d7a521c6258132b4e0ab40512ded38c64fc3d9326da35fdc62
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.
Transparency logRelease files / warg_cli-0.1.3-py3-none-any.whl
| Download URL | warg_cli-0.1.3-py3-none-any.whl |
|---|---|
| Size | 21.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5b62f3901d318953a293703573c10cedfd108f0d9d5c96f824206ba7f31cdc35
|
|
BLAKE2b-256 checksum How to use checksums |
73482bbef1a93074955ee13ef7baf4219ab35cbc6237f06e8d75ab05b971f789
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.
Transparency logSecurity for warg-cli 0.1.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for warg_cli-0.1.3.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.