Skip to content

Commit 6bfb178

Browse files
Add install-isaac-lab user skill (isaac-sim#6487)
Routes fresh Isaac Lab installations to the correct install page (pip, binary, source, kit-less, Docker, uv-run) for the user's chosen ref and platform (Linux x86_64, Linux aarch64, Windows 11). Reads the install docs verbatim, does not vendor commands or version pins, and hands off to isaaclab-setup-troubleshooting for post-install issues. Adds: - skills/user/install-isaac-lab/{SKILL.md, evaluations.md, reference.md, examples.md} - .agents/skills/isaaclab-installing-isaac-lab alias (Claude discovery via the existing .claude/skills -> .agents/skills link) - skills/README.md catalog entry Validated with: uv run --no-project python tools/skills/cli.py check # Description <!-- Thank you for your interest in sending a pull request. Please make sure to check the contribution guidelines. Link: https://isaac-sim.github.io/IsaacLab/main/source/refs/contributing.html 💡 Please try to keep PRs small and focused. Large PRs are harder to review and merge. --> Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change. Fixes # (issue) <!-- As a practice, it is recommended to open an issue to have discussions on the proposed pull request. This makes it easier for the community to keep track of what is being developed or added, and if a given feature is demanded by more than one party. --> ## Type of change <!-- As you go through the list, delete the ones that are not applicable. --> - Bug fix (non-breaking change which fixes an issue) - New feature (non-breaking change which adds functionality) - Breaking change (existing functionality will not work without user modification) - Documentation update ## Screenshots Please attach before and after screenshots of the change if applicable. <!-- Example: | Before | After | | ------ | ----- | | _gif/png before_ | _gif/png after_ | To upload images to a PR -- simply drag and drop an image while in edit mode and it should upload the image directly. You can then paste that source into the above before/after sections. --> ## Checklist - [x] I have read and understood the [contribution guidelines](https://isaac-sim.github.io/IsaacLab/main/source/refs/contributing.html) - [x] I have run the [`pre-commit` checks](https://pre-commit.com/) with `./isaaclab.sh --format` - [x] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [x] I have added tests that prove my fix is effective or that my feature works - [x] I have updated the changelog and the corresponding version in the extension's `config/extension.toml` file - [x] I have added my name to the `CONTRIBUTORS.md` or my name already exists there <!-- As you go through the checklist above, you can mark something as done by putting an x character in it For example, - [x] I have done this task - [ ] I have not done this task --> --------- Signed-off-by: Krishna Lakhi <klakhi@nvidia.com> Signed-off-by: klakhi <klakhi@nvidia.com> Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
1 parent ecf2644 commit 6bfb178

6 files changed

Lines changed: 316 additions & 0 deletions

File tree

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../skills/user/install-isaac-lab

‎skills/README.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ Developer skills:
1212

1313
User skills:
1414

15+
- `user/install-isaac-lab/`: install Isaac Lab following the current install docs — automatic uv setup, downloaded Isaac Sim package, source build, Isaac Lab wheel, legacy isaaclab.sh installer, or Docker — across Linux (x86_64, aarch64) and Windows 11.
1516
- `user/migrate-from-isaac-gym/`: migrate Isaac Gym tasks, assets, and training workflows to Isaac Lab.
1617
- `user/migrate-2x-to-3x/`: migrate Isaac Lab 2.x projects to Isaac Lab 3.0 using the official migration guide.
1718
- `user/domain-randomization-events/`: implement domain randomization through Isaac Lab event terms.
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
---
2+
name: isaaclab-installing-isaac-lab
3+
description: Installs Isaac Lab end-to-end with minimal user interaction. Auto-detects the system with read-only checks, picks the right install method (automatic uv, downloaded Isaac Sim, source build, Isaac Lab wheel, legacy isaaclab.sh, managed Python env, or Docker) from the install docs, shows one consolidated plan, and after a single confirmation executes the docs-prescribed commands unattended through verification. Use when installing Isaac Lab for the first time, picking between install combinations, or asking for install commands for a specific platform.
4+
audience: user
5+
status: experimental
6+
owners:
7+
- isaaclab-maintainers
8+
---
9+
10+
# Installing Isaac Lab
11+
12+
## When To Use
13+
14+
Use this skill when a user wants to install Isaac Lab from scratch. The default mode is the express flow: auto-detect, auto-pick, one confirmation, then unattended execution. Users should not have to answer setup questions unless the system genuinely forces a choice.
15+
16+
This skill operates on the currently-checked-out Isaac Lab ref. If the user wants to install a different ref (a specific branch or tag), have them check that ref out first, then invoke the skill.
17+
18+
Do not use this skill for post-install issues. Use `isaaclab-setup-troubleshooting` for import failures, launch failures, verification failures, and other diagnostic questions after the install completed.
19+
20+
Do not vendor install commands, version pins, or troubleshooting steps into this skill. The install pages under `docs/source/setup/installation/index.rst` and their siblings are the source of truth for commands and minimums alike.
21+
22+
## Workflow
23+
24+
The express flow asks the user at most one question: the final go/no-go. Do not interview the user about use case, env manager, or install method unless a rule below explicitly says to ask.
25+
26+
1. Run the read-only preflight detection commands listed in [reference.md](reference.md) to gather OS, arch, GLIBC, GPU and driver, Python, env managers, RAM, disk, and existing install artifacts. Nothing in this step changes system state.
27+
2. Read the "System requirements" section and the install-method comparison from `docs/source/setup/installation/index.rst` in the checkout — never from memory — compare against the detected facts, and route to the correct section anchor in `index.rst` using the mapping in [reference.md](reference.md).
28+
3. If a hard blocker exists (no NVIDIA GPU or driver, driver below the documented minimum, insufficient disk), stop before any state-changing command. Report each blocker with its fix and the documented alternative (the legacy Newton-only installer at `installation-legacy-installer` for no-Isaac-Sim machines). Do not attempt driver installs unattended. If existing install artifacts were found, hand off to `isaaclab-setup-troubleshooting` instead of reinstalling over them.
29+
4. Auto-pick the remaining choices, honoring stated preferences. A preference the user already stated (conda, Docker, source build, Newton-only, a specific env name or directory) always wins and must not be re-asked. Otherwise pick without asking: the docs-Recommended method (automatic uv from the checkout); uv if present, else conda if present, else the docs' uv install step; install into the current checkout with the docs-default env name.
30+
5. Read the routed section of `index.rst` (and any `.inc` fragments it includes) from the checkout and extract its commands verbatim for this platform. Do not paraphrase, reorder, or substitute steps.
31+
6. Show one consolidated confirmation: detected system in two or three lines, chosen method and why, the exact commands in order, which steps need sudo, and rough download size. Ask one go/no-go question. This is the only question in the flow.
32+
7. On yes, execute every step in order without further prompts, streaming output and appending everything to `~/.isaaclab/logs/install-<timestamp>.log`. Announce sudo steps as they run; the password prompt is expected, not a question. On the "Downloaded Isaac Sim package" route only, pause at the manual Isaac Sim download step with the URL from the docs section and resume when the user confirms — the one unavoidable manual step.
33+
8. On a step failure, check the failure routing table in [reference.md](reference.md), apply at most one documented fix, and retry the step once. If it still fails, stop and hand off to `isaaclab-setup-troubleshooting` with the log path.
34+
9. Run the docs-defined minimal verification command for the chosen method, then hand over: how to activate the env, how to run a first demo from the docs quickstart, and the log file path. Save a short summary of facts, route, and commands run to `~/.isaaclab/install_profile.yaml` for reproducibility.
35+
36+
## Validation
37+
38+
Use this checklist:
39+
40+
1. Preflight detection ran before any state-changing command, and blockers were empty or resolved by the user.
41+
2. The chosen route matches the comparison table in `docs/source/setup/installation/index.rst` for the detected platform, driver, and GLIBC — with minimums read from the checkout docs, not memory.
42+
3. Any preference the user stated in their request was honored without re-asking.
43+
4. Exactly one confirmation question was asked before execution (plus the binary-download pause when on the binary route).
44+
5. Commands came verbatim from the routed install page in the checkout.
45+
6. The docs-defined minimal verification command ran before any examples, training, or rendering. Use the command documented by the chosen install page — for binary installs, that's the bundled-Python verification on the binary page (not `uv run`); for Docker installs, run the documented verification inside the container.
46+
7. If verification fails, hand off to `isaaclab-setup-troubleshooting` with the install log path.
47+
48+
For skill changes, run:
49+
50+
```bash
51+
uv run --no-project python tools/skills/cli.py check
52+
```
53+
54+
## Maintenance
55+
56+
Keep this skill synchronized with the following install docs. If commands or version pins change in the docs, update the docs, not this skill:
57+
58+
- `docs/source/setup/installation/index.rst` — the installation entrypoint. Every install method is a section on this page with a stable ref anchor. Contains "System requirements" (driver minimums, GLIBC, Python, OS support), the method-picker cards, and the per-method command sequences.
59+
- `docs/source/setup/installation/uv_run_details.inc` — steps included by `installation-method-uv`.
60+
- `docs/source/setup/installation/legacy_installer_details.inc` — steps included by `installation-legacy-installer` (Newton-only default without Isaac Sim).
61+
- `docs/source/setup/installation/pip_details.inc` — steps included by `installation-method-python-env` (managed venv/conda + pip Isaac Sim).
62+
- `docs/source/setup/installation/wheel_details.inc` — steps included by `installation-method-wheel` (Isaac Lab Python package for external projects).
63+
- `docs/source/setup/installation/binaries_details.inc` — steps included by `installation-method-binary` (downloaded Isaac Sim package).
64+
- `docs/source/setup/installation/source_details.inc` — steps included by `installation-method-source` (Isaac Sim source build).
65+
- `docs/source/setup/installation/asset_caching_details.inc` — asset caching notes.
66+
- `docs/source/setup/installation/include/` — verification and shared helper snippets.
67+
- `docs/source/features/docker_cloud.rst` — Docker and cloud-workstation deep dive; complements `installation-method-container` and `installation-method-cloud` in `index.rst`.
68+
- `docs/source/refs/troubleshooting.rst` — hand-off target for post-install diagnostics.
69+
70+
This skill is a router and executor, not a copy of the install pages. Adding install methods, changing version pins, or updating command sequences belongs in the docs above, not in this file.
71+
72+
## References
73+
74+
- [Evaluations](evaluations.md)
75+
- [Reference](reference.md)
76+
- [Examples](examples.md)
77+
- Installation entrypoint: `docs/source/setup/installation/index.rst`
78+
- Automatic setup with uv (docs-Recommended): section `installation-method-uv` in `index.rst`
79+
- Legacy isaaclab.sh installer (Newton-only default): section `installation-legacy-installer` in `index.rst`
80+
- Python environment with Isaac Sim (venv/conda + pip): section `installation-method-python-env` in `index.rst`
81+
- Isaac Lab Python package (external projects): section `installation-method-wheel` in `index.rst`
82+
- Downloaded Isaac Sim package (older distros): section `installation-method-binary` in `index.rst`
83+
- Isaac Sim source build: section `installation-method-source` in `index.rst`
84+
- Docker and HPC clusters: section `installation-method-container` in `index.rst`, deep-dive in `docs/source/features/docker_cloud.rst`
85+
- Cloud workstations: section `installation-method-cloud` in `index.rst`
86+
- Troubleshooting: `docs/source/refs/troubleshooting.rst`
87+
- Cross-skill hand-off for post-install issues: `isaaclab-setup-troubleshooting`.
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
# Installing Isaac Lab Evaluations
2+
3+
## Scenario 1: Express Install On Ubuntu 22.04
4+
5+
Query: "Install Isaac Lab."
6+
7+
Expected behavior:
8+
9+
- Runs the read-only preflight detection commands before anything else; no interview questions about use case, env manager, or method.
10+
- Reads the minimums from `docs/source/setup/installation/index.rst` "System requirements", routes to the automatic uv path (`installation-method-uv`), then reads that section's included `uv_run_details.inc` and uses its commands verbatim.
11+
- Shows one consolidated plan (system facts, method, exact commands, sudo steps) and asks exactly one go/no-go question.
12+
- Executes all steps unattended after yes, logs to `~/.isaaclab/logs/`, ends with the docs-defined minimal verification command, and tells the user how to activate and use the environment.
13+
14+
Known failure modes:
15+
16+
- Interviews the user (use case, env manager, install directory) instead of auto-picking.
17+
- Asks for confirmation again at each step after the go/no-go.
18+
- Copies install commands or version pins from memory without reading the current install section.
19+
- Skips preflight and starts executing install commands directly.
20+
21+
## Scenario 2: Older Distro Routed To Downloaded Isaac Sim
22+
23+
Query: "I want to install Isaac Lab on Ubuntu 20.04. My GLIBC is 2.31."
24+
25+
Expected behavior:
26+
27+
- The stated GLIBC is compared against the pip minimum read from `docs/source/setup/installation/index.rst` "System requirements" (not memory), routing to the "Downloaded Isaac Sim package" section (`installation-method-binary`).
28+
- The single confirmation summary calls out the manual Isaac Sim package download as the one manual step.
29+
- Execution pauses only at the download step with the URL from the docs section, then continues unattended.
30+
- Ends with the section's docs-defined verification command (bundled-Python launch plus the Isaac Lab tutorial script from the checkout).
31+
32+
Known failure modes:
33+
34+
- Recommends the automatic uv path anyway and lets the user hit a `GLIBC` version error at install time.
35+
- Copies old GLIBC minimums from memory rather than reading the checkout docs.
36+
- Treats the download pause as a second interview and starts re-asking preferences.
37+
38+
## Scenario 3: Stated Preferences Override Auto-Pick
39+
40+
Query: "Install Isaac Lab using conda into env lab3."
41+
42+
Expected behavior:
43+
44+
- Honors conda and `lab3` without re-asking, even if preflight suggests uv.
45+
- Uses the conda variant of the "Python environment with Isaac Sim" section (`installation-method-python-env`) verbatim.
46+
- Still exactly one go/no-go question, unattended execution, docs verification.
47+
48+
Known failure modes:
49+
50+
- Re-asks the user to choose an env manager the request already specified.
51+
- Silently substitutes uv because it is the docs-Recommended default.
52+
- Uses a different env name than the one requested.
53+
54+
## Scenario 4: Preflight Blocker Stops The Flow
55+
56+
Query: "Set up Isaac Lab on this machine" (machine has no NVIDIA GPU).
57+
58+
Expected behavior:
59+
60+
- Preflight detection finds no NVIDIA GPU/driver; no state-changing command runs.
61+
- Reports the blocker with a fix and offers the documented legacy Newton-only installer (`installation-legacy-installer`) as the no-Isaac-Sim alternative.
62+
- If detection instead finds existing install artifacts, hands off to `isaaclab-setup-troubleshooting` rather than reinstalling over them.
63+
64+
Known failure modes:
65+
66+
- Proceeds with the automatic uv install and fails midway at the Isaac Sim step.
67+
- Attempts to install an NVIDIA driver unattended.
68+
- Reinstalls over an existing broken environment instead of routing to troubleshooting.
69+
70+
## Scenario 5: Windows 11 Guided Fallback
71+
72+
Query: "Install Isaac Lab on Windows 11."
73+
74+
Expected behavior:
75+
76+
- The non-Linux platform routes to the guided flow: the agent follows the Windows tab in `docs/source/setup/installation/index.rst` — "Automatic setup with uv" (`installation-method-uv`) or "Python environment with Isaac Sim" (`installation-method-python-env`) — interactively.
77+
- Confirms the NVIDIA Windows driver, Python 3.12, and long-path support before prescribing commands.
78+
- Uses the Windows-specific commands from the section rather than paraphrasing shell equivalents.
79+
- Verifies with the docs-defined verification command.
80+
81+
Known failure modes:
82+
83+
- Prescribes bash commands on Windows or paraphrases them into cmd form.
84+
- Skips the long-path support step documented for Windows.
85+
- Applies the Linux express unattended flow where the docs require Windows-specific handling.
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
# Installing Isaac Lab Examples
2+
3+
## Example 1: Express Install On Ubuntu 22.04 (Default Flow)
4+
5+
User: "Install Isaac Lab."
6+
7+
Suggested agent response:
8+
9+
1. Run the read-only preflight commands from the skill workflow (OS, arch, GLIBC, GPU/driver, env managers, RAM, disk). No blockers; facts point to the automatic uv route.
10+
2. Confirm the minimums against `docs/source/setup/installation/index.rst` "System requirements", then read the "Automatic setup with uv" section (`installation-method-uv`) and its included `uv_run_details.inc` steps verbatim.
11+
3. Show one summary: detected system, chosen method with reasons, exact commands, sudo steps, download size. Ask a single go/no-go.
12+
4. On yes, execute every step unattended, logging to `~/.isaaclab/logs/`, then run the docs-defined verification (`uv run python scripts/tutorials/00_sim/create_empty.py --viz kit`).
13+
5. Hand over: how to activate the env, how to run a first demo, log and profile paths. No other questions asked at any point.
14+
15+
## Example 2: Preflight Routes To Downloaded Isaac Sim On Ubuntu 20.04
16+
17+
User: "Install Isaac Lab on my Ubuntu 20.04 box."
18+
19+
Suggested agent response:
20+
21+
1. Preflight detection reports GLIBC 2.31; the pip minimum read from `docs/source/setup/installation/index.rst` "System requirements" is higher, so route to the downloaded Isaac Sim package.
22+
2. Build the plan from the "Downloaded Isaac Sim package" section (`installation-method-binary`) and its `binaries_details.inc` steps.
23+
3. Single confirmation summary notes the one manual step: downloading and extracting the Isaac Sim package.
24+
4. Execute unattended, pausing only at the download step with the URL from the docs section; resume when the user confirms.
25+
5. Verify with the section's docs-defined verification command (`${ISAACSIM_PATH}/isaac-sim.sh` then the Isaac Lab tutorial script from the checkout).
26+
27+
## Example 3: User Preference Overrides Auto-Pick
28+
29+
User: "Install Isaac Lab with conda, env name lab3."
30+
31+
Suggested agent response:
32+
33+
1. Run preflight as usual. Even if uv is present, the stated preference wins: conda with env name `lab3`, no re-asking.
34+
2. Follow the conda variant of the "Python environment with Isaac Sim" section (`installation-method-python-env`) verbatim, including the `pip_details.inc` steps.
35+
3. Single go/no-go, unattended execution, docs verification, handover.
36+
37+
## Example 4: Preflight Finds A Blocker
38+
39+
User: "Set up Isaac Lab."
40+
41+
Suggested agent response:
42+
43+
1. Preflight detection finds no NVIDIA GPU/driver.
44+
2. Do not install. Report the blocker and its fix line (driver install per `docs/source/setup/installation/index.rst` "System requirements"), and offer the legacy Newton-only installer (`installation-legacy-installer`) as the documented no-Isaac-Sim alternative.
45+
3. Resume the express flow after the user resolves the blocker.
46+
47+
## Example 5: Windows 11 Falls Back To Guided Mode
48+
49+
User: "Install Isaac Lab on Windows 11."
50+
51+
Suggested agent response:
52+
53+
1. The platform is Windows, so use the guided per-tab flow instead of unattended express mode.
54+
2. Follow the Windows tab in `docs/source/setup/installation/index.rst` — "Automatic setup with uv" (`installation-method-uv`) for the docs-Recommended path, or "Python environment with Isaac Sim" (`installation-method-python-env`) if the user manages their own env — interactively: confirm driver, Python 3.12, long-path support, then prescribe the Windows commands verbatim.
55+
3. Keep questions minimal; verify with the docs-defined command.

0 commit comments

Comments
 (0)