Skip to content
| Marketplace
Sign in
Visual Studio Code>Snippets>UV WingmanNew to Visual Studio Code? Get it now.
UV Wingman

UV Wingman

David Saunders

|
4,170 installs
| (1) | Free
Help users manage and interact with the python UV package manager.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

UV Wingman

GitHub license PRs Welcome Release

Banner

Version Downloads Ratings

This is the README for the extension UV Wingman.

This extension aims to help VSCode users manage and interact with UV environments. UV Wingman aims to add QoL improvements that help programmers use environments without having to memorize all of the UV commands.

Features

UV Wingman detects a pyproject.toml in your workspace and exposes common UV package-manager tasks through both the status bar and the Command Palette so you can manage environments without memorizing commands.

Key capabilities:

  • Automatic activation when a pyproject.toml is present — the extension wires up status bar actions and commands on activation.
  • One-click actions from the status bar and Command Palette for:
    • Initializing a project (uv init)
    • Activating the environment with shell specific activation command e.g. ( source.venv\activate)
    • Syncing dependencies (uv sync)
    • Removing the .venv directory
  • Cross-shell support with templates for PowerShell, cmd, Git Bash, WSL, Bash, Zsh, and Fish.
  • Sends commands into the active VS Code terminal or creates a terminal when needed.

Why this helps:

  • Reduces context switching by running UV commands directly from VS Code UI.
  • Handles shell differences so activation and install commands work across environments.
  • Lightweight — focuses on the most common UV workflows (init, create, activate, sync, delete).

These commands can be accessed from the VSCode command palette:

VSCode Screenshot

The supported commands are:

Project Initialization

  • Command: uv init
  • VS Code Command Palette: >UV Wingman: Initialize UV Project
  • Description: Creates a new UV project in the current directory

Creating Environments

  • Command: uv pip install .
  • VS Code Command Palette: >UV Wingman: Create Environment from pyproject.toml
  • Description: Creates a new virtual environment and installs dependencies

Activating Environments

  • Command: source .venv/bin/activate (or shell equivalent)
  • VS Code Command Palette: >UV Wingman: Activate UV Environment
  • Description: Activates the UV virtual environment

Syncing Dependencies

  • Command: uv sync
  • VS Code Command Palette: >UV Wingman: Sync Dependencies with pyproject.toml
  • Description: Updates environment to match pyproject.toml dependencies

Deleting Environments

  • Command: Removes .venv directory
  • VS Code Command Palette: >UV Wingman: Delete UV Environment
  • Description: Deletes the UV virtual environment

Example pyproject.toml

[project]
name = "your-project"
version = "0.1.0"
description = "Your project description"
requires-python = ">=3.12"
dependencies = [
    "package1>=1.0",
    "package2>=2.0",
]

Project Structure

  • src/commands.js
    Implements all command palette actions and UV operations.

  • src/extension.js
    Main entry point that activates when a pyproject.toml is found.

  • src/statusBarItems.js
    Manages the status bar items for quick access to UV commands.

  • src/utils.js
    Provides utility functions for terminal operations.

  • src/terminalCommands.js
    Handles shell-specific command templates and terminal detection.

Release Notes

See CHANGELOG for more information.

Contributing

All contributions are welcome! Please feel free to fork the repository and create a pull request.

License

Distributed under the MIT License. See LICENSE for more information.

Author

David Saunders - 2024

Roadmap

Feature What Why Priority Effort
Auto-set VS Code Python interpreter When an environment is created or activated, automatically set the workspace interpreter to the .venv Python. Ensures editor features (linting, run/debug) use the created env without manual steps. High Small / Medium
Sync preview & diff Show a preview of changes (added/updated/removed packages) before running uv sync. Lets users confirm changes before modifying environments. Medium Moderate
Dependency graph / tree view Add a side panel showing installed packages and a dependency tree for quick navigation and inspection. Improves dependency visibility and debugging. Medium Larger
Quick package search & install Quick-pick UI to search PyPI (or configured index) and install selected packages into the active env. Speeds up adding packages without leaving VS Code. Medium Moderate
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2025 Microsoft