TAO Setup
One-time session bootstrap for the TAO skill bank. TAO skills are standalone —
each model, data, and platform skill carries its own pinned container image and
instructions — but multi-skill workflows chain them (data prep, train,
evaluate, deploy). This skill provides the session-level pieces that make that
chaining work when skills are installed individually: the discovery flow, the
credential conventions, and the host preflight.
When the full skill bank is installed as a plugin from this repository, a
SessionStart hook injects this guidance automatically and you do not need to
run this skill. When skills were installed one-by-one from a skills catalog,
run this skill first.
Quick Start
set -a; source /path/to/.env; set +a # omit if already exported
# 1. Host preflight — most TAO skills dispatch docker containers on a GPU host.
docker info > /dev/null && echo "OK: docker" || echo "MISSING: docker"
nvidia-smi > /dev/null && echo "OK: GPU" || echo "MISSING: NVIDIA GPU/driver"
# 2. Credential presence check — names only, never print values.
for v in NGC_KEY HF_TOKEN WANDB_API_KEY ACCESS_KEY SECRET_KEY S3_BUCKET_NAME S3_ENDPOINT_URL BREV_API_TOKEN; do
[ -n "${!v:-}" ] && echo "SET: $v" || echo "unset: $v"
done
# 3. NGC registry login (needed for nvcr.io image pulls). Key goes over
# stdin — never as an argv flag, where it lands in the process table.
[ -n "${NGC_KEY:-}" ] && printf '%s' "$NGC_KEY" | docker login nvcr.io -u '$oauthtoken' --password-stdin
If Docker or the NVIDIA host runtime is missing, use the
tao-setup-nvidia-gpu-host skill — it checks and (with approval) installs
NVIDIA driver 580 or newer, CUDA Toolkit 13.0 or newer, and NVIDIA Container
Toolkit 1.19.0 or newer, and can install Docker itself on Debian/RHEL/SUSE-family
hosts. These are TAO-wide minimums. If the selected model's
references/skill_info.yaml declares runtime_requirements.gpu_host, pass
those model-specific minimums to the host setup skill instead.
Credentials
Load a user-approved env file with set -a; source /path/to/.env; set +a in the
same bash call as the command that consumes the variable. This skill never
creates a credentials file for you; the one credential write here is step 3's
docker login, which stores an nvcr.io token in ~/.docker/config.json.
NGC_KEY — nvcr.io image pulls (most skills)
HF_TOKEN — gated HuggingFace weights (several model skills)
WANDB_API_KEY — experiment tracking (optional)
ACCESS_KEY / SECRET_KEY / S3_BUCKET_NAME / S3_ENDPOINT_URL — S3 I/O
BREV_API_TOKEN — Brev platform dispatch
Discovery flow (how TAO skills chain)
Read the task skill. Model skills (tao-train-*, tao-finetune-*)
own network specifics; data skills (tao-generate-*, tao-analyze-*,
tao-mine-*, …) own transforms; application skills (tao-run-automl,
tao-run-deft-aoi, …) compose model + data + platform into workflows.
Read the skill's references/skill_info.yaml (when present) for the
structured contract: container_image (a pinned URI), or
backend_contracts.<backend>.container_image for a multi-backend frontend;
per-action command, mode, config_format, inputs, outputs, and
optional runtime_requirements.gpu_host. Model runtime requirements
override the TAO-wide platform defaults for that workflow.
Pick an execution platform and read its skill for mounts, env vars,
and resource conventions: tao-run-on-docker conventions apply to any
local docker run; tao-run-on-slurm, tao-run-on-kubernetes, and
tao-run-on-brev cover managed dispatch; tao-run-on-virtualenv runs a
Python script docker-free in a local venv. Externally installed platform
skills (e.g. kratos) join as peers — no registration needed.
The platforms are equal-class peers — if the user has not chosen, ask;
never default silently. Every platform skill implements the same
four-verb consumer contract (submit/status/logs/cancel) over its
native CLI (docker/kubectl/ssh+sbatch/brev exec) — there is no
nvidia-tao-sdk.
Construct the spec as nested dicts ({"train": {"num_epochs": 12}},
never flat dotted keys), confirm with the user, then execute the four
verbs: tao-launch-workflow drives the shared launch gate;
scripts/tao_job_record.py open mints the job id and binds results_dir
before launch (record-then-launch); the platform skill runs submit; then
monitor with status/logs, mapping native states to the fixed vocabulary
PENDING RUNNING COMPLETE ERROR CANCELED UNKNOWN.
Conventions all TAO skills follow
- Confirm before side effects.
docker run, job submission, pushes, and
file mutations outside the working directory need user confirmation first.
Installing a missing Python package prerequisite is the one exception:
install it by default and report what was installed.
- Never ask for credentials in chat and never print credential values or
the contents of a credentials file; name the missing variable so the user can
export it or add it to an env file you then source.
- Container images are pinned per skill. Each skill carries the exact
image URI it was validated against; do not swap tags silently. Offer
overrides only when the skill documents an override path.
- Runtime requirements are layered. Platform skills own the default host
requirements and the check/install mechanism. A model may override only the
minimum versions it has validated by declaring
runtime_requirements.gpu_host
in references/skill_info.yaml; pass those values to the shared host setup
check rather than changing the defaults for unrelated models.
- Execution is SDK-free. Job tracking (
scripts/tao_job_record.py),
S3/data staging (tao-data-io, storage tiers A/B/C), and multi-node (the
SLURM/K8s templates + scripts/nccl_allreduce_probe.py) are built into the
bank — no nvidia-tao-sdk. The one exception is AutoML search
(tao-run-automl), which uses the nvidia-tao-automl wheel and its
transitive SDK.
Optional: Codex agent identity
For Codex sessions, scripts/install-codex-agents.sh registers the TAO skill
marketplace, installs the plugin, and copies the TAO agent identity to
~/.codex/AGENTS.md so it loads in every session:
bash scripts/install-codex-agents.sh
1---2name: tao-setup3description: One-time session setup and orchestration map for the TAO skill bank. Run this first when the TAO skills were installed individually (e.g. from a public skills catalog) so the session gets the cross-skill discovery flow, credential checks, and host preflight that the bundled plugin hook would otherwise inject automatically. Trigger phrases include "set up TAO skills", "TAO session setup", "prepare TAO environment", "TAO getting started".4license: Apache-2.05---67# TAO Setup89One-time session bootstrap for the TAO skill bank. TAO skills are standalone —10each model, data, and platform skill carries its own pinned container image and11instructions — but multi-skill workflows chain them (data prep, train,12evaluate, deploy). This skill provides the session-level pieces that make that13chaining work when skills are installed individually: the discovery flow, the14credential conventions, and the host preflight.1516When the full skill bank is installed as a plugin from this repository, a17SessionStart hook injects this guidance automatically and you do not need to18run this skill. When skills were installed one-by-one from a skills catalog,19run this skill first.2021## Quick Start2223```bash24set -a; source /path/to/.env; set +a # omit if already exported2526# 1. Host preflight — most TAO skills dispatch docker containers on a GPU host.27docker info > /dev/null && echo "OK: docker" || echo "MISSING: docker"28nvidia-smi > /dev/null && echo "OK: GPU" || echo "MISSING: NVIDIA GPU/driver"2930# 2. Credential presence check — names only, never print values.31for v in NGC_KEY HF_TOKEN WANDB_API_KEY ACCESS_KEY SECRET_KEY S3_BUCKET_NAME S3_ENDPOINT_URL BREV_API_TOKEN; do32 [ -n "${!v:-}" ] && echo "SET: $v" || echo "unset: $v"33done3435# 3. NGC registry login (needed for nvcr.io image pulls). Key goes over36# stdin — never as an argv flag, where it lands in the process table.37[ -n "${NGC_KEY:-}" ] && printf '%s' "$NGC_KEY" | docker login nvcr.io -u '$oauthtoken' --password-stdin38```3940If Docker or the NVIDIA host runtime is missing, use the41`tao-setup-nvidia-gpu-host` skill — it checks and (with approval) installs42NVIDIA driver 580 or newer, CUDA Toolkit 13.0 or newer, and NVIDIA Container43Toolkit 1.19.0 or newer, and can install Docker itself on Debian/RHEL/SUSE-family44hosts. These are TAO-wide minimums. If the selected model's45`references/skill_info.yaml` declares `runtime_requirements.gpu_host`, pass46those model-specific minimums to the host setup skill instead.4748## Credentials4950Load a user-approved env file with `set -a; source /path/to/.env; set +a` in the51same bash call as the command that consumes the variable. This skill never52creates a credentials file for you; the one credential write here is step 3's53`docker login`, which stores an nvcr.io token in `~/.docker/config.json`.5455- `NGC_KEY` — nvcr.io image pulls (most skills)56- `HF_TOKEN` — gated HuggingFace weights (several model skills)57- `WANDB_API_KEY` — experiment tracking (optional)58- `ACCESS_KEY` / `SECRET_KEY` / `S3_BUCKET_NAME` / `S3_ENDPOINT_URL` — S3 I/O59- `BREV_API_TOKEN` — Brev platform dispatch6061## Discovery flow (how TAO skills chain)62631. **Read the task skill.** Model skills (`tao-train-*`, `tao-finetune-*`)64 own network specifics; data skills (`tao-generate-*`, `tao-analyze-*`,65 `tao-mine-*`, …) own transforms; application skills (`tao-run-automl`,66 `tao-run-deft-aoi`, …) compose model + data + platform into workflows.67682. **Read the skill's `references/skill_info.yaml`** (when present) for the69 structured contract: `container_image` (a pinned URI), or70 `backend_contracts.<backend>.container_image` for a multi-backend frontend;71 per-action `command`, `mode`, `config_format`, `inputs`, `outputs`, and72 optional `runtime_requirements.gpu_host`. Model runtime requirements73 override the TAO-wide platform defaults for that workflow.74753. **Pick an execution platform and read its skill** for mounts, env vars,76 and resource conventions: `tao-run-on-docker` conventions apply to any77 local `docker run`; `tao-run-on-slurm`, `tao-run-on-kubernetes`, and78 `tao-run-on-brev` cover managed dispatch; `tao-run-on-virtualenv` runs a79 Python script docker-free in a local venv. Externally installed platform80 skills (e.g. kratos) join as peers — no registration needed.81 The platforms are equal-class peers — if the user has not chosen, ask;82 never default silently. Every platform skill implements the same83 **four-verb consumer contract** (`submit`/`status`/`logs`/`cancel`) over its84 native CLI (`docker`/`kubectl`/`ssh`+`sbatch`/`brev exec`) — there is no85 `nvidia-tao-sdk`.86874. **Construct the spec as nested dicts** (`{"train": {"num_epochs": 12}}`,88 never flat dotted keys), confirm with the user, then **execute the four89 verbs**: `tao-launch-workflow` drives the shared launch gate;90 `scripts/tao_job_record.py open` mints the job id and binds `results_dir`91 *before* launch (record-then-launch); the platform skill runs `submit`; then92 monitor with `status`/`logs`, mapping native states to the fixed vocabulary93 `PENDING RUNNING COMPLETE ERROR CANCELED UNKNOWN`.9495## Conventions all TAO skills follow9697- **Confirm before side effects.** `docker run`, job submission, pushes, and98 file mutations outside the working directory need user confirmation first.99 Installing a missing Python package prerequisite is the one exception:100 install it by default and report what was installed.101- **Never ask for credentials in chat** and never print credential values or102 the contents of a credentials file; name the missing variable so the user can103 export it or add it to an env file you then source.104- **Container images are pinned per skill.** Each skill carries the exact105 image URI it was validated against; do not swap tags silently. Offer106 overrides only when the skill documents an override path.107- **Runtime requirements are layered.** Platform skills own the default host108 requirements and the check/install mechanism. A model may override only the109 minimum versions it has validated by declaring `runtime_requirements.gpu_host`110 in `references/skill_info.yaml`; pass those values to the shared host setup111 check rather than changing the defaults for unrelated models.112- **Execution is SDK-free.** Job tracking (`scripts/tao_job_record.py`),113 S3/data staging (`tao-data-io`, storage tiers A/B/C), and multi-node (the114 SLURM/K8s templates + `scripts/nccl_allreduce_probe.py`) are built into the115 bank — no `nvidia-tao-sdk`. The one exception is AutoML search116 (`tao-run-automl`), which uses the `nvidia-tao-automl` wheel and its117 transitive SDK.118119## Optional: Codex agent identity120121For Codex sessions, `scripts/install-codex-agents.sh` registers the TAO skill122marketplace, installs the plugin, and copies the TAO agent identity to123`~/.codex/AGENTS.md` so it loads in every session:124125```bash126bash scripts/install-codex-agents.sh127```