Status: Active Scope: current-state Last reviewed: 2026-05-26 Owner: ax-code runtime
The root README keeps the shortest install path. This page is the source of truth for supported installer channels, ax-code doctor runtime labels, and local launcher behavior.
Use a supported packaged installer unless you are developing from a checkout. Prefer Homebrew on macOS and the native PowerShell installer on Windows.
# Homebrew (macOS)
brew install defai-digital/ax-code/ax-code
# GitHub release installer (Windows PowerShell)
powershell -NoProfile -ExecutionPolicy Bypass -Command "irm https://raw.githubusercontent.com/defai-digital/ax-code/main/install.ps1 | iex"For security-sensitive environments, inspect the installer before execution and pin the release version used by CI:
$AX_CODE_VERSION = "<release>"
irm https://raw.githubusercontent.com/defai-digital/ax-code/main/install.ps1 -OutFile ax-code-install.ps1
Get-Content .\ax-code-install.ps1
.\ax-code-install.ps1 -Version $AX_CODE_VERSION -NoModifyPathVerify the installed runtime:
ax-code doctorSupported user installs should report Runtime: Node vX.Y.Z (node-bundled) on both macOS Homebrew and Windows.
| Channel | Install or setup command | Expected runtime label | Support status | Use when |
|---|---|---|---|---|
| Homebrew | brew install defai-digital/ax-code/ax-code |
node-bundled |
Supported | Normal macOS package-manager install path |
| Windows PowerShell release installer | powershell -NoProfile -ExecutionPolicy Bypass -Command "irm https://raw.githubusercontent.com/defai-digital/ax-code/main/install.ps1 | iex" |
node-bundled |
Supported on Windows | Windows user-local install path |
| Windows release assets | Download ax-code-windows-*.zip from GitHub releases |
node-bundled |
Manual | Manual validation or troubleshooting |
| Local bundled launcher | pnpm install && pnpm run setup:cli |
node-bundled |
Contributor | Contributor parity with the packaged startup path |
| Local source launcher | pnpm run setup:cli -- --source |
source |
Contributor | Contributor-only source debugging |
| Direct checkout run | pnpm cli or pnpm dev |
source |
Contributor | Short-lived development runs without replacing the global launcher |
node-bundled and source are runtime modes, not package-manager names. They describe which executable loads the app code:
node-bundled: Node.js loads the bundled release runtime (all supported user install channels).source: Node loads files directly from a checkout.
compiled and bun-bundled are retired Bun-era runtime modes, retained only for legacy diagnostics. They are not supported user install channels.
- macOS: use Homebrew as the documented user path. Contributor builds use
pnpm run setup:cli. - Windows: use the native PowerShell installer. It installs the GitHub release asset into a user-local directory and updates the user PATH unless
-NoModifyPathis provided. The Bash installer is not the canonical Windows user experience. - npm: not a supported install or upgrade channel.
One-line remote execution is a convenience path, not the only path. Keep an inspectable installer flow in the docs, use pinned versions in CI, and document platform installers only with install-matrix coverage that verifies ax-code --version and verifies ax-code doctor reports the expected runtime mode for that platform.
For supported packaged channels:
ax-code upgrade
brew upgrade ax-code
powershell -NoProfile -ExecutionPolicy Bypass -Command "irm https://raw.githubusercontent.com/defai-digital/ax-code/main/install.ps1 | iex"pnpm run setup:cli is intentionally compiled-path by default. It builds or reuses the local bundled binary under packages/ax-code/dist/... and installs a global launcher that points at that binary. This keeps local packaged-runtime checks close to what Homebrew and curl-installer users run.
After source changes that should affect the packaged runtime, refresh the bundled binary before testing the global launcher:
pnpm --dir packages/ax-code run build -- --single
pnpm run setup:cli -- --rebuild
ax-code doctorUse the source launcher only when you intentionally want the global ax-code command to execute this checkout through Node from source files:
pnpm run setup:cli -- --source
ax-code doctorThe source launcher should report Runtime: Node vX.Y.Z (source).
The repository enforces pnpm@10.33.4 through the root packageManager field and only-allow pnpm. Node.js must match the root package.json engine (>=24, >=26 for source-mode TUI commands that use --experimental-ffi).
Do not use root pnpm test; the root script intentionally exits with do not run tests from root. For packages/ax-code, run tests from packages/ax-code/.