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.
pip install caasi
Or from source:
git clone https://github.com/a6y3ap/caasi.git
cd caasi
pip install -e . # add pytest as well: pip install -e ".[dev]"
Either way this installs the caasi command. Shell completion is available:
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. 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|test, system status|memory|processes, info, version |
environment.html |
| Configuration | config show|get|set|path|tools |
configuration.html |
| Projects | init, setup, project info|validate, robot, scene, task |
projects.html |
| Runs & logs | run list|status|logs|stop|pause|resume|delete|inspect, logs |
runs.html |
| Simulation | sim run|status|check|stop|pause|resume, lab status |
simulation.html |
| Training | train, benchmark start|report |
training.html |
| Data & sensors | dataset generate|inspect|convert|validate, sensor list|inspect|test, vision status|inspect|test |
data.html |
| Review | replay, view rviz|foxglove|open3d|attach |
review.html |
| ROS ecosystem | ros status|doctor|list|launch|topic|node|graph, nav status|launch|inspect|test, moveit status|launch|plan|test, control status|list|check |
ros.html |
| Native & shell | native run|sim|lab|ros, shell |
native.html |
| Remote & containers | remote list|connect|run, container list|check|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
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
Manage it with caasi config show|get|set|path|tools.
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.
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.1.0.tar.gz.
File metadata
- Download URL: caasi-0.1.0.tar.gz
- Upload date:
- Size: 151.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","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":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
54cc8762d44106f6b2d04bc870b90483726803115bd48cc620de88d56c894124
|
|
| MD5 |
44f26f031be8c1f6ccb7e40e91690306
|
|
| BLAKE2b-256 |
434f1fb6b9501462e759b3c899eaf403e0e5453e4db4daa0726c0a801eaa8d50
|
File details
Details for the file caasi-0.1.0-py3-none-any.whl.
File metadata
- Download URL: caasi-0.1.0-py3-none-any.whl
- Upload date:
- Size: 95.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","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":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a0fb181a4b57e2dc6c8a060e897efe0de623e423f747db6ebbd60415956a8192
|
|
| MD5 |
35e90df5148b44cee05f0389d57191dd
|
|
| BLAKE2b-256 |
2191bfdf1c7412b321bb3f76349f4ce717d58736a8d797d395ff48c5413a1981
|