The CLI is the power-user / headless path. For the standard
record → train → deploy workflow, the app and web app training UI
is the polished route. Reach for the CLI when you’re scripting training, working
over SSH, or need to point a run at a custom ACT fork (the researcher feature).
training_client CLI ships with Innate OS and drives the same cloud training orchestrator the robot’s training node uses. Run it on the robot over SSH (or inside the Docker container).
Setup
Source the ROS workspace so the module is importable:--server defaults to Innate’s orchestrator). The robot’s training node already uses the same key; to run the CLI yourself, set it in your shell:
python -m training_client.cli <command> (or the installed innate-training <command> shorthand).
Every command takes a SKILL_DIR — a skill’s dataset directory (under ~/innate-os/workspace/custom_skills/<skill>), defaulting to the current directory. The skill’s cloud ID is read from SKILL_DIR/metadata.json, which submit writes.
Global options
| Option | Env var | Description |
|---|---|---|
--server, -s | TRAINING_SERVER_URL | Orchestrator URL (defaults to the production server) |
--token, -t | INNATE_SERVICE_KEY | Service key — required |
--issuer | INNATE_AUTH_ISSUER_URL | OIDC issuer; the token is exchanged for a JWT here |
Typical workflow
Commands
| Command | Description |
|---|---|
submit [SKILL_DIR] | Create (or reuse) a cloud skill from the dataset dir; writes training_skill_id to metadata.json |
upload [SKILL_DIR] | Upload the skill’s data files |
run [SKILL_DIR] | Launch a training run (options below) |
status [SKILL_DIR] RUN_ID | Print a run’s current status |
watch [SKILL_DIR] RUN_ID | Poll a run until it completes (--interval seconds, default 20) |
runs [SKILL_DIR] | List all runs for the skill |
skills | List all your skills |
download [SKILL_DIR] RUN_ID | Download a completed run’s results (--dest for the output dir) |
fetch-data [SKILL_DIR] | Download the skill’s input training data (--dest) |
activate [SKILL_DIR] RUN_ID | Set the trained checkpoint + stats file into metadata.json so the robot loads it |
Launching a run
run takes a server-side preset, a fully custom configuration, or a preset with overrides:
| Option | Description |
|---|---|
--preset | Server-side preset (e.g. act-default) — pre-fills everything below |
--repo | GitHub owner/repo of a custom ACT fork to train with |
--ref | Branch, tag, or commit in that repo |
--command, -c | Training command parts (repeatable) |
--env, -e | Environment variables as KEY=VALUE (repeatable) |
--gpu-type | GPU type (e.g. H100) |
--min-gpus / --max-gpus | GPU count bounds |
--hours | Estimated duration |
--budget | Max total cost in USD |
--checkpoint-patterns, -p | Globs for which output files to upload (e.g. checkpoints/**/*.pt) |

