The provider model#

Python Environments exposes APIs for extensions to register environment and package managers. Conda Code registers:

  • an environment manager for discovery, creation, removal, selection, and execution

  • a package manager for listing and changing packages

Both use jezdez.conda-code:conda.

Conda Code runs conda directly#

The provider runs conda and conda workspace commands through its own clients. It does not call the built-in conda manager from Python Environments.

Its discovery and mutation paths apply workspace routing, safe removal rules, conda-global and conda-exec cache exclusion, conda-pypi record handling, and Pixi Code coexistence.

The configured conda is the primary route for creation, workspaces, tasks, and plugin features. Discovery can find additional local conda installations. Existing regular environments retain an owner root and executable when discovery can determine them. An owning conda executable provides conda hook activation from that root and handles package changes and safe deletion. Prefixes without an owning conda executable remain visible but cannot be mutated.

Why two conda managers can appear#

Python Environments currently registers ms-python.python:conda unconditionally. The public extension API supports adding managers but does not provide a supported replacement, hiding, or cross-manager deduplication mechanism.

As a result, the built-in conda branch and Conda Code can both list a regular prefix. Selecting jezdez.conda-code:conda as the default or project manager directs creation and package operations to Conda Code. It does not remove the built-in branch.

For ordinary conda environments, Conda Code follows the built-in manager’s Base, Named, and Prefix classification. Workspace groups and the documented conda-global, conda-exec, and Pixi exclusions are intentionally outside that parity.

One prefix inside Conda Code#

Conda Code deduplicates its own regular and workspace discovery by canonical prefix identity. Filesystem aliases resolve to one prefix. A prefix reported by one workspace is published once and routed through that workspace. A prefix reported by several workspace manifests is hidden until the conflict is resolved.