Installer reference#
Tip
On macOS and Linux, Homebrew is the recommended installation method. The shell scripts below are an alternative for environments without Homebrew (CI, containers, Windows).
cx provides standalone installer scripts for macOS, Linux, and Windows. These
scripts automate downloading the correct binary, verifying its checksum,
setting up your PATH, and optionally running cx bootstrap.
Usage#
macOS / Linux:
curl -fsSL https://jezdez.github.io/conda-express/get-cx.sh | sh
or with wget:
wget -qO- https://jezdez.github.io/conda-express/get-cx.sh | sh
Windows (PowerShell):
powershell -ExecutionPolicy ByPass -c "irm https://jezdez.github.io/conda-express/get-cx.ps1 | iex"
Tip
You can inspect the scripts before running them:
curl -fsSL https://jezdez.github.io/conda-express/get-cx.sh | less
irm https://jezdez.github.io/conda-express/get-cx.ps1 | more
What the installer does#
Detects your platform — operating system and CPU architecture
Downloads the binary from GitHub Releases
Verifies the SHA256 checksum against the published
.sha256fileInstalls the binary to the install directory
Updates your shell profile / PATH so the installed
cxbinary is found in new shellsWarns about early-release state if
~/.cxstill existsRuns
cx bootstrapto set up the conda environment
If the installer finds ~/.cx, it leaves that directory alone. Current
releases bootstrap into ~/.conda/express; see
Upgrade From Early cx Versions before removing old early-release
environments.
For manual downloads or mirrored installer inputs, see Verify Release Artifacts for checksum, attestation, and metadata checks.
GitHub Actions#
For task-oriented examples, see Use cx in GitHub Actions.
Use the setup action when a workflow needs cx on PATH:
steps:
- uses: jezdez/conda-express/.github/actions/setup-cx@<release-tag>
- run: cx status
Pin the action to a conda-express release tag for reproducible CI. When
version is omitted and the action ref is a release tag, the action installs
that same version. If the action ref is not a release tag, it resolves and
installs the latest release.
The action downloads the platform-specific cx asset, checks the published
.sha256 file, optionally verifies GitHub Artifact Attestations from
.github/workflows/release.yml, optionally bootstraps the managed conda
prefix, and adds the install directory to PATH.
Useful inputs:
Input |
Default |
Description |
|---|---|---|
|
action ref when it is a release tag, otherwise |
conda-express release version to install |
|
empty |
GitHub token used for latest-release lookup and Artifact Attestation verification |
|
runner temp directory |
Directory to place the |
|
|
Run |
|
|
Add the install directory to |
|
|
Verify the downloaded binary with GitHub Artifact Attestations |
Set bootstrap: false for workflows that only need to inspect the binary or
defer bootstrap to a later step.
Enable provenance verification for stricter CI:
permissions:
contents: read
attestations: read
steps:
- uses: jezdez/conda-express/.github/actions/setup-cx@<release-tag>
with:
verify-attestation: true
github-token: ${{ github.token }}
Options#
All options are set via environment variables and work on both platforms.
Variable |
Default |
Description |
|---|---|---|
|
|
Directory to place the |
|
|
Version to install (without |
|
(unset) |
Set to any value to skip shell profile / PATH modification |
|
(unset) |
Set to any value to skip running |
|
(unset) |
Set to any value to skip checksum verification |
|
(unset) |
Bundle directory containing |
|
(unset) |
Set to any truthy value to disable network during bootstrap |
CX_VERSION selects a conda-express release. Release versions follow the conda
runtime version in the lock; 26.5.2.post4 bootstraps conda
26.5.2, while
26.5.2.post1 would be a conda-express-only
rebuild with the same conda runtime package.
Tip
For disconnected deployments, consider using cxz instead of cx with
CX_BUNDLE / CX_OFFLINE. The cxz binary embeds the locked package
archives and requires no separate bundle directory. See
Offline and Air-Gapped Installs for details.
Examples#
Install a specific version:
curl -fsSL https://jezdez.github.io/conda-express/get-cx.sh | env CX_VERSION=26.5.2.post4 sh
Install to a custom directory without bootstrap:
curl -fsSL https://jezdez.github.io/conda-express/get-cx.sh | env CX_INSTALL_DIR=/opt/bin CX_NO_BOOTSTRAP=1 sh
PowerShell with options:
$Env:CX_VERSION = "26.5.2.post4"; irm https://jezdez.github.io/conda-express/get-cx.ps1 | iex
The PowerShell script also accepts named parameters when invoked directly:
.\get-cx.ps1 -Version 26.5.2.post4 -InstallDir C:\tools -NoBootstrap
For an offline cx bootstrap with a bundle directory:
.\get-cx.ps1 -Bundle C:\mirror\cx-packages -Offline
Platform detection#
The shell script uses uname -s and uname -m to detect the platform.
The PowerShell script uses .NET’s RuntimeInformation.OSArchitecture.
Detected |
Target |
Binary |
|---|---|---|
Linux x86_64 |
|
|
Linux ARM64 |
|
|
macOS x86_64 |
|
|
macOS ARM64 |
|
|
Windows x86_64 |
|
|
Windows ARM64 is not published for conda-express yet. conda-ship has Windows ARM64 builder assets, but full runtime bootstrap support still depends on the conda package ecosystem. The PowerShell installer reports that architecture as unsupported instead of downloading an incompatible binary.
Shell profile updates#
The shell script appends a PATH export to your shell configuration file:
Shell |
File |
|---|---|
bash |
|
zsh |
|
fish |
|
The PowerShell script updates the user PATH in the Windows registry
(HKCU:\Environment) and broadcasts a WM_SETTINGCHANGE message so
running applications pick up the change.
Set CX_NO_PATH_UPDATE to skip this step if you prefer to manage your
PATH manually.
Uninstalling#
Use the built-in command to remove the managed prefix:
cx uninstall
This removes the conda prefix (including all named environments) and any
PATH entries added by the installer. It shows the paths it plans to remove and
asks for confirmation (use --yes to skip).
After completion, cx prints a hint for removing the binary itself through the install method it detects, such as Homebrew or PyPI.
See cx uninstall for full details.
Manual uninstall#
If the cx command is unavailable, you can remove everything manually:
Delete the binary:
rm ~/.local/bin/cxRemove the conda prefix:
rm -rf ~/.conda/express
Remove the PATH line from your shell profile if the installer added one.