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 info to trigger automatic
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 infoto bootstrap the conda environment and print conda information
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 info
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 by running a conda command, 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 the downloaded binary or
want to defer prefix creation until a later cx command.
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 the installer’s eager bootstrap command |
|
(unset) |
Set to any value to skip checksum verification |
|
|
Managed prefix used by runtime invocations while the variable is set |
|
(unset) |
Bundle directory containing |
|
(unset) |
Set to any truthy value to disable network during bootstrap |
CX_PREFIX, CX_BUNDLE, and CX_OFFLINE are runtime bootstrap controls that
the installer passes to cx info. The installer does not persist
CX_PREFIX. Set it again for later commands that should use a non-default
prefix.
CX_VERSION selects a conda-express release. Release versions follow the conda
runtime version in the lock; 26.5.2.post6 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.post6 sh
Install to a custom directory without eagerly bootstrapping the prefix:
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.post6"; 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.post6 -InstallDir C:\tools -NoBootstrap
For an offline automatic 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#
Remove the binary through the method that installed it:
brew uninstall cx
For a PyPI installation:
python -m pip uninstall conda-express
For a standalone script installation, delete the installed cx binary and
remove the PATH line that the script added to your shell profile. On Windows,
remove the install directory from the user PATH.
These methods do not remove ~/.conda/express or its named environments.
Export anything you need before removing that prefix manually. There is no
runtime-owned uninstall command until conda-self provides a conda-express
adapter.
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.