Your first tool#
This tutorial walks through a complete lifecycle: installing a tool, customizing its environment, exposing additional binaries, adding dependencies, and cleaning up.
Install with a custom environment name#
By default, conda global install names the environment after the
package. You can override this with -e:
$ conda global install gh -e github-cli
Installing tool github-cli...
Installed tool github-cli
Commands now available:
gh → ~/.cg/bin/gh
The environment lives in the data directory under envs/github-cli/.
Use a specific channel#
Install a tool from a non-default channel:
$ conda global install cuda-toolkit -c nvidia -c conda-forge
Installing tool cuda-toolkit...
Installed tool cuda-toolkit
Channels are recorded in the manifest and used for future updates.
Expose additional binaries#
Some packages ship multiple executables. By default, conda-global
exposes the one matching the package name. Use --expose to control
this:
$ conda global install python -e py314 --expose python3.14 --expose pip=pip3.14
Installing tool py314...
Installed tool py314
Commands now available:
python3.14 → ~/.cg/bin/python3.14
pip → ~/.cg/bin/pip
The pip=pip3.14 syntax means: expose the binary pip3.14 from
the environment as pip on PATH.
Add a dependency#
Need an extra package in a tool’s environment? Use
conda global add:
$ conda global add numpy -e py314
Adding package numpy to py314...
Added package numpy to py314
The environment is re-solved with the new dependency.
Remove a dependency#
$ conda global remove numpy -e py314
Removing package numpy from py314...
Removed package numpy from py314
Pin a tool#
Prevent a tool from being upgraded during conda global update:
$ conda global pin -e github-cli
Pinned tool github-cli
$ conda global update
Skipped tool github-cli (pinned)
Unpin it when you’re ready:
$ conda global unpin -e github-cli
View the dependency tree#
$ conda global tree -e github-cli
github-cli
├── gh 2.74.0 (conda-forge)
│ ├── openssl >=3.0
│ ├── libcurl >=8.0
│ └── ...
└── openssl 3.2.0 (conda-forge)
Uninstall#
Remove the tool, its environment, and all trampolines:
$ conda global uninstall -e github-cli
Uninstalling tool github-cli...
Uninstalled tool github-cli
What’s in the manifest?#
After these steps, conda global edit opens the manifest:
[envs.py314]
channels = ["conda-forge"]
dependencies = { python = "*" }
exposed = { "python3.14" = "python3.14", pip = "pip3.14" }
The manifest is the source of truth. You can edit it by hand and run
conda global sync to reconcile.
Next steps#
Coming from pipx — Map your pipx habits to conda-global
Managing tools — Day-to-day tool management
Sharing manifests — Share your setup across machines