jetson-containers-agent
Agent + CLI (jca) wrapping the jetson-containers family (dusty-nv, NVIDIA-AI-IOT, jetson-ai-lab forks): track upstreams, diff packages across forks, and build/run containers on Jetson.
The family
jetson-containers is the modular Docker build system for Jetson AI/ML containers. Several copies of it now evolve independently:
| Remote | Variant | Default branch | Relationship |
|---|---|---|---|
dusty-nv/jetson-containers |
dusty |
master |
the original |
NVIDIA-AI-IOT/jetson-containers |
nv |
dev |
independent repo, not a GitHub fork |
jetson-ai-lab/jetson-containers |
lab |
master |
GitHub fork of dusty-nv |
jca answers questions like "which fork has the newest vllm / pytorch /
JetPack support?" It computes cross-fork divergence with git, because the
GitHub compare API doesn't work across non-fork repos. It builds by
delegating to a fork's own jetson-containers tooling instead of
reimplementing it.
Status
Early. The repo is scaffolded, and the domain verbs are being built against issue #1:
| Verb | Layer | State |
|---|---|---|
jca remotes, jca status, jca sync |
registry and tracking (read-only) | planned |
jca packages, jca diff <pkg> --between A B |
package-level diff (read-only) | planned |
jca build, jca run |
delegated build/run (dry-run by default, --apply) |
planned |
Available today are the agent-first verbs and jca switch:
| Verb | What it does |
|---|---|
jca whoami |
Report this agent's nick, version, backend, and model from culture.yaml. |
jca learn |
Print a structured self-teaching prompt. |
jca explain <path> |
Markdown docs for any noun/verb path. |
jca overview |
Read-only descriptive snapshot of the agent. |
jca doctor |
Check the agent-identity invariants (prompt-file-present, backend-consistency). |
jca cli overview |
Describe the CLI surface itself. |
jca switch [<variant>] |
Point .local/jetson-containers (git-ignored) at a variant checkout; no argument shows the active one. |
Every command supports --json. Results go to stdout and errors/diagnostics
to stderr (never mixed). Exit codes: 0 success, 1 user error, 2
environment error, 3+ reserved. jca never pushes to or opens PRs on the
upstream repos.
Quickstart
uv sync
uv run pytest -n auto # run the test suite (no network, no Jetson needed)
uv run jca whoami # identity from culture.yaml
uv run jca learn # self-teaching prompt (add --json)
uv run teken cli doctor . --strict # the agent-first rubric gate CI runs
Working with the variant checkouts
The forks are cloned and maintained from this repo as sibling working clones, not as git submodules. A symlink selects the active one:
../jetson-containers-dusty/
../jetson-containers-nv/
../jetson-containers-lab/
../jetson-containers -> jetson-containers-<active>
To select a variant for work in this repo, use jca switch. It keeps its
symlink inside the repo, in the git-ignored .local/ folder, and finds
checkouts in .local/ first, then in the workspace:
uv run jca switch # active variant + every checkout found
uv run jca switch nv # .local/jetson-containers -> ../jetson-containers-nv
uv run jca switch --json # machine-readable; includes launcher state
The bundled jetson-containers-variants skill manages this layout. Set
JCA_WORKSPACE to use a directory other than this repo's parent:
S=.claude/skills/jetson-containers-variants/scripts/variants.py
python3 $S clone --all # clone missing variants at their default branch
python3 $S status # active variant, branch/HEAD/dirty, ahead/behind
python3 $S switch nv # point ../jetson-containers at the nv clone
python3 $S sync # fetch; fast-forward only clean default-branch checkouts
Heads-up: the upstream install.sh links /usr/local/bin/jetson-containers
and autotag directly into one checkout. The global command therefore
ignores switch until those links go through ../jetson-containers.
status and launcher detect this and print the sudo ln -sfn … fix. The
skill never runs sudo itself.
The variant registry is
.claude/skills/jetson-containers-variants/data/variants.json. Add user forks
there.
Agent harnesses
This is an AgentCulture mesh agent
(culture.yaml: suffix jetson-containers-agent, backend: claude). Four
harnesses work in this clone, and each reads exactly one root file:
| Harness | File(s) |
|---|---|
| Claude Code (also the mesh resident) | CLAUDE.md |
| Pi / associate | AGENTS.override.md + .pi/SYSTEM.md |
| colleague | AGENTS.colleague.md |
| Qwen Code | QWEN.md |
There is intentionally no AGENTS.md. The skill kit lives in
.claude/skills/: the guildmaster kit vendored cite-don't-import, plus local
skills. See docs/skill-sources.md. For why the
interactive harness and the mesh resident are separate choices, see
docs/harness-selection.md.
Neighbours
jca owns the container source repos and their divergence. For other Jetson
concerns, see jetson-cli (device setup), jetson (knowledge base),
jetson-ai-lab-cli (the jetson-ai-lab site and models), jetson-arena
(benchmarks), and jetson-orin-cli / jetson-thor-cli (board-specific).
Contributing
Every PR bumps the version (version-bump skill), and CI blocks merge
otherwise. Merges to main publish to PyPI via Trusted Publishing. See
CLAUDE.md for the full conventions.
License
Apache 2.0. See LICENSE.
Metadata
Release files for jetson-containers-agent 0.11.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| jetson_containers_agent-0.11.0.tar.gz | 250.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| jetson_containers_agent-0.11.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 280.6 kB
Release files / jetson_containers_agent-0.11.0.tar.gz
| Download URL | jetson_containers_agent-0.11.0.tar.gz |
|---|---|
| Size | 250.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a1eb86dad3ec853d0e18cddce41e54087398c93df73cdc734edb7f8a83d2540c
|
|
BLAKE2b-256 checksum How to use checksums |
58f5aa6dd3f5bf4c605aa6ff38e06aa83320cc0b86848e830dadb133aedc4394
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / jetson_containers_agent-0.11.0-py3-none-any.whl
| Download URL | jetson_containers_agent-0.11.0-py3-none-any.whl |
|---|---|
| Size | 29.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e373ea9f3c9e624dd6fc832d3403220a3bde0c6dc0579bf3fc74e26457916d35
|
|
BLAKE2b-256 checksum How to use checksums |
fbd00a6ca0de2e456408fc1369063f7b38af45dc3ccf70448913882ddaa4c183
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|