List and run uvtask scripts from pyproject.toml inside VS Code and Cursor.
Extension id: aiopy.uvtask
- Open the Extensions view (
Cmd+Shift+X/Ctrl+Shift+X). - Search for uvtask (publisher aiopy), or install a release VSIX:
- Download
uvtask-*.vsixfrom GitHub Releases - Command Palette → Extensions: Install from VSIX… → pick the file
- Download
- Or from a terminal:
cursor --install-extension aiopy.uvtask
# or from a local build:
cursor --install-extension ./uvtask-0.3.2.vsix- Open the Extensions view (
Cmd+Shift+X/Ctrl+Shift+X). - Search for uvtask (publisher aiopy), or install a release VSIX the same way as above (Extensions: Install from VSIX…).
- Or from a terminal:
code --install-extension aiopy.uvtask
# or from a local build:
code --install-extension ./uvtask-0.3.2.vsixMarketplace listing may lag behind GitHub Releases. Until it appears in the marketplace / Open VSX, use the VSIX from Releases or build with
npm run package.
Reload the window after install, then open a workspace that contains a pyproject.toml.
- Sidebar tree of
[tool.run-script]/[tool.uvtask.run-script]entries with count badge, filter, Play, and Refresh - Defaults to the workspace-root
pyproject.toml; switch to another via the view overflow menu - Run scripts through the VS Code Task API with
ProcessExecution(no shell string) - Workspace Trust aware: lists scripts in untrusted workspaces, refuses to execute them
- No dependency on the Python extension —
uvx uvtask/uv runmanage interpreters themselves
Note: Cursor cannot reliably host extension WebviewViews (service worker registration fails), so the filter is a title-bar action that opens an input box rather than an inline field in the header.
- uv available on
PATH(used byuvx) - Optional:
uv tool install uvtaskfor a localuvtaskbinary
On macOS, if you launch Cursor/VS Code from the Dock and uv lives under Homebrew (/opt/homebrew/bin), the extension prepends those directories to PATH automatically.
- Open a folder that contains a
pyproject.tomlwith[tool.run-script]entries. - Open the uvtask view in the Activity Bar (aiopy-style icon).
- Click a script to reveal its definition, or use the play button to run it.
- Use Select Manifest in the view title bar to switch to another
pyproject.toml.
The UI ships with English (default), Spanish, and Simplified Chinese. VS Code/Cursor picks the bundle from the display language (package.nls.*.json + l10n/bundle.l10n.*.json). Contributions for more locales are welcome.
| Setting | Default | Purpose |
|---|---|---|
uvtask.runner |
auto |
auto, uvtask, or uvx |
uvtask.manifest |
"" |
Workspace-relative path to pin a non-root default |
uvtask.showHooks |
false |
List pre/post hooks as their own entries |
npm install
npm run build
npm run lint
npm run fmt:check
npm run typecheck
npm test
npm run package # writes uvtask-<version>.vsixPress F5 in VS Code/Cursor to launch an Extension Development Host.
