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://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 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/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

MIT © a6y3ap — see LICENSE.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

caasi-0.2.0.tar.gz (280.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

caasi-0.2.0-py3-none-any.whl (161.7 kB view details)

Uploaded Python 3

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

Hashes for caasi-0.2.0.tar.gz
Algorithm Hash digest
SHA256 eb03b24b9804ed751ccaae52a24ac20f1329ed70ef33ab84c6ab7c24e28fe374
MD5 3ece21e3e14d45f9e9636fcb46cc9ff6
BLAKE2b-256 805102ad661ac2725ea13c9fe25e9e3299394146d39aaec29a6c7dcf5404e9f8

See more details on using hashes here.

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

Hashes for caasi-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 da45c35bd54f1d4c591a226bc6c30eed3c436513ff1395bd15542a0f29575cf5
MD5 dea8a1bcb01bc1cf38d5cb20a2da0f29
BLAKE2b-256 07e96dbddcfd41a343f6e6a80f1797366edb03cb0f86a932ca78fd160dd7e8d0

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 files

0.1.0

2 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