conda-global#
Install CLI tools into isolated conda environments and make them available on PATH via trampolines — no activation needed.
conda-global brings the same ideas pioneered by
pixi global and
pipx into the conda CLI. It covers the entire
conda package ecosystem: Python, R, Rust, C/C++, and anything else
conda can install.
Install#
conda install -c conda-forge conda-global
Then add the global binary directory to your PATH:
conda global ensurepath
A standalone cg alias is also available — cg install ruff is
equivalent to conda global install ruff.
Quick example#

$ conda global install ruff
Installing tool ruff...
Installed tool ruff
Commands now available:
ruff → ~/.cg/bin/ruff
$ ruff --version
ruff 0.11.6
$ conda global list
Tool Dependencies Channel Exposed Pinned
ruff ruff conda-forge ruff
How it works#
Each tool gets its own isolated conda environment. A small Rust trampoline binary reads a JSON config, sets up the environment variables, and launches the real binary — with zero activation overhead.
~/.cg/
├── bin/
│ ├── ruff ← trampoline (hardlink)
│ ├── gh ← trampoline (hardlink)
│ └── trampoline/
│ ├── _cg_trampoline ← master binary
│ ├── ruff.json ← config for ruff
│ └── gh.json ← config for gh
├── envs/
│ ├── ruff/ ← isolated env
│ │ ├── bin/ruff ← real binary
│ │ └── conda-meta/
│ └── gh/ ← isolated env
│ ├── bin/gh ← real binary
│ └── conda-meta/
└── global.toml ← manifest
Why conda-global?#
Install tools from any channel — conda-forge, bioconda, nvidia, or your own. Not limited to Python packages.
Rust trampolines launch tools directly via execvp on Unix or
CreateProcess on Windows. No shell activation, no startup delay.
Each tool lives in its own conda environment. No dependency conflicts between tools, ever.
Share global.toml across machines. Run conda global sync to reconcile.