vscode-uvtask
List and run uvtask scripts from pyproject.toml inside VS Code and Cursor.

Install
Extension id: aiopy.uvtask
Cursor
- Open the Extensions view (
Cmd+Shift+X / Ctrl+Shift+X).
- Search for uvtask (publisher aiopy), or install a release VSIX:
- Download
uvtask-*.vsix from GitHub Releases
- Command Palette → Extensions: Install from VSIX… → pick the file
- Or from a terminal:
cursor --install-extension aiopy.uvtask
# or from a local build:
cursor --install-extension ./uvtask-0.3.2.vsix
VS Code
- 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.vsix
Marketplace 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.
Features
- 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 run manage 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.
Requirements
- uv available on
PATH (used by uvx)
- Optional:
uv tool install uvtask for a local uvtask binary
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.
Usage
- Open a folder that contains a
pyproject.toml with [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.
Localization
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.
Settings
| 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 |
Development
npm install
npm run build
npm run lint
npm run fmt:check
npm run typecheck
npm test
npm run package # writes uvtask-<version>.vsix
Press F5 in VS Code/Cursor to launch an Extension Development Host.
License
MIT © aiopy