author-environment
Create or modify Isaac Lab-Arena environments, scenes, tasks, completion predicates, placement constraints, and environment…
Sets up and verifies a runnable Isaac Lab-Arena checkout using the supported native uv or Docker route. Use when installing Arena, preparing a fresh checkout to run examples or evaluations, choosing between uv and Docker, starting or attaching to the Arena container, mounting
$ npx -y skills add isaac-sim/isaaclab-arena --skill setup-arena --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/setup-arenaContext preview
The summary Claude sees to decide when to auto-load this skill.
Sets up and verifies a runnable Isaac Lab-Arena checkout using the supported native uv or Docker route. Use when installing Arena, preparing a fresh checkout to run examples or evaluations, choosing between uv and Docker, starting or attaching to the Arena container, mounting
name: setup-arena description: Sets up and verifies a runnable Isaac Lab-Arena checkout using the supported native uv or Docker route. Use when installing Arena, preparing a fresh checkout to run examples or evaluations, choosing between uv and Docker, starting or attaching to the Arena container, mounting datasets/models/evaluation outputs, enabling cuRobo, or checking whether an installation is ready. Do not use for contributor hooks, forced image rebuilds, pytest regression testing, or experiment configuration. allowed-tools: Read Grep Glob Skill Bash(git rev-parse *) Bash(git submodule *) Bash(head *) Bash(id -un) Bash(test -d *) Bash(test -x *) Bash(uv --version) Bash(uv sync *) Bash(nvidia-smi *) Bash(.venv/bin/python *) Bash(./docker/run_docker.sh *) Bash(docker exec *) Bash(docker images *) Bash(docker inspect *) Bash(docker ps *) Bash(docker stop isaaclab_arena-*)
Prepare the product runtime only, then stop at readiness evidence. Do not select policies, datasets, experiment configurations, or output directories. Do not install contributor hooks, run the full pytest suite, or interpret experiment artifacts.
Before changing state, read `docs/pages/quickstart/installation.rst` from the current checkout. Its support table, prerequisites, and commands are the source of truth. If this skill differs from the documentation, follow the documentation and report the mismatch.
Honor an installation method the user already requested. Otherwise, choose the least restrictive supported route:
| Route | Use it when | |---|---| | Native uv | Default when `uv` is available; supports evaluation, imitation learning, reinforcement learning, and agentic environment generation. | | Docker | Use when requested, when the existing workflow is container-based, or when cuRobo reachability validation is required. |
Do not silently switch routes. Native uv does not provide the optional cuRobo package; use Docker with `-c` for `ik_reachable` validation.
1. Confirm that the command is running from the repository root. 2. Inspect the existing `.venv`, submodule state, Docker image/container state, GPU visibility, and requested host mount paths with read-only commands. 3. Reuse a healthy existing runtime. Do not reinstall or rebuild it without a reason. 4. Show the chosen route, exact documented commands, expected downloads/build, and any required EULA or host-directory changes. Ask once before starting a large sync or image build.
Run the documentation read and safe read-only preflight immediately; do not ask for confirmation or defer them as a proposed plan. Confirmation is only for the state-changing sync, build, or stop that follows the preflight.
If a prerequisite is missing, report the failed check and the documented recovery. Do not install or change GPU drivers, Docker, the NVIDIA Container Toolkit, or other system packages without explicit approval.
Initialize the source submodules and sync the environment:
git submodule update --init --recursive uv sync --extra dev
Use `.venv/bin/python` for non-interactive commands.
Accept the Isaac Sim EULA for launch commands:
OMNI_KIT_ACCEPT_EULA=YES ACCEPT_EULA=Y \ .venv/bin/python -c "import isaaclab_arena; print(isaaclab_arena.__file__)"
Require the import to resolve from the current checkout. Then run the short zero-action validation command documented in `docs/pages/quickstart/installation.rst`, unless the user asks to skip a simulation launch.
Initialize source submodules, then launch from the repository root:
git submodule update --init --recursive ./docker/run_docker.sh
Use these options only when the request needs them:
| Flag | Purpose | |---|---| | `-d <path>` | Mount datasets at `/datasets`. | | `-m <path>` | Mount models at `/models`. | | `-e <path>` | Mount evaluation outputs at `/eval`. | | `-c` | Build/use the cuRobo image for reachability validation. | | `-s <suffix>` | Override the automatic per-checkout container suffix. |
Confirm that each explicitly requested mount path exists before launching. Mount flags apply only when creating a container; they do not change an already-running container. If the requested configuration differs, explain that recreation is required and obtain approval before stopping the checkout-specific Arena container. Before asking for approval, inspect its exact name, image, and mounts and show the complete reconstructed launcher command. Populate this shape from the inspected configuration instead of relying on launcher defaults:
./docker/run_docker.sh [-c] [-s <current-suffix>] -d <new-datasets> \ [-m <current-models>] [-e <current-evaluation>]
Include `-c` for an existing cuRobo image, `-s` for an existing suffix, and each current model or evaluation mount. Replace only the mount the user asked to change, and stop the container only after the user approves that exact command.
The launcher builds a missing image, starts this checkout's container, and attaches interactively. Keep that process alive in a terminal session. Do not force a rebuild here; use `dev-container` for an explicit contributor rebuild or image-debugging request.
List the containers for this checkout without hardcoding a name:
docker ps --filter "volume=$(git rev-parse --show-toplevel)" --format '{{.Names}}\t{{.Image}}'Select the exact name matching the chosen image flavor and suffix and assign it to `ARENA_CONTAINER`. Do not take an arbitrary first match because regular and cuRobo containers can coexist for one checkout.
Verify the editable source mount as the host user:
docker exec "$ARENA_CONTAINER" su $(id -un) -c \ "cd /workspaces/isaaclab_arena && \ /isaac-sim/python.sh -c 'import isaaclab_arena; print(isaaclab_arena.__file__)'"
Require a path under `/workspaces/isaaclab_arena/`. Then run the short zero-act
Isaac Lab - Arena is a robotics simulation framework that enhances NVIDIA Isaac Lab by providing a composable, scalable system for creating diverse simulation environments and evaluating robot learning policies. The framework enables developers to rapidly prototype and test robotic tasks with various robot embodiments, objects, and environments.
Create or modify Isaac Lab-Arena environments, scenes, tasks, completion predicates, placement constraints, and environment…
Creates Arena-conformant commits and pull requests. Enforces DCO sign-off (git commit -s), no AI attribution lines (no…
Bootstraps and maintains the Docker environment used when contributing to Isaac Lab-Arena. Use when preparing a checkout for…
Downloads Isaac Lab-Arena OSMO workflow output (evaluation results, videos, HDF5 demos) to a local folder with `osmo data…
Runs the Isaac Lab-Arena pytest suite across its three required phases (no-cameras, with-cameras, with-subprocess) inside the…
Runs existing Isaac Lab-Arena Experiment Definitions locally with experiment_runner.py in a ready native or Docker runtime,…