conda-workspaces
Project-scoped multi-environment workspaces and task runner for conda, with pixi manifest compatibility.
Define environments and tasks in your project manifest, compose environments from reusable features, and let conda handle the solving and installation. Works with existing pixi manifests -- no new package manager required.
Quick start
Create a conda.toml in your project root:
[workspace]
name = "my-project"
channels = ["conda-forge"]
platforms = ["linux-64", "osx-arm64", "win-64"]
[dependencies]
python = ">=3.10"
numpy = ">=1.24"
[feature.test.dependencies]
pytest = ">=8.0"
pytest-cov = ">=4.0"
ruff = ">=0.9"
[environments]
test = { features = ["test"] }
[tasks]
test = { cmd = "pytest tests/ -v", description = "Run the test suite" }
lint = "ruff check ."
[tasks.check]
depends-on = ["test", "lint"]
Install and manage your environments, then run tasks:
$ conda workspace install # solve + install + generate conda.lock
$ conda workspace envs # list defined environments
$ conda task run -e test check # runs lint and test in the test environment
$ conda workspace shell -e test # spawn a shell with test env activated
$ conda workspace install --locked # reproducible install from conda.lock
Why?
Conda handles environments and packages. pixi introduced a great project model with multi-environment workspaces and a task runner, but it brings its own solver and environment management.
conda-workspaces reads pixi-compatible manifests and delegates solving and installation to conda's own infrastructure. You get workspace management and task running inside the conda CLI without switching tools.
What it does
- Reads
conda.toml,pixi.toml, andpyproject.tomlworkspace manifests - Multi-environment support with composable features
- Project-local environments in
.conda/envs/ - Lockfile generation (
conda.lock) using a rattler-lock-derived schema for reproducible installs - Workspace archives with optional receipt verification for portable handoff
- Runnable container images from locked Linux environments and project files
- Per-platform dependency overrides via
[target.<platform>] - PyPI dependencies translated and resolved alongside conda packages via conda-pypi
- Activation scripts and environment variables per feature
- System requirements as virtual package constraints
- Per-workspace channel priority override
- Task dependencies with topological ordering (
depends-on) - Jinja2 templates in commands (
{{ conda.platform }}, conditionals) - Task arguments with defaults, input/output caching, and per-platform overrides
conda workspace/conda tasksubcommands (also available ascw/ctaliases)
Installation
conda install -n base conda-forge::conda-workspaces
CLI
conda-workspaces registers conda workspace and conda task subcommands,
and also provides cw and ct as shorter aliases.
Workspace commands
| Command | Description |
|---|---|
conda workspace init |
Initialize a new workspace manifest |
conda workspace install |
Create/update workspace environments |
conda workspace install --locked |
Install from lockfile (skip solving) |
conda workspace lock |
Generate/update conda.lock |
conda workspace list |
List packages in an environment |
conda workspace envs |
List defined environments |
conda workspace info |
Show workspace or environment details |
conda workspace add SPECS... |
Add dependencies |
conda workspace update SPECS... |
Update selected conda roots while preserving constraints |
conda workspace remove SPECS... |
Remove dependencies |
conda workspace export |
Export environments and manifests through conda exporters |
conda workspace sbom |
Export a CycloneDX SBOM through the optional conda-sboms plugin |
conda workspace import FILE |
Convert a supported manifest into a new conda.toml |
conda workspace import -e ENV environment.yml |
Add a named environment to an existing workspace |
conda workspace quickstart SPECS... |
Bootstrap a workspace, install it, and optionally open a shell |
conda workspace shell -e ENV |
Spawn a shell with an environment activated |
conda workspace activate -e ENV |
Print activation instructions |
conda workspace clean |
Remove installed environments |
conda workspace archive |
Create a portable workspace archive |
conda workspace unarchive |
Extract and optionally verify a workspace archive |
conda workspace image |
Build a runnable container image from a locked Linux environment |
Task commands
| Command | Description |
|---|---|
conda task run TASK |
Run a task (with dependency resolution) |
conda task list |
List available tasks |
conda task add NAME CMD |
Add a task to the manifest |
conda task remove NAME |
Remove a task from the manifest |
conda task export |
Export tasks to conda.toml format |
What it doesn't do
conda-workspaces is a workspace manager and task runner, not a package manager replacement. It does not bundle its own solver or bypass conda's installation machinery. If you want a fully integrated tool that handles everything including its own solver, see pixi.
Documentation
Demos
See demos/README.md for animated terminal recordings of workspace and task features.
Development
pixi install
pixi run -e test test
pixi run -e dev check
Acknowledgements
The workspace and task system in conda-workspaces is directly inspired by the work of the prefix.dev team on pixi. Their design of workspace manifests, features, environments, platform targeting, task dependencies, caching, and template variables provided the blueprint for this plugin.
License
BSD 3-Clause. See LICENSE.
Metadata
Release files for conda-workspaces 0.10.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| conda_workspaces-0.10.0.tar.gz | 47.7 MB | With provenance | Details for conda_workspaces-0.10.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| conda_workspaces-0.10.0-py3-none-any.whl | Python 3 | none | any | Details for conda_workspaces-0.10.0-py3-none-any.whl |
Total release size: 48.0 MB
Release files / conda_workspaces-0.10.0.tar.gz
| Download URL | conda_workspaces-0.10.0.tar.gz |
|---|---|
| Size | 47.7 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f9ea147680246341a2fd6ed1db5196c925db6c5da3bc7c9113651833f3123666
|
|
BLAKE2b-256 checksum How to use checksums |
c9b992b3915a6f09f36c29276f533b847936a0a94c0a30196ed59bd371a3ee3a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.
Transparency logRelease files / conda_workspaces-0.10.0-py3-none-any.whl
| Download URL | conda_workspaces-0.10.0-py3-none-any.whl |
|---|---|
| Size | 230.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9204ac181f8ed3571d3877506e24a96ce2479597d29d20a7b2769aae51d7957f
|
|
BLAKE2b-256 checksum How to use checksums |
5febee3ec9a10e98227f58a18e0bd0429655458624fc8c54cd393423f45ba11e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.
Transparency logSecurity for conda-workspaces 0.10.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for conda_workspaces-0.10.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.