Repository navigation
Releases
v1.4.0: Targeted Fix Environment & Known Breakages
✨ What's New
PyPilot for VS Code 1.4.0 runs engine 1.4.0, where Fix environment fixes what is actually wrong instead of rebuilding the environment for every problem.
📖 New guide: What doctor --fix fixes
🎯 Fix environment, targeted
- Each problem gets its own fix: a
uv syncfor a missing or drifted package,uv lockfor a stale lock, a reinstall of only the half-installed package, a repair of a damaged venv on the Python it had, or a one-line edit of a requirement. - A healthy project is left alone. The Python moves only when a dependency forces it, the notification says which one, and the choice is saved to
.python-version. - Every file PyPilot edits is named, and an edit that leaves the project unresolvable is rolled back.
📚 Problems it now explains
- Unsatisfiable pins, typos ("did you mean") and versions that do not exist, with a fix checked before anything changes.
- Known breakages that metadata does not show: numpy 2 with old compiled packages, uncapped dependencies that later removed an API (werkzeug and flask, markupsafe and jinja2, setuptools 82 and
pkg_resources), shadowing packages such asjwtandPyJWT, and yanked pins. - Removed stdlib modules and removed APIs used in your code (
distutils,np.float,collections.Mapping, SQLAlchemy 2engine.execute), by file and line with the replacement. - pixi, conda
environment.ymland Poetry projects are fixed with their own tools.
🔐 Engine
- Pins engine v1.4.0, verified by SHA-256 as before.
📦 Installation
Download pypilot-vscode-1.4.0.vsix below, then in VS Code: Extensions → ⋯ → Install from VSIX…
Requires VS Code 1.85 or newer. The extension downloads and verifies engine v1.4.0 on first use, or uses a pypilot 1.4.0+ already on your PATH.
Full Changelog: v1.3.0...v1.4.0
v1.3.0: pixi in the Editor, Verified Engine & Multi-Root Workspaces
✨ What's New
PyPilot for VS Code 1.3.0 brings pixi into the editor, installs only an engine it can verify, and works across multi-root workspaces.
📖 Documentation: https://pypilot-dev.github.io/pypilot/vscode/
🧪 pixi
- "PyPilot: Initialize pixi project" shows the
pixi.tomlPyPilot would write beside your code and writes it only after you confirm (optionally runningpixi install). Yourpyproject.tomlandrequirements.txtstay untouched. - "PyPilot: Install pixi" runs pixi's official installer.
pypilot.pixiEnvironmentchooses the environment in multi-environment pixi projects; interpreter and kernel selection follow it.pixiis now a value ofpypilot.packageManager.- When pip or uv cannot install something conda-forge can (native libraries, missing headers, CUDA tooling), the engine's notification offers to set the project up with pixi.
🔐 A verified engine
- The extension installs the engine version it was released with (v1.3.0) and checks the download's SHA-256 before unpacking it; a mismatch installs nothing.
pypilot.engineUpdates:pinned(default) orlatest; newer releases are verified against theirSHA256SUMS.pypilot.helperPathpoints at a locally built engine; proxies are respected.- The report panel only runs scripts carrying a per-render nonce.
🧭 Editor
- Multi-root workspaces: one language server per folder with a Python project.
pypilot.diagnosticsScope:workspacechecks every Python file and notebook, not only open ones.- Settings reach the engine: your
pypilot.*settings now apply in the language server too (before, onlypypilot.tomldid). - The report panel opens from the palette and can Copy as Markdown or Save as HTML.
- The status bar tooltip shows the Python version, the environment and the package manager.
- Commands only appear where they apply (Fix CUDA with torch or tensorflow, Migrate Conda with an
environment.yml, and so on), and a Get started walkthrough introduces the extension.
🛠 Maintenance
- Unit tests and an end-to-end test in a real VS Code run in CI;
bun auditand a CycloneDX SBOM (pypilot-vscode-1.3.0.cdx.json, attached).
📦 Installation
Download pypilot-vscode-1.3.0.vsix below, then in VS Code: Extensions → ⋯ → Install from VSIX…
Requires VS Code 1.85 or newer. The extension downloads and verifies engine v1.3.0 on first use, or uses a pypilot 1.3.0+ already on your PATH.
Full Changelog: v1.2.1...v1.3.0
v1.2.1
v1.2.0: pixi Environments & Download Hardening
What's Changed
🧪 pixi environments
- In pixi projects, PyPilot selects the pixi environment (
.pixi/envs/default) as the interpreter and recommended notebook kernel, and re-selects it afterpixi install. A stray.venvin a pixi project is never selected - Requires helper v1.2.0, which manages pixi projects through pixi (see the engine release)
🛡 Hardening (thanks @BazilSuhail, #1)
- More reliable helper downloads: HTTP errors are reported clearly, redirects are capped, timeouts added, partial downloads cleaned up
- Workspace tasks run the resolved helper, so they work when
pypilotis not on PATH - The doctor report panel escapes its content and only links
http(s)URLs
🏠 New home
- The extension now lives at pypilot-dev/pypilot-vscode; the README, issue links and CONTRIBUTING point there
Full Changelog: v1.1.1...v1.2.0
v1.1.1: Badges & Support Links
🏷️ What's Changed
- 📛 README badges: Marketplace version, installs and rating, Open VSX, license, and GitHub stars
- 💬 New short "Enjoying PyPilot?" note asking for a star or rating
- 🤝 New Support section
⚙️ Engine
- No functional changes. Same engine/helper as v1.1.0.
Full Changelog: v1.1.0...v1.1.1
v1.1.0: GPU & Environment Health (Engine v1.1.0)
What's Changed
This release pairs the extension with PyPilot engine v1.1.0. All the new checks reach VS Code through the language server, so diagnostics, quick fixes and the doctor report pick them up automatically.
🎮 GPU & CUDA
- Warnings when the installed torch build doesn't fit your GPU, including RTX 50-series (Blackwell), or is CPU-only on an NVIDIA machine, each with the exact reinstall command
- uv projects keep the CUDA torch build across
uv syncanduv run - Up-to-date CUDA tables, so new drivers get the newest matching build (e.g. cu132)
- TensorFlow on native Windows is now correctly reported as CPU-only, with WSL2 suggested
🧩 CUDA extension packages
import flash_attn/xformers/bitsandbytesexplain install problems (source-only builds, missing wheels, xformers ↔ torch mismatches) instead of offering an install that would fail
🩺 Environment health
- Broken
.venv(its Python was moved or removed): one clear error with a Rebuild fix - NumPy 1 vs 2 binary mismatches named before they crash
- Source builds explained with the fix for your OS and a Python version that has ready-made wheels
📓 Notebooks
- PyPilot installs
ipykernel>=6.31.0,<7in notebook projects, avoiding the ipykernel 7 notebook hangs in VS Code
Requires PyPilot helper v1.1.0: run PyPilot: Check for Helper Updates, or let the extension update it.
Full Changelog: v1.0.4...v1.1.0
v1.0.4: Notebooks & Project .venv
What's Changed
📓 Jupyter notebook support
- Ctrl+. quick fixes and import diagnostics now work inside
.ipynbcells. Notebook cells were never sent to the language server before - The extension now activates as soon as a notebook is opened
🐍 Uses your project's .venv automatically
- When
.venvis created or changed, PyPilot makes it the workspace's active interpreter, so it's also the recommended notebook kernel, instead of a global Python without your packages - On startup it only steps in when no interpreter inside the workspace is selected, so a deliberate choice is never overridden
- New setting
pypilot.autoSelectVenv(default on) and command PyPilot: Use Project .venv - Works with the Python Environments extension or the classic Python extension; does nothing if neither is installed
📦 Install several packages at once
- With helper v1.0.5, selecting several imports gives one "Install N packages" quick fix, plus "Install all missing packages in this file / notebook"
Full Changelog: v1.0.3...v1.0.4
v1.0.3: Accurate Command Results
What's Changed
🐛 Accurate command results
- Set Up Environment, Fix Python Version, Fix CUDA, Install Package and Install uv no longer announce success when the helper failed a step; the status bar shows the error instead
- Works with helper v1.0.4, which reports each command's outcome. Older helpers behave as before.
🔍 Check Package now checks the package
- With helper v1.0.4, PyPilot: Check adds a section to the report with the package's supported Python versions and whether this project's interpreter can run it
Full Changelog: v1.0.2...v1.0.3
v1.0.2: Auto-Update Helper Binary
What's New
Auto-Update Helper Binary
The extension now automatically checks for newer versions of the PyPilot helper binary on every activation:
- Compares the local helper version against the latest GitHub release
- Prompts with Update now, Release notes, or Later options
- 24-hour snooze after dismissing, so it won't nag on every VS Code launch
- Updates managed binaries in-place; leaves your PATH install untouched
- After updating, offers to reload the window so the LSP picks up the new binary
Smarter Binary Resolution
- If both a PATH binary and a managed (downloaded) binary exist, the extension now picks the newer one instead of always preferring PATH
- Ensures an auto-updated managed binary gets used even when an older binary sits on PATH
New Command
- PyPilot: Check for Helper Updates manually triggers the update check from the command palette (bypasses the snooze timer)
Full Changelog: v1.0.1...v1.0.2
v1.0.1: Toolchain Control & Editor Fixes
What's New in v1.0.1
🚀 Package Manager Configuration
- New Setting
pypilot.packageManager:auto(Default): Uses systemuvif available on PATH, prompts to install if missing, or falls back to standard pip.uv: Full uv project mode (pyproject.toml+uv.lock).uv-pip: Accelerated pip-compatible mode (requirements.txtonly viauv venvanduv pip).pip: Standard Python venv mode (python -m venv+pip), never touches uv.
- New Command:
PyPilot: Install uv Globally(pypilot.installUv) available in the Command Palette.
🛠️ Bug Fixes & Editor Stability
- Fixed LSP Initialization Crash: Resolved duplicate command collision (
command 'pypilot.installUv' already exists) during language client startup. - Reliable Helper Detection: Added fallback check in
~/.cargo/binwhen system PATH is not inherited by GUI VS Code sessions. - Synchronous Process Execution: Replaced dynamic CJS imports with synchronous child process handling for version probing.
- Progress Notifications: Added progress toasts and status bar indicators during environment setup and toolchain installation.
📦 Installation
Download pypilot-vscode-1.0.1.vsix below and install with:
code --install-extension pypilot-vscode-1.0.1.vsix