Four pixi concepts cover most of the model.
pixi.toml. The project manifest. Declares the project name, channels, package deps (conda-forge), pypi-deps (PyPI), tasks, features, environments. It's pixi's package.json / Cargo.toml — the source of truth for what your project needs.
pixi.lock. The auto-generated lock file. Pins every direct and transitive dep with content hashes, for every platform you've targeted. Reproducibility is bit-exact — pixi install on another machine produces the same env. Always commit pixi.lock; never hand-edit.
Features and environments. pixi.toml supports declaring features (named groups of deps) and environments (combinations of features). The default usage is simple — base deps, plus a dev feature. But for complex projects you can have cuda, amd, cpu features and produce gpu-cuda, gpu-amd, cpu-only environments from one pixi.toml. That's monorepo-style reproducibility for ML projects.
PyPI layer via uv. When pixi.toml declares pypi-deps, pixi shells out to uv to resolve them. That's how pixi handles the conda-forge / PyPI split cleanly — conda-forge for binaries, uv for pure-Python packages. The two layers are tracked separately in pixi.lock, but the user-facing experience is unified.