Skip to main content

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://7a6172.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 ros2 tooling.
  • Unix-friendly. Small commands, --json output, 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/7a6172/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, check, env inspect|fingerprint|lock|compare|show, 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 (alias), setup, project info|validate|add|remove|list|inspect|add-file|config, project robot list|create|inspect|info|import|validate, project scene list|create|inspect|import|validate|capture|reconstruct, project task list|create|inspect|validate projects.html
Runs & logs run start|restart|list|status|logs|attach|stop|pause|resume|delete|inspect, start, logs runs.html
Observability monitor, audit, logs, run inspect (provenance bundle) observability.html
Simulation sim run|headless|check|extensions, lab status|run|play|evaluate — sim lifecycle/logs via run … --backend sim 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 dataset generate (Replicator via the sdg catalog — the root synth group was removed), 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 dataset 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://7a6172.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, observability, 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.

Release notes and in-progress changes: CHANGELOG.md.

License

MIT © zar x"7A6172" — see LICENSE.

Metadata

Release files for caasi 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for caasi 0.3.0
File Size Uploaded
caasi-0.3.0.tar.gz 353.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for caasi 0.3.0
File Interpreter ABI Platform
caasi-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 555.2 kB

Release files / caasi-0.3.0.tar.gz

Download URL caasi-0.3.0.tar.gz
Size 353.9 kB
Tags Source
SHA-256 checksum
How to use checksums
a19784545b98186e1b94546ed23cede7678e9db824c3b1de58175601ff7763d8
BLAKE2b-256 checksum
How to use checksums
563f1e5ceaa435d97c5e4fe6b8ebf4879a25cf936683b7353d5fa97d1709cf93
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.21 {"installer":{"name":"uv","version":"0.12.21","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 / caasi-0.3.0-py3-none-any.whl

Download URL caasi-0.3.0-py3-none-any.whl
Size 201.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ac89c082c4f18e6ac80686a60ad8b7d5034b726e9cf2bfb895251cb75773606c
BLAKE2b-256 checksum
How to use checksums
4a0afd65bb447dd990e6ba1d55ee0f99ceba65e5877f8740ddca351394805f11
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.21 {"installer":{"name":"uv","version":"0.12.21","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 history Release notifications | RSS feed

This release

0.3.0 This release

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page