Product Update: Anaconda CLI

Today Anaconda announces the transformation of the Anaconda CLI from a monolithic codebase into a plugin architecture. This will allow us to more easily maintain anaconda-client, providing stable community package management on anaconda.org, and allow a path for rapid innovation and access to a number of new and exciting features of our platform.

Anaconda-client has been the backbone of the Anaconda Command Line Interface (CLI) since its initial creation in 2013. It is the workhorse responsible for uploading and managing packages on community channels hosted on anaconda.org, such as conda-forge, bioconda, and many others. After more than a decade of development, some of the early features and technical decisions have become technical debt.

With this change, anaconda-client will evolve to become the anaconda.org-specific plugin into a larger Anaconda CLI ecosystem.

Summary of Changes in Upcoming Release

The first phase of this change was released in anaconda-client 1.13.0. This release, while providing a fundamental architectural shift, is intended to have minimal impact on user experience, particularly in automated CI/CD scenarios. Only minor changes to interactive login flows are changed, and only in certain cases.

Some highlights:

  • While the anaconda CLI entrypoint will be moved to a new package called anaconda-cli-base, the user experience will be nearly 100% backwards compatible
    • The exception is triggered if another plugin such as anaconda-cloud-auth is also installed in the user’s conda environment, in which case the interactive login and logout commands will add an additional prompt to ask which domain to use
    • Notably, non-interactive usage via the --token CLI option remains as-is
  • Library usage as binstar_client has not been modified
  • All existing subcommands will remain available (e.g. anaconda upload). If additional plugins are installed, all anaconda-client commands will be treated as aliases to nested commands like anaconda org upload.

What you can expect in the future

We will continue evolving anaconda-client to remove legacy features, all while maintaining active support for the package management workflows currently used across the ecosystem. All future deprecations will take place by raising DeprecationWarnings, in a similar way to conda itself.

As a part of this modernization, users can expect to see a more modern CLI interface. Additionally, we will continue to release plugins with features tailored to users across our entire subscription portfolio. (e.g. Anaconda Environment Manager). 

Example usage of anaconda-audit CLI plugin:

How to upgrade

Users can upgrade via:

conda update anaconda-client

To downgrade or prevent update, users may pin the version:

conda install anaconda-client=1.12.3

Get in touch

This release has been subject to Anaconda’s thorough QA process and we do not expect any major bugs or regressions. However, in case any unintended regressions or bugs occur in this release, users can revert to `anaconda-client=1.12.3.`

Users are welcome to file any feature requests or bug issues at our issue tracker at https://github.com/anaconda/anaconda-client

Talk to an Expert

Talk to one of our experts to find solutions for your AI journey.

Talk to an Expert