Motivation#

The problem#

Command-line tools often need their own dependencies. Installing them into a shared environment (like base) leads to conflicts: upgrading one tool can break another.

The solution is isolation — each tool in its own environment. But then you need activation, PATH management, and a way to remember what you installed. That overhead is why tools like pipx exist.

Prior art#

pipx#

pipx pioneered the “isolated tool environments” pattern for Python. It creates a virtualenv per tool and places wrapper scripts on PATH. It works well, but:

  • Only installs from PyPI — you can’t install non-Python tools like gh, bat, or fd

  • Uses Python wrapper scripts that add interpreter startup time

  • No manifest file for syncing across machines

pixi global#

pixi global is an excellent implementation of this pattern for the conda ecosystem. It installs tools from conda channels into isolated environments, uses compiled Rust trampolines for fast execution, and provides a manifest for reproducible setups. It is the direct inspiration for conda-global’s design.

conda-global exists for users who already rely on conda as their package manager and want tool management integrated into the conda CLI, using conda’s solver, channel configuration, and authentication.

How conda-global fits in#

conda-global brings isolated tool management into conda itself:

pipx

pixi global

conda-global

Package source

PyPI

conda channels

conda channels

Isolation

virtualenvs

pixi envs

conda envs

Launcher

Python scripts

Rust trampolines

Rust trampolines

Startup overhead

interpreter startup

negligible

negligible

Manifest

none

~/.pixi/manifests/pixi-global.toml

global.toml

CLI integration

standalone

pixi CLI

conda global + cg alias

Non-Python tools

no

yes

yes

Cross-machine sync

no

yes

yes

Design choices#

Rust trampolines over wrapper scripts

Python wrapper scripts add interpreter startup latency. A compiled trampoline that calls execvp adds negligible overhead and replaces the process entirely on Unix.

Hardlinks over copies

All trampolines are hardlinks to a single master binary. This keeps disk usage flat regardless of how many tools are exposed.

Manifest-first approach

The global.toml manifest is the source of truth. You can edit it by hand, check it into version control, and run conda global sync on any machine to reproduce your setup.

conda’s solver

conda-global uses conda’s own solver and channel infrastructure. Your .condarc settings, channel priorities, and authentication tokens all work as expected.

Acknowledgements#

conda-global stands on the shoulders of pixi global, which pioneered isolated tool management with compiled trampolines for the conda ecosystem. It also draws from pipx, which established the pattern for Python, and conda-express, an earlier experiment in this space. The trampoline design closely follows pixi’s proven approach, adapted for conda’s environment layout.