Next-gen cross-platform package management

Pixi Private Packages with CloudRepo PyPI Index

Host private Python packages in a PyPI index that Pixi installs from, next to the conda packages it takes from conda-forge.

Works with pixi.toml configuration
Cross-platform: Windows, macOS, Linux
No per-seat fees, unlike Anaconda
Terminal
# Add a private package, pinned to your CloudRepo index
# (pixi reads the login from ~/.netrc)
pixi add --pypi internal-sdk \
  --index https://your-org.mycloudrepo.io/repositories/your-repo/simple/

# Mix conda and private PyPI
pixi add numpy  # conda-forge
pixi add --pypi my-lib \
  --index https://your-org.mycloudrepo.io/repositories/your-repo/simple/  # CloudRepo
Cross-platform
Windows, Mac, Linux

Included on every plan

Plans differ only in storage and transfer allowance.

Coming soon: Access log

Why CloudRepo for Pixi Package Management?

Compare CloudRepo's prices with Anaconda and JFrog Artifactory

Feature
CloudRepo (Recommended)
Anaconda JFrog Artifactory
Starting Price $99/month billed annually $15 per user a month (Starter; billing basis not stated) $150/month list, billed monthly

Competitor figures were read on 2026-10-06 from: Anaconda pricing (archived), JFrog pricing (archived), JFrog Pro checkout (archived). Vendors change prices and plans, so check each page before you decide.

CloudRepo includes single sign-on and human support from the people who build CloudRepo on every plan.

Features of JFrog Pro and of every CloudRepo plan
Feature JFrog Pro CloudRepo, every plan
Single sign-on (SSO) Not in Pro: JFrog lists SAML and OAuth sign-on for Enterprise X Enterprise X is for organizations who need multi-site capabilities, uptime and support guarantees, and enterprise access controls (ie. OAuth, SAML, CName). JFrog’s pricing page, archived Included
Support Community support: public documentation, a knowledge base and Stack Overflow Community Support - Available for Free solutions and Pro subscriptions - JFrog maintains public documentation, knowledge base, and engages in conversations on Stack Overflow. JFrog’s pricing page, archived Human support from the people who build CloudRepo

Built for Modern Cross-Platform Python

CloudRepo perfectly complements Pixi's next-generation package management

Cross-Platform Excellence
Perfect for teams building Python applications that run seamlessly on Windows, macOS, and Linux with reproducible environments.
PyPI Index Support
CloudRepo provides a fully compatible PyPI index that Pixi uses for private Python packages alongside conda-forge.
Private Packages in pixi.lock
Pixi resolves the private Python packages your CloudRepo index serves and locks them in pixi.lock.
Conda Packages Stay on Their Channels
CloudRepo hosts your private Python packages. Conda packages install from conda-forge or your own channel, as before.

Quick Pixi Setup with CloudRepo

Configure Pixi to use CloudRepo for private Python packages in minutes

1

Configure Pixi with CloudRepo

Pin each private package to your CloudRepo index in pixi.toml. pixi looks up a package that names its index on that index, not on PyPI.

pixi.toml
[project]
name = "my-project"
version = "0.1.0"
channels = ["conda-forge"]
platforms = ["linux-64", "osx-arm64", "win-64"]

[dependencies]
python = "3.12.*"

[pypi-dependencies]
# Public packages come from PyPI. Each private package names the
# CloudRepo index, including the private packages it depends on.
acme-internal-sdk = { version = "*", index = "https://your-org.mycloudrepo.io/repositories/your-repo/simple/" }
acme-utils = { version = "*", index = "https://your-org.mycloudrepo.io/repositories/your-repo/simple/" }  # a private dependency of acme-internal-sdk
2

Install Private Packages

Add private Python packages from CloudRepo alongside conda packages in your Pixi project.

Terminal
# Credentials go in ~/.netrc, not in pixi.toml. The login is the email
# address of the account that created the token.
# The subshell's umask keeps the file private from the moment it is created;
# >> adds the entry without replacing an existing ~/.netrc.
(umask 077 && printf 'machine your-org.mycloudrepo.io\nlogin you@example.com\npassword %s\n' \
  "$CLOUDREPO_TOKEN" >> ~/.netrc)
chmod 600 ~/.netrc

# Add a private PyPI package, pinned to CloudRepo, with its private
# dependencies in the same command: pixi installs at once, and a private
# dependency it meets unpinned comes from PyPI
pixi add --pypi acme-internal-sdk acme-utils --index https://your-org.mycloudrepo.io/repositories/your-repo/simple/

# Add with specific version
pixi add --pypi "acme-internal-sdk==2.3.0" --index https://your-org.mycloudrepo.io/repositories/your-repo/simple/

# Mix conda and PyPI packages
pixi add numpy pandas  # from conda-forge
pixi add --pypi acme-ml-lib --index https://your-org.mycloudrepo.io/repositories/your-repo/simple/  # from CloudRepo

# Install all dependencies
pixi install

# Run in isolated environment
pixi run python app.py
3

Publish Packages to CloudRepo

Build and publish your Python packages to CloudRepo for team-wide distribution.

Terminal
# Build your package with standard tools
python -m build

# Upload to CloudRepo using twine. twine reads its credential from these
# variables, so the token is not an argument. The username is the email
# address of the account that created the token.
export TWINE_USERNAME="you@example.com"
export TWINE_PASSWORD="$CLOUDREPO_TOKEN"
twine upload --non-interactive \
  --repository-url https://your-org.mycloudrepo.io/repositories/your-repo \
  dist/*

Perfect for Modern Python Teams

How teams pair Pixi + CloudRepo for better Python development

Cross-Platform Development

Build Python applications that work identically across Windows, macOS, and Linux without environment conflicts.

  • Reproducible environments on all platforms
  • No more "works on my machine" issues
  • Simplified onboarding for new developers
  • Consistent CI/CD across platforms

Scientific Computing Teams

Perfect for teams mixing conda scientific packages with proprietary Python libraries.

  • Access conda-forge alongside private packages
  • Share internal research libraries securely
  • Version control for experimental code

Modern Python Tooling

Pixi manages the environment. CloudRepo hosts the private Python packages it installs.

  • Built-in environment isolation
  • Task runner integration
  • Future-proof package management

Real-World Pixi Workflows

Production-ready examples for CI/CD and deployment

Multi-Platform CI/CD

Use CloudRepo with Pixi in GitHub Actions for cross-platform builds

.github/workflows/test.yml
name: Cross-Platform Tests
on: [push]

jobs:
  test:
    strategy:
      matrix:
        os: [ubuntu-latest, windows-latest, macos-latest]
    runs-on: ${{ matrix.os }}
    steps:
      - uses: actions/checkout@v6
      - uses: prefix-dev/setup-pixi@v0.4.0

      - name: Configure CloudRepo
        shell: bash
        env:
          CLOUDREPO_TOKEN: ${{ secrets.CLOUDREPO_TOKEN }}
        run: |
          (umask 077 && printf 'machine your-org.mycloudrepo.io\nlogin you@example.com\npassword %s\n' \
            "$CLOUDREPO_TOKEN" >> ~/.netrc)

      - name: Install dependencies
        run: pixi install

      - name: Run tests
        run: pixi run test

Docker Deployment

Build minimal Docker images with Pixi and CloudRepo packages

Dockerfile
# syntax=docker/dockerfile:1
FROM ghcr.io/prefix-dev/pixi:latest AS builder

WORKDIR /app
COPY pixi.toml pixi.lock ./

# Pixi reads CloudRepo credentials from a netrc file. Keep one that holds
# only the CloudRepo entry, outside the build context:
#   machine your-org.mycloudrepo.io
#   login you@example.com
#   password YOUR_REPOSITORY_TOKEN
# Mount it as a build secret for this one step, never a build argument,
# so the token is not saved in the image:
#   docker build --secret id=netrc,src=$HOME/cloudrepo.netrc -t my-app .
RUN --mount=type=secret,id=netrc,target=/root/.netrc \
    pixi install --frozen

# Copy application
COPY . .

# Production stage
FROM python:3.11-slim
COPY --from=builder /app /app
ENV PATH="/app/.pixi/envs/default/bin:$PATH"
CMD ["python", "/app/main.py"]

Every plan includes human support and SSO. See pricing

Frequently Asked Questions

Everything about using CloudRepo with Pixi

How does CloudRepo work with Pixi?
CloudRepo provides a PyPI-compatible index that Pixi can use for private Python packages, alongside conda packages from conda-forge. Name the CloudRepo index on each private package under pypi-dependencies in your pixi.toml, and Pixi looks that package up there and every other package on PyPI. Do not set pypi-options index-url to a hosted repository: it replaces PyPI for the whole environment, so a public package such as six is not found.
Can I use CloudRepo for conda packages with Pixi?
No. CloudRepo hosts Python packages in a PyPI index and does not serve a conda channel. Pixi installs conda packages from conda-forge or your own channel, and your private Python packages from CloudRepo.
How is CloudRepo different from Anaconda for Pixi users?
CloudRepo offers unlimited users, with plans from $99/month billed annually. Anaconda's Starter plan is $15 per user a month and its Business plan $50 per user a month (its pricing page states no billing basis).
Does Pixi lock packages from the CloudRepo index?
Pixi resolves the packages that your CloudRepo index serves and locks them in pixi.lock, as it does for any index. The lock file itself belongs to Pixi.
Can I migrate from self-hosted PyPI to CloudRepo?
Absolutely! Migration is simple - upload your existing packages to CloudRepo and update your pixi.toml configuration. Our support team provides free migration assistance to ensure a smooth transition.
What's the setup time for CloudRepo with Pixi?
Less than 2 minutes! Create your CloudRepo account, get your repository URL, add it to your pixi.toml, and you're ready to install private packages. No complex infrastructure or maintenance required.

Complete Python Package Management with CloudRepo

Pixi is part of CloudRepo's comprehensive Python ecosystem support.

UV - Python Package Manager

A Python package manager from Astral, written in Rust. Host your private packages on CloudRepo and pin each one to your index in pyproject.toml.

Explore UV integration

Poetry

A widely used Python packaging tool. CloudRepo provides native Poetry support with lock files and dependency resolution.

Learn about Poetry

Conda & Miniconda

Use CloudRepo's PyPI repositories with pip inside conda environments.

Learn about Conda

Traditional pip & setuptools

Full PyPI API compatibility. Works with pip, easy_install, and setuptools out of the box.

View documentation

CloudRepo also supports JVM languages - mix Python and Java/Scala/Clojure artifacts in one account.

Start Using CloudRepo with Pixi Today

Join teams building cross-platform Python applications with Pixi and CloudRepo. 14 days free. No credit card required.

< 2 min
Setup time
$0
Per-seat fees
Zero
Hidden fees

Why Pixi Users Choose CloudRepo

Pixi installs conda and PyPI packages together and locks them in pixi.lock for Windows, macOS and Linux. CloudRepo hosts the private Python packages it installs.

The Perfect Match for Cross-Platform Development

If your team develops Python applications that need to run identically across different operating systems, the combination of Pixi and CloudRepo eliminates the traditional pain points. Pixi ensures your environments are reproducible, while CloudRepo ensures your private packages are always available.

Modern Python Tooling at Its Best

Pixi brings task runners, lock files and multi-platform support. CloudRepo adds a private PyPI index with instant setup and published pricing.

Scientific Computing and Data Science

For teams working in scientific computing, machine learning, or data science, the ability to mix conda packages from conda-forge with private Python packages from CloudRepo is a real advantage. Share proprietary algorithms, internal ML models, and research code securely while drawing on the vast ecosystem of scientific Python packages.

Enterprise-Ready Without Enterprise Complexity

CloudRepo with Pixi takes minutes to set up, and SSO and team-based access controls are included.

Each Package From Its Own Source

Pixi installs conda packages from conda channels and Python packages from a PyPI index. CloudRepo is the PyPI index for your private Python packages; conda packages install from conda-forge or your own channel.

Migration Made Simple

Whether you're coming from pip, conda, Poetry, or other package managers, migrating to Pixi with CloudRepo is straightforward. Our PyPI-compatible API means your existing Python packages work immediately, and our support team provides free migration assistance to ensure a smooth transition.