Pixi brings fast, reproducible package management and polyglot workspace workflows to Visual Studio Code. Built upon a decoupled, language-agnostic core architecture, it provides unified project discovery, task execution, terminal profiles, manifest actions, and automatic multi-language toolchain scanning.
[!NOTE]
Language Adapter Status: Python is fully supported with first-class environment integration via @vscode/python-environments (interpreter resolution, dynamic file-level environment routing, and package tree management). Automatic toolchain detection is also available for C/C++, R, and Rust, with additional language integrations planned.
Pixi Explorer Side Panel
A dedicated Activity Bar container providing complete visibility and control over your Pixi workspace:
┌────────────────────────────────────────────────────────────────────────┐
│ PIXI EXPLORER │
├────────────────────────────────────────────────────────────────────────┤
│ ENVIRONMENTS │ Installed / Uninstalled / Incompatible │
│ │ ├── Explicit vs Transitive Dependencies │
│ │ └── 1-click Install, Reinstall, Lock & Terminal │
├──────────────────┼─────────────────────────────────────────────────────┤
│ TASKS │ Native Pixi Tasks Runner │
│ │ ├── 1-click Run & Run in Custom Environment │
│ │ └── Jump to Task Definition in Manifest │
├──────────────────┼─────────────────────────────────────────────────────┤
│ GLOBAL TOOLS │ User-level CLI Apps (~/.pixi/bin) │
│ │ └── Inspect, Install, Sync, Update & Uninstall │
├──────────────────┼─────────────────────────────────────────────────────┤
│ PIXI INFO │ CLI Version, System Platform, Virtual Packages │
│ │ └── Cache Disk Measurement & 1-click Cleanup │
└────────────────────────────────────────────────────────────────────────┘
Key Features
Workspace & Environment Lifecycle
- Automatic Project Discovery: Instantly detects
pixi.toml and pyproject.toml manifests across single-root and multi-root workspaces.
- Manifest Editor Actions: 1-click title bar buttons for manifest files to Lock, Install, Update, or Reinstall dependencies.
- File-Level Environment Routing: Map glob patterns directly to specific Pixi environments via
pixi.environmentRules (e.g. tests/**=dev).
- Lifecycle Diagnostics: Categorizes environments into Installed (ready & executable), Uninstalled (declared in manifest, 1-click installable), and Incompatible (platform mismatch).
Aggregated Package Search & Discovery
- Dual-Source Search: High-performance real-time search across Conda repositories (
conda-forge, etc.) and PyPI with live autocompletion.
- Rich Package Inspection: View package versions, target platforms, licenses, descriptions, and jump directly to package pages on prefix.dev.
- Dependency Diagnostics: Inspect full dependency trees and diagnose package origin with reverse dependency tree inspection ("Why is this package installed?").
- Deep Python Integration: Connects with
@vscode/python-environments for seamless interpreter switching, status bar indicators, and package inspection.
- Multi-Language Toolchain Scanner: Automatically scans installed environments for Python, C/C++ compilers (GCC, Clang, MSVC, CMake, Ninja, header paths), R (
R, Rscript), and Rust (rustc, cargo).
- Native VS Code Tasks: Auto-registers Pixi tasks as native VS Code tasks (
Terminal: Run Task...) with a dedicated QuickPick runner.
- Pre-Configured Terminals: Launch interactive terminal sessions with the target Pixi environment pre-activated.
- Global Tools Management: Easily inspect, install, update, and uninstall user-level CLI packages installed in
~/.pixi/bin.
Essential Commands
Launch any command via the Command Palette (Ctrl+Shift+P / Cmd+Shift+P) by typing Pixi::
| Command |
Identifier |
Description |
| Pixi: Search Packages ... |
pixi.searchPackages |
Search Conda & PyPI packages with autocompletion and 1-click install. |
| Pixi: Install (Sync Environments) |
pixi.install |
Install dependencies and synchronize all project environments. |
| Pixi: Add Package... |
pixi.addPackage |
Add packages to the project with interactive channel and version picking. |
| Pixi: Update Dependencies |
pixi.update |
Update dependencies and refresh pixi.lock. |
| Pixi: Lock Dependencies |
pixi.lock |
Solve dependencies and update the lockfile without modifying environments. |
| Pixi: Run Task |
pixi.runTask |
QuickPick menu to search and run any task defined in the project. |
| Pixi: Open Terminal in Environment... |
pixi.openTerminal |
Open an integrated terminal pre-activated in a selected environment. |
| Pixi: Global Tools ... |
pixi.global |
Interactive menu to install, list, update, and uninstall global CLI tools. |
| Pixi: Clean Package Cache ... |
pixi.cleanCache |
Clean global Pixi package cache directory with disk space reclamation. |
[!TIP]
Contextual actions (such as removing packages, jumping to manifest declarations, running tasks in custom environments, and inspecting dependency trees) are also directly available via inline icon buttons in the Pixi Explorer tree views and editor title bar.
Extension Settings
| Setting |
Type |
Default |
Scope |
Description |
pixi.executablePath |
string |
"" |
Machine |
Path to the Pixi binary. Discovered from system PATH if empty. |
pixi.displayNameFormat |
string |
"${project}:${env}" |
Resource |
Display format for environments. Placeholders: ${project}, ${env}, ${version}. |
pixi.defaultManifestFormat |
string |
"ask" |
Resource |
Default manifest format for project initialization ("ask", "pixi", or "pyproject"). |
pixi.autoInstallOnOpen |
string |
"prompt" |
Resource |
Behavior when opening projects with uninstalled environments ("prompt", "always", "never"). |
pixi.environmentRules |
string[] |
[] |
Resource |
Map glob patterns to environment names (e.g. tests/**=dev, train/**=gpu). |
pixi.packages.displayMode |
string |
"grouped" |
Resource |
Package tree display mode ("grouped", "explicitOnly", or "all"). |
pixi.cache.autoMeasureSize |
boolean |
true |
Window |
Automatically compute Pixi cache disk usage in Pixi Info. |
pixi.searchIgnorePatterns |
string[] |
["**/node_modules/**", ...] |
Resource |
Glob patterns to ignore when scanning workspace for Pixi projects. |
Example Configuration
Add this to your project's .vscode/settings.json:
{
"pixi.environmentRules": ["tests/**=dev", "train/**=train", "scripts/*.py=dev"],
"pixi.defaultManifestFormat": "pixi",
"pixi.displayNameFormat": "${project}:${env} (${version})",
"pixi.packages.displayMode": "grouped"
}
Public Extension API
Other VS Code extensions can programmatically access Pixi's workspaces, environments, and toolchains:
import * as vscode from 'vscode';
import type { PixiExtensionApi } from 'sheeptao.pixi';
const pixi = vscode.extensions.getExtension<PixiExtensionApi>('sheeptao.pixi')?.exports;
if (pixi) {
const projectPaths = pixi.getProjectPaths();
const envs = pixi.getAllEnvironments();
const packages = await pixi.getPackages('default', projectPaths[0]);
// Active environment management
const activeEnv = await pixi.getActiveEnvironment();
await pixi.setActiveEnvironment(undefined, 'default');
pixi.onDidChangeActiveEnvironment((e) => {
console.log('Active environment changed:', e.environment?.pixiEnvName);
});
}
Requirements & Quick Start
- Install Pixi on your system.
- Install Pixi from the VS Code Marketplace or Open VSX.
- (Optional for Python) Install the official Python Environments extension for Python interpreter and package integration.
- Open any workspace containing a
pixi.toml or pyproject.toml.
Troubleshooting
- Check Output Logs: Open
View → Output and select Pixi from the dropdown.
- Binary Not Found: Verify
pixi is available in your system PATH, or set pixi.executablePath.
- Environments Not Showing: Ensure
pixi.toml exists and run pixi.install to initialize environment prefixes.
Acknowledgements & License
| |