The miniforge installer is a relatively new, community-led, minimal conda installer that (as it says in its readme) “can be directly compared to Miniconda, with the added feature that conda-forge is the default channel”.

It is unclear what is different between miniforge and Miniconda, or what the miniforge use case is.

If miniforge is the same as Miniconda except it just uses the conda-forge channel by default, why create a whole different installer – why not just use miniconda and add conda-forge as the first channel to use in ~/.condarc?

If miniforge is different from Miniconda, what is different about the two?

miniforge is the community (conda-forge) driven minimalistic conda installer. Subsequent package installations come thus from conda-forge channel.

miniconda is the Anaconda (company) driven minimalistic conda installer. Subsequent package installations come from the anaconda channels (default or otherwise).

miniforge started a few months ago because miniconda doens’t support aarch64, very quickly the ‘PyPy’ people jumped on board, and in the mean time there are also miniforge versions for all Linux architectures, as well as MacOS.

Soon there will also be a windows variant (hopefully also for both CPython and PyPy)

I guess that an ARMv7 (32Bit ARM) variant is also on the horizon (Raspbian)

The license. As of the 30 September 2020 update to the Anaconda Terms of Service, access to the Main conda channel (hosted at repo.anaconda.org) is restricted: https://www.anaconda.com/terms-of-service

While both the conda and miniconda installers are published under a BSD 3-clause license, if you actually use the installed conda clients without removing the Main channel, you’ll be in violation of Anaconda’s ToS. The miniforge installer avoids this altogether, which is of particular interest to large organizations that wish to use conda.

The short answer: miniforge-installed conda is the same as Miniconda-installed conda, except that it uses the conda-forge channel (and only the conda-forge channel) as the default channel.

This can be deduced by looking at the two files the miniforge repo uses to build the miniforge installer:

Looking at construct.yaml it sets conda-forge as the only channel (there is no defaults channel added; also see this Github comment) and then installs a few packages (python, conda, pip, and bzip2). It also writes those changes to the condarc.