A VS Code extension that provides a UI for working with uv-managed Python projects: run uv commands, create a UV project, pin Python versions, search/add PyPI packages, and visualize uv.lock dependencies.
Status: in development.
Features
Requirements
- VS Code
1.116.0 or newer.
uv must be installed and available on your PATH.
- Network access is required for PyPI search / package metadata.
- Open a folder/workspace in VS Code (not just a single file). The package adder and Python version controls stay disabled until a project is detected.
Usage
Open the Command Palette (Ctrl+Shift+P / Cmd+Shift+P) and run:
UV UI Tool: Open Panel — opens the main webview panel.
UV UI Tool: Open Sidebar — focuses the UV UI Tool view in the Activity Bar.
UV UI Tool: Open Dependency Graph — opens the dependency graph (requires uv.lock).
The panel and the sidebar share the same UI and message flow; the dependency graph is a separate webview.
Run locally (development)
- Install dependencies:
npm install
- Compile the extension:
npm run compile
Or run the compiler in watch mode:
npm run watch
- Launch the extension host:
Testing
Run the test suite (compiles, lints, then runs the extension tests via @vscode/test-cli):
npm test
The first run downloads a VS Code build into .vscode-test/ before the suites start, so expect a pause with no output. Runner config lives in .vscode-test.mjs; the suites execute against the compiled output in out/test/.
src/test/extension.test.ts — activation, command registration, and end-to-end command smoke tests.
src/test/packageAdd.test.ts — package name/version validation and uv add request building.
src/test/pypi.test.ts — PyPI simple index parsing, HTML entity decoding, and search/metadata normalization.
src/test/pythonVersion.test.ts — Python version comparison/validation and uv python pin request building.
src/test/shellCommand.test.ts — uv sync detection, Windows "os error 5" detection, and theme name normalization.
src/test/uvLock.test.ts — uv.lock dependency parsing and dependency graph payload building.
Repo layout
src/extension.ts — command registration, uv execution, project detection, uv.lock parsing, PyPI search, theme persistence.
src/test/ — unit and integration tests (see Testing).
media/script.js + media/style.css — panel/sidebar UI.
media/dependency-graph.js + media/dependency-graph.css — dependency graph UI.
| |