New features to try#

This page contains recent additions to conda worth your attention, including features still in beta that we’d love your feedback on. For the full list of changes across releases, see the Release notes.

Stage legend

Stable — Recommended for production use. Some features require configuration.

Beta — Opt in to test, not recommended for production. We want your feedback!


Manage conda plugins#

Available in conda 26.11.0 or later   Stable

Use conda plugins list to see installed plugins and conda plugins info NAME to inspect their metadata and registered hooks. Conda 26.11.0 adds conda plugins install, conda plugins update, and conda plugins remove to manage their packages. Conda checks requested packages for conda entry points before confirming installation or updates. This identifies plugin packages, but does not verify that their code is safe.

How to manage a plugin

Choose the example for your distribution. Do not install conda-forge packages into an Anaconda Distribution or Miniconda base environment using defaults.

Keep base unchanged and create a separate conda-forge environment for conda-tree:

conda create --name conda-forge-plugins --override-channels --channel conda-forge conda
conda plugins install --name conda-forge-plugins --override-channels --channel conda-forge conda-tree
conda run --name conda-forge-plugins python -m conda plugins list
conda run --name conda-forge-plugins python -m conda plugins info conda-tree
conda plugins update --name conda-forge-plugins --override-channels --channel conda-forge conda-tree
conda plugins remove --name conda-forge-plugins --override-channels --channel conda-forge conda-tree

For a Miniforge base environment containing compatible conda-forge packages:

conda plugins install --name base --override-channels --channel conda-forge conda-tree
conda plugins list
conda plugins info conda-tree
conda plugins update --name base --override-channels --channel conda-forge conda-tree
conda plugins remove --name base --override-channels --channel conda-forge conda-tree

Replace the package name in the update command with --all to update all conda plugin packages in the same environment, keeping the target and channel options. This disables automatic conda upgrades, but dependency changes may still update conda or other packages. Review the package plan before confirming.

Plugins must be installed in the environment running conda. Choose channels compatible with that environment’s existing packages; the guide below explains how to use a separate environment when needed.

See Managing plugin packages for more examples, or the command reference for all options.

Faster solves: conda-rattler-solver is now conda’s default solver#

Default in conda 26.10 or later   Stable

Starting with conda 26.10, conda-rattler-solver replaces conda-libmamba-solver as conda’s default solver, delivering faster dependency resolution, especially for medium and large environments.

conda-rattler-solver also natively supports newer conda capabilities, including Installing packages from PyPI with conda. This transition also paves the way for removing libmamba and classic solvers from the default conda installation, reducing its size and dependencies.

How to manage your solver

Check your configured solver:

conda config --show solver

To change your solver configuration:

conda config --set solver libmamba

Remove the override to use conda’s default solver:

conda config --remove-key solver

For details about available solvers and configuration options, see Solvers.

If you encounter problems, please report an issue on GitHub.

Native Windows ARM64 support#

Available in conda 26.9 or later   Stable

Conda has introduced native support for win-arm64, the Windows on ARM platform, and can now resolve and install packages natively for the win-arm64 architecture. This means you no longer need to rely on workarounds like WSL2, x86-64 emulation, or manual compilation to run your Python data science toolchain on ARM hardware.

How to use it

Specify the win-arm64 target platform when creating an environment:

conda create --platform win-arm64 --name myenv-arm64 python

Select win-arm64 as your configured target platform:

conda config --set subdir win-arm64

Restore automatic platform detection:

conda config --remove-key subdir

Exclude newer packages from solves and searches#

Available in conda 26.9 or later   Stable

The --exclude-newer flag excludes package records with timestamps after a configured cutoff from environment solves. A configured exclude_newer policy also filters conda search results. This setting can be used to:

  • avoid pulling in brand-new package releases before regressions or malicious versions have had time to surface and be pulled

  • support reproducible resolution with time-based cutoffs

  • reduce the number of packages the solver considers while creating your environment, causing faster solve times

Usage and limitations

Usage

Use --exclude-newer with conda create, conda install, or conda update:

conda install --exclude-newer 2026-08-01 scipy

You can also configure a global cutoff, per-channel overrides, and per-package exceptions in your .condarc:

# Global cutoff
exclude_newer: 7d

# Per-channel overrides
channel_settings:
  - channel: conda-forge
    exclude_newer: 3d

# Per-package overrides
exclude_newer_package:
  openssl: false
  ca-certificates: false
  numpy: 30d

Package overrides take precedence over channel overrides, which take precedence over the global cutoff.

Accepted values include durations (7d, 3d12h, 1w), ISO 8601 durations (P7D), RFC 3339 timestamps, and dates (2026-04-01).

Timestamp behavior and limitations

Conda prefers the channel-provided indexed_timestamp, which is intended to record when a package first became available in the channel index. If it is absent or zero, conda falls back to the builder-controlled timestamp, which records build time rather than publication time. If a package does not have a useable timestamp, conda cannot compare the package against the exclusion cutoff, so it remains eligible for installation.

For artifacts predating CEP 47, channels may seed indexed_timestamp from build timestamps or other historical signals. These values may not reflect the exact time a package became available.

This fallback can still reduce exposure to newly built malicious packages when build timestamps are accurate, allowing time for detection and removal. However, it does not provide a reliable cooldown period after publication:

  • An old build uploaded today may pass the cutoff.

  • A malicious publisher can backdate the build timestamp.

  • A cutoff may delay legitimate security fixes.

Timestamp filtering does not guarantee package safety. It can support reproducible resolution, but does not guarantee an exact reconstruction of a channel’s historical state.

For more information, see Installing packages with a timestamp cutoff.

Install packages from PyPI with conda install#

Available in conda 26.9 or later   Stable

The new conda-pypi plugin lets you install supported pure Python wheels from PyPI natively with the conda install command. Conda resolves dependencies together, without a separate pip install step that can introduce conflicts and make environments harder to reproduce. Once installed, these packages are fully managed by conda: they appear in conda list, are captured by conda export, and can be removed with conda remove.

PyPI packages are made available through the free conda-pypi channel, which you can now also browse on Anaconda.org to discover available packages.

How to try it

The conda-rattler-solver plugin is required. Check your configured solver with conda config --show solver. If it isn’t rattler, select it explicitly:

conda config --set solver rattler

Add the conda-pypi channel after your conda channels:

conda config --append channels conda-pypi

Search for a package in the channel, then install it:

conda search conda-pypi::<package-name>
conda install <package-name>

Note: Only pure Python wheels from public PyPI are supported in this workflow. Wheels come directly from PyPI and aren’t reviewed before they’re added to the channel.

For more details and limitations, see Installing packages from PyPI with conda.

Reproducible environments with multi-platform lockfiles#

Available in conda 26.5 or later   Stable

Conda can export environments to lockfiles and create environments from them. A lockfile pins exact package versions and builds, so conda recreates the environment without solving again. A single multi-platform lockfile can contain resolved packages for Linux, macOS, and Windows.

The conda-lock.yaml and pixi.lock formats are supported natively. No additional tools or plugins are required.

How to use it

Export a lockfile for an existing environment:

conda export --name myenv --file conda-lock.yaml

Create an environment from the lockfile:

conda create --name myenv-copy --file conda-lock.yaml

Export a lockfile that covers multiple platforms:

conda export --name myenv --file conda-lock.yaml \
  --platform linux-64 \
  --platform osx-arm64 \
  --platform win-64

For more details, see Multi-platform lockfiles.