About conda plugins#

conda’s plugin system lets anyone extend conda with new functionality. Plugins are regular Python packages that declare entry points under [project.entry-points.conda] in their pyproject.toml.

What plugins can do#

Plugins can hook into many parts of conda’s lifecycle via plugin hooks. Each hook has its own documentation page in the conda developer guide:

Auth handlers

Handle channel authentication and credential storage.

Environment exporters

Export environments in custom formats.

Environment specifiers

Provide alternative environment specification formats.

Error hints

Add contextual hints when conda reports an expected error.

Exception observers

Observe unexpected exceptions for external reporting or diagnostics.

Health checks

Run diagnostic checks on environments.

Package extractors

Extract packages from custom archive formats.

Pre-commands / Post-commands

Run code before or after built-in conda commands.

Pre-solves / Post-solves

Inspect requested specifications before a solve or records after it.

Pre-transactions / Post-transactions

Hook into environment transactions (installs, updates, removes).

PrefixData loaders

Customize how installed package metadata is read.

Reporter backends

Provide custom output formats for conda commands.

Request and session headers

Inject HTTP headers into individual channel requests or client sessions.

Settings

Register custom configuration options.

Solvers

Provide alternative dependency resolution backends.

Subcommands

Add new conda <name> CLI commands.

Virtual packages

Provide virtual package information to the solver.

For the full API reference, see the Plugin API docs.