VSCode / Cursor Setup

May 13, 2026 · View on GitHub

Tips and configuration for developing with VSCode or Cursor. The committed .vscode/ files (tasks.json, launch.json, extensions.json, settings.template.json) give you tasks, debugging, and recommended extensions out of the box — two local-only files need to be created before everything works.


Initial Setup

1. Create your local settings.json

.vscode/settings.json is gitignored (each developer has their own). Copy the template to get started:

copy .vscode\settings.template.json .vscode\settings.json

Then build the project (Ctrl+Shift+B) — the build populates python.analysis.extraPaths in settings.json with all _build/ extension paths, enabling Python autocomplete.

.code-workspace files are also gitignored. Create one to get the best multi-root experience:

File → Save Workspace As → .vscode\lightspeed-kit.code-workspace

When prompted, install the recommended extensions (or run Extensions: Show Recommended Extensions). Key ones:

ExtensionPurpose
charliermarsh.ruffLinter + formatter (replaces pylint/flake8/autopep8)
ms-python.python + anysphere.cursorpyrightPython language server, autocomplete
psioniq.psi-headerAuto-inserts the SPDX license header on new Python files
tamasfe.even-better-tomlSyntax highlighting for .toml and .kit files
eamodio.gitlensGit history and blame

Tasks

Run tasks via Ctrl+Shift+B (default build) or Ctrl+Shift+PTasks: Run Task:

TaskWhat it does
3. Build (default)Incremental build — build.bat
4. RebuildClean rebuild — build.bat --rebuild
5. CleanClean artefacts only — build.bat --clean
1. Format CodeRun format_code.bat (black + isort)
2. Lint CodeRun lint_code.bat all (ruff)
7. Launch (Release)Start full app with VSCode debugger enabled
8. Launch (Development)Start dev app with VSCode debugger enabled

The launch tasks automatically pass --enable omni.kit.debug.vscode so the debugger server is already running when the app starts.


Debugging

The .vscode/launch.json is pre-configured with a Python: Remote Attach config (port 3000).

  1. Use Task 7 or 8 to launch the app — the debug server starts automatically.
  2. Run the Python: Remote Attach launch config (F5 or the Run panel).
  3. Set breakpoints and debug normally.

For everything else — how the debug server works, debugging tests, debugging startup logic, and the PyCharm alternative — see Debugging Guide.


Code Quality

Format on save is configured in settings.template.json (Ruff, modifications only) and copied into your local settings.json. No manual steps needed during development once set up. For a full format pass: Task 1. Format Code.

License header is auto-inserted on new Python files via the psioniq.psi-header extension. The template is configured in settings.template.json — just create a new .py file and save it.