Editor setup#
Editor setup is optional and is not required to run Isaac Lab. The repository includes shared settings for Visual Studio Code and compatible editors such as Cursor. Complete one of the Isaac Lab installation methods before configuring your editor.
The .vscode directory contains the checked-in templates and tasks:
.vscode
├── tools
│ ├── launch.template.json
│ └── settings.template.json
├── extensions.json
├── launch.json # generated by isaaclab --editor
├── settings.json # generated by isaaclab --editor
└── tasks.json
Configure a source checkout#
Open the Isaac Lab repository root in your editor. Then run the setup command that matches your installation from a terminal in that directory.
For the default Newton environment, run:
uv run isaaclab --editor
If you use Isaac Sim from the isaacsim extra, include the extra so the
setup command can discover its extensions:
uv run --extra isaacsim isaaclab --editor
Activate the uv, venv, or conda environment where Isaac Lab is installed, then run:
isaaclab --editor
Run the setup command through the Isaac Lab launcher after completing the downloaded package installation:
./isaaclab.sh --editor
isaaclab.bat --editor
The setup_python_env task in the command palette runs the recommended
uv workflow.
The command creates or updates these machine-local files:
.vscode/launch.json: Debugging configurations. An existing file is preserved..vscode/settings.json: The interpreter and shared editor settings.pyrightconfig.json: Import paths for Pyright-compatible language servers.
The generated files are ignored by Git because interpreter and extension paths vary between machines. Rerun the command after changing Python environments or Isaac Sim installations. If Isaac Sim is not installed, the command prints a warning and still configures the local Isaac Lab packages.
The checked-in [tool.pyright] table in pyproject.toml makes packages
under source available immediately after cloning. The generated
pyrightconfig.json inherits that policy and adds Isaac Sim extensions plus
Isaac Lab packages found in the active Python environment. This covers source,
editable, and wheel installations without storing absolute paths in Git.
Configure VS Code#
Install the extensions recommended by the repository when VS Code prompts you.
At minimum, install the Python and Pylance extensions. Run the setup command
above, then use Python: Select Interpreter from the command palette to select
the same interpreter used by the command. For the recommended uv installation,
this is .venv/bin/python on Linux or .venv\Scripts\python.exe on Windows.
Configure Cursor#
Cursor cannot use Pylance because Pylance is licensed for official VS Code
builds. Install the Python extension and the basedpyright
extension (detachhead.basedpyright). Then:
Run the same setup command shown above for your installation.
Select the interpreter that ran the command.
Reload the Cursor window so basedpyright rereads
pyrightconfig.json.
No Cursor-specific path list is required. Pylance and basedpyright read the same Pyright configuration.
Troubleshoot editor imports#
If an import is still unresolved:
Confirm the selected editor interpreter matches
pythonin the setup command.Rerun setup with
uv run --extra isaacsim isaaclab --editorif the missing import is fromomni,pxr, orisaacsim.Reload the editor window.
Inspect the generated
extraPathsin the rootpyrightconfig.json.
Remove simulator extension directories that the project does not use if language-server indexing consumes too much memory.
For more information about VS Code support in Isaac Sim, see:
Attach to a Running debugpy Session#
The generated .vscode/launch.json includes a Python: Debugger Attach
configuration that starts to listen on port localhost:3000 for the debugpy session.
To use it:
Set your breakpoints.
Run your code under debugpy like so:
uv run python -m debugpy --listen 3000 --wait-for-client -c "from isaaclab.cli import cli; cli()" [cli_args]
./isaaclab.sh -p -m debugpy --listen 3000 --wait-for-client -c "from isaaclab.cli import cli; cli()" [cli_args]
In VS Code, select the
Python: Debugger Attachconfiguration from the Run and Debug panel and press the green play button orF5. VS Code will connect to the debugpy server running onlocalhost:3000.
Configuring the Python interpreter#
The setup command records the interpreter that ran it in
.vscode/settings.json. For example, a uv source checkout on Linux uses:
{
"python.defaultInterpreterPath": "/path/to/IsaacLab/.venv/bin/python",
}
The editor selection takes precedence over this default. If you change environments, rerun setup and select the new interpreter from the status bar or with Python: Select Interpreter in the command palette.
For more information about selecting a Python interpreter, see the VS Code documentation.
Setting up formatting and linting#
We use ruff as a formatter and linter.
These are configured in the .vscode/settings.json file:
{
"ruff.configuration": "${workspaceFolder}/pyproject.toml",
}
The ruff linter will show warnings and errors in your code to help you follow Python best practices and the project’s coding standards.