Managing plugins#

This tutorial covers the complete lifecycle of conda plugins in a protected base environment: installing, updating, and removing them.

Prerequisites#

Install a plugin#

Install plugin demo

conda self install conda-index

conda-self runs conda install as a subprocess with --override-frozen, then validates that the installed package is a real conda plugin by checking its entry points. If validation fails, the package is automatically uninstalled.

Multiple plugins at once#

conda self install conda-index conda-spawn

Update plugins#

Update demo

Update conda:

conda self update

Update a specific plugin:

conda self update --plugin conda-index

Update all installed packages:

conda self update --all

Force reinstall:

conda self update --force-reinstall

Remove a plugin#

Remove demo

conda self remove conda-index

Conda-self protects conda, conda-self, configured permanent packages, and their dependencies from direct removal requests unless --force is passed. If you try without --force, you will see a PluginRemoveError. Conda’s own transaction checks still apply with --force.

Channel configuration#

conda-self uses your configured channels. Use conda config to add or change channels before installing. To install plugins from a custom channel:

# Add the channel first
conda config --add channels my-channel -n base

# Then install
conda self install my-plugin

Channel-qualified package specs (conda-forge::my-plugin) are not supported and will produce an error. This keeps channel configuration consistent across all operations.

Next steps#