Caasi
A lightweight, CLI-first orchestration layer for NVIDIA Isaac Sim, Isaac Lab and the wider robotics ecosystem (ROS 2, Nav2, MoveIt 2, ros2_control, ...).
Headless-first. CLI-first. Process-oriented. Visualization-independent.
Documentation: https://a6y3ap.github.io/caasi/
Note: Caasi is an independent open-source project. It is not affiliated with, endorsed by, or an official product of NVIDIA.
Philosophy
- Use existing software. Don't reinvent it. Caasi discovers, configures, launches, connects, monitors and manages tools that already exist.
- Simulation is not visualization. Run headless by default; attach a viewer only when needed.
- Minimum required stack. The Caasi process itself stays lightweight and never imports the heavy Isaac stack, PyTorch or rclpy — it only delegates to them.
- Don't become another ROS. ROS orchestration is delegated to the real
ros2tooling. - Unix-friendly. Small commands,
--jsonoutput, sensible exit codes.
Install
Requires Python 3.10+ on Linux. The Isaac stack, ROS 2 and PyTorch are discovered, not installed, by Caasi.
pipx install caasi # recommended: isolated env, `caasi` linked into ~/.local/bin (on PATH)
pip install caasi # or into the active environment
Both install the caasi console script into the environment's bin/; pipx additionally
makes it available system-wide for your user (pipx ensurepath if ~/.local/bin is not
on PATH). On PEP 668 distros (Ubuntu 23.04+, Debian 12+, Fedora) a bare system-wide
pip install is refused — use pipx or a dedicated venv:
python3 -m venv ~/.venvs/caasi && ~/.venvs/caasi/bin/pip install caasi
From source:
git clone https://github.com/a6y3ap/caasi.git && cd caasi
pip install -e . # add pytest as well: pip install -e ".[dev]"
Upgrade: pipx upgrade caasi / pip install -U caasi. Shell completion:
caasi --install-completion.
Quickstart
caasi doctor # diagnose the whole environment
caasi doctor --component nvidia # one section only
caasi gpu status # GPU overview via nvidia-smi
caasi system status # OS / CPU / RAM / disk summary
caasi info # CLI + configured/detected ecosystem versions
caasi config show # effective configuration
caasi config set tools.isaacsim.default "6.0"
Every command supports --help (caasi help gpu status works too). The root listing is
grouped by topic; CAASI_HELP_ORDER=alpha flattens it to a–z. Data commands
support --json for scripting:
caasi gpu status --json | jq '.gpus[0]["memory.used"]'
if caasi doctor --quiet; then echo "environment ready"; fi
Simulations, training jobs and ROS launches start detached and are tracked as runs — the CLI returns immediately and the work survives your terminal:
caasi sim run experiments/wave.yaml
caasi run list
caasi logs latest --follow # Ctrl+C stops following, the run keeps going
caasi run status latest
Command surface
| Group | Commands | Reference |
|---|---|---|
| Environment | doctor, gpu status|info|memory|doctor|monitor|test, system status|doctor|memory|processes, info, version |
environment.html |
| Configuration | config show|get|set|path|tools|catalog |
configuration.html |
| Projects | init, setup, project info|validate, robot list|create|inspect|info|import|validate, scene list|create|inspect|import|validate|capture|reconstruct, task |
projects.html |
| Runs & logs | run list|status|logs|attach|stop|pause|resume|delete|inspect, logs |
runs.html |
| Simulation | sim run|headless|status|check|logs|extensions|stop|pause|resume, lab status|run|train|play|evaluate |
simulation.html |
| Training | train, benchmark start|report |
training.html |
| Data & sensors | dataset list|generate|inspect|convert|validate|download, sensor list|inspect|test, vision status|inspect|test |
data.html |
| Review | replay, view rviz|foxglove|open3d|attach|run |
review.html |
| ROS ecosystem | ros status|doctor|list|launch|topic|node|graph|service, nav status|launch|inspect|test|doctor, moveit status|launch|plan|test|doctor, control status|list|check|doctor |
ros.html |
| GPU-accelerated robotics | isaac-ros status|list|doctor|launch, perception status|camera|pose|detect|segment|inspect, slam status|launch|test|benchmark, mapping status|run|inspect, motion status|serve|plan|execute|benchmark, nitros status|doctor, pipeline inspect |
accelerated.html |
| Synthetic data & teleop | synth status|generate|preview|validate, teleop start|record|stop|replay |
synthetic.html |
| Physics & foundation models | physics status|list|run|benchmark, warp status|test|benchmark, groot status|setup|run|train|evaluate, cosmos status|run|dataset |
platform.html |
| Native & shell | native run|sim|lab|ros, shell |
native.html |
| Remote & containers | remote list|connect|run, container list|status|check|doctor|run |
remote.html |
More examples:
caasi train experiments/ant.yaml --steps 500000 --envs 4096
caasi ros status && caasi nav launch --map maps/warehouse.yaml
caasi container run nvcr.io/nvidia/isaac-sim:5.1.0 ./runheadless.sh
caasi remote run gpu-box python train.py --steps 1000
caasi perception status && caasi slam launch --backend toolbox
caasi synth generate experiments/sdg.yaml --episodes 100
caasi teleop record -t /cmd_vel --name demo
caasi physics run experiments/wave.yaml --engine newton
caasi groot train configs/finetune.yaml --epochs 3
Configuration
Global config lives at ~/.config/caasi/config.yaml; a project-local ./caasi.yaml
is merged on top. Override the global file with CAASI_CONFIG or --config;
CAASI_LANG overrides the language.
language: en
tools:
isaacsim:
default: "6.0"
versions:
"6.0": { path: /opt/isaac-sim-6.0 }
"5.1": { path: /opt/isaac-sim-5.1 }
remotes:
gpu-box:
host: 10.0.0.5
user: robot
port: 2222
identity: ~/.ssh/id_ed25519
path: ~/experiments
physics:
default: newton # engine used when `--engine` is omitted
catalog:
slam:
toolbox:
packages: [slam_toolbox] # re-point a capability when upstream renames it
Manage it with caasi config show|get|set|path|tools|catalog. The catalog: section is
how Caasi knows what to look for: each capability lists the packages, binaries, Python
modules, env vars and paths to probe, in that order. Nothing is imported — a new upstream
version is a config change, not a code change.
Examples
examples/navigation.yaml is a commented experiment config —
the input format shared by sim run, train, benchmark start and dataset generate:
caasi sim run examples/navigation.yaml --dry-run # print the launch command, start nothing
Tests
pytest
Documentation
Read it at https://a6y3ap.github.io/caasi/ or open
docs/index.html directly in a browser — the pages are plain HTML in
docs/ and need no build step.
The reference is split by concern: environment and configuration for the machine and the capability catalog; runs, projects, simulation, training, data and review for the daily workflow; ros for ROS 2, Nav2, MoveIt 2 and ros2_control; accelerated for Isaac ROS, perception, SLAM, mapping, motion and NITROS; synthetic for Replicator synthetic data and teleoperation; platform for physics engines, Warp, GR00T and Cosmos; and native plus remote for the escape hatches.
License
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file caasi-0.2.0.tar.gz.
File metadata
- Download URL: caasi-0.2.0.tar.gz
- Upload date:
- Size: 280.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.11 {"installer":{"name":"uv","version":"0.12.11","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eb03b24b9804ed751ccaae52a24ac20f1329ed70ef33ab84c6ab7c24e28fe374
|
|
| MD5 |
3ece21e3e14d45f9e9636fcb46cc9ff6
|
|
| BLAKE2b-256 |
805102ad661ac2725ea13c9fe25e9e3299394146d39aaec29a6c7dcf5404e9f8
|
File details
Details for the file caasi-0.2.0-py3-none-any.whl.
File metadata
- Download URL: caasi-0.2.0-py3-none-any.whl
- Upload date:
- Size: 161.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.11 {"installer":{"name":"uv","version":"0.12.11","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
da45c35bd54f1d4c591a226bc6c30eed3c436513ff1395bd15542a0f29575cf5
|
|
| MD5 |
dea8a1bcb01bc1cf38d5cb20a2da0f29
|
|
| BLAKE2b-256 |
07e96dbddcfd41a343f6e6a80f1797366edb03cb0f86a932ca78fd160dd7e8d0
|