Quick start#

This tutorial installs conda-presto in a dedicated tooling environment, runs one solve, and starts the optional HTTP server. The solve does not create or modify a target environment.

Install#

Choose the package source that matches the documentation you want to follow.

conda create --name conda-presto \
  --override-channels \
  --channel conda-forge \
  python=3.13 \
  'conda>=26.5,<27' \
  'conda-rattler-solver>=0.1.1,<0.2' \
  'conda-lockfiles>=0.2.1' \
  'jinja2>=3.1.2' \
  'litestar>=2.18' \
  'pyjwt>=2.0' \
  'uvicorn>=0.34' \
  'brotli-python>=1.1' \
  pip
conda activate conda-presto
python -m pip install conda-presto
conda create --name conda-presto-main \
  --override-channels \
  --channel conda-forge \
  python=3.13 \
  'conda>=26.5,<27' \
  'conda-rattler-solver>=0.1.1,<0.2' \
  'conda-lockfiles>=0.2.1' \
  'jinja2>=3.1.2' \
  'litestar>=2.18' \
  'pyjwt>=2.0' \
  'uvicorn>=0.34' \
  'brotli-python>=1.1' \
  pip
conda activate conda-presto-main
python -m pip install 'git+https://github.com/jezdez/conda-presto.git@main'
git clone https://github.com/jezdez/conda-presto.git
cd conda-presto
pixi install
pixi shell

conda-presto is installed from PyPI or Git into a conda environment that supplies conda and its solver plugins. It is not currently published as a conda package. The source-checkout path enters the default Pixi development environment. Run the remaining commands inside the activated conda environment or Pixi shell.

Note

The documentation site is built from main. If the [Unreleased] changelog section is not empty, use the current-main or source-checkout tab for those changes.

conda-presto requires conda 26.5 or newer and Python 3.13 or newer. Verify that conda discovered the subcommand:

conda presto --help

Resolve an environment#

Resolve Python and NumPy for Linux without downloading packages or creating a prefix:

conda presto -c conda-forge -p linux-64 python=3.13 numpy > result.json

Inspect the selected package names and versions:

jq -r '.[0].packages[] | "\(.name) \(.version) \(.build)"' result.json

The outer array contains one result per requested platform. A successful entry has package records and an error value of null.

Resolve an environment file#

Given an environment.yml, request two platforms:

conda presto -f environment.yml -p linux-64 -p osx-arm64 > result.json

The two solves can run in parallel. To write a lockfile instead of native JSON, select a conda exporter:

conda presto -f environment.yml \
  -p linux-64 \
  -p osx-arm64 \
  --format pixi-lock-v6 > pixi.lock

Start the HTTP server#

Start a local server in one terminal:

conda presto --serve

Check readiness from another terminal:

curl -sS http://127.0.0.1:8000/health

The response is {"status":"ok"} when the server can accept solve requests. The 0.8.0 release and current main serve the browser workbench at http://127.0.0.1:8000/. Fetch http://127.0.0.1:8000/openapi.json for the generated OpenAPI document.

Choose the next guide#