conda-features
A conda plugin for finding, enabling, and configuring optional features. It shows what setup will change before you approve it and records those changes so you can retry or undo them later.
Install a provider to add features to the catalog. The source-only conda-features-examples package includes PyPI support and shell completion. Enabling these features can install packages, change conda settings, or edit shell files after confirmation.
Install and use
Install conda-features from the jezdez Anaconda channel, or use its PyPI distribution through conda-pypi. Use Python 3.12 or newer with conda 26.9.4 or newer. Install into the Python environment running conda, not just an environment you want to configure. For a conventional installation hosted in base:
conda install --name base --override-channels --channel conda-forge \
--channel jezdez conda-features=0.2.0
If your conda host already has conda-pypi and the Rattler solver, you can install the PyPI wheel through conda instead:
conda install --name base --solver rattler --override-channels \
--channel conda-forge --channel conda-pypi \
"conda-pypi::conda-features=0.2.0"
Both commands assume conda runs from base. See Installation for other hosts and how to set up the optional PyPI route. Neither command requires pip to install the released package.
The examples distribution is intentionally unpublished, so the PyPI channel cannot supply it. Its source installation is separate and still uses Git and the host Python's pip:
python -m pip install "conda-features-examples @ git+https://github.com/jezdez/conda-features.git@0.2.0#subdirectory=packages/conda-features-examples"
Then use that installation's conda command:
conda feature list
conda feature explain conda-pypi
conda feature enable conda-pypi --user --dry-run
See Installation if you have more than one conda installation. The tutorial walks through previewing, enabling, and disabling PyPI support in a temporary configuration file.
Documentation
See the changelog for released features and publication history.
The documentation is published to GitHub Pages from main. Pull requests build the site without deploying it.
Start with the documentation index or the first deployment tutorial, which uses your installed plugin and a temporary configuration file.
Contributor setup and documentation build commands are in Development.
- Manage features and scopes
- Verify release provenance and publication attestations
- Deploy real PyPI support and shell completion
- Diagnose and recover setup
- Migrate and transfer choices
- Build your first provider
- Command reference
- Provider and step API
- Configuration, ownership, and recovery explained
- Development and verification
The design document includes goals beyond the current implementation.
Commands at a glance
conda feature list
conda feature explain FEATURE
conda feature enable FEATURE --dry-run
conda feature config FEATURE --set KEY VALUE --dry-run
conda feature config FEATURE --get
conda feature config FEATURE --show-sources
conda feature config FEATURE --remove-key KEY --dry-run
conda feature disable FEATURE --dry-run
conda feature diagnose --json
conda feature repair FEATURE --dry-run
conda feature migrate FEATURE --dry-run
conda feature cleanup FEATURE --dry-run
Use an installed feature ID in place of FEATURE. Mutations require confirmation or --yes. Deployment dry-runs may solve packages and refresh caches without installing packages or writing managed resources. --file isolates conda configuration, not package installation or shell files.
config is available from 0.2.0. Release 0.1.0 uses conda feature configure FEATURE KEY=VALUE, which remains supported. The custom intent export/apply format from 0.1.0 was removed in 0.2.0.
Current limits
There is no authentication integration, telemetry, remote catalog, or automatic migration. Environment checks cover the targets you select and your conda registry. They can miss unregistered environments. Status reports configuration and setup checks, but does not observe provider execution. Package and shell migrations need provider-specific code.
CI runs core tests on Linux x64, Windows x64, and ARM macOS, with real-provider integration on Linux. Other conda versions and shell/platform combinations may not have been tested. Check the workflow results for the revision you use.
Metadata
Release files for conda-features 0.2.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_features-0.2.0.tar.gz | 29.2 kB | With provenance | Details for conda_features-0.2.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| conda_features-0.2.0-py3-none-any.whl | Python 3 | none | any | Details for conda_features-0.2.0-py3-none-any.whl |
Total release size: 74.6 kB
Release files / conda_features-0.2.0.tar.gz
| Download URL | conda_features-0.2.0.tar.gz |
|---|---|
| Size | 29.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
99e1938ad4f7dd311c77b1bbe68d773f807b786e92cdc3a0e081048e6465ff40
|
|
BLAKE2b-256 checksum How to use checksums |
20a1e2211015de6b380c5aab68e4e18894aa7f73b8255c8f8687bffe8e39f654
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Nov 13, 2026.
Transparency logRelease files / conda_features-0.2.0-py3-none-any.whl
| Download URL | conda_features-0.2.0-py3-none-any.whl |
|---|---|
| Size | 45.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e675f436e067575ccff2742c55bf9f1ff0ed98f26c200b0ffb318d4a5e0cfa58
|
|
BLAKE2b-256 checksum How to use checksums |
1453f5e16090e31eda66921abad3f5140187494986a27783018eae21c0159d9f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Nov 13, 2026.
Transparency logSecurity for conda-features 0.2.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
Both files in this release have been uploaded with provenance metadata.
Attestation for conda_features-0.2.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 Nov 13, 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.