Skip to Content
Installation & Upgrade

Install or upgrade the LATdx CLI on macOS, Linux, or Windows.

The LATdx CLI ships as platform-specific release bundles hosted on GitHub. Each bundle contains the latdx binary plus the Phase 4 reach-analysis JARs (jars/apex-ls.jar and jars/apex-ls-bridge.jar) so Phase 4 features work out of the box with no extra setup. There is no npm install -g. This page covers bundle install, release channels, and the in-place upgrade flow.

A Java 11+ runtime must be available on PATH for Phase 4 features. The bundle does not include a JRE.

Supported Platforms

PlatformAsset name
macOS Intellatdx-darwin-x64.tar.gz
macOS Apple Siliconlatdx-darwin-arm64.tar.gz
Linux x64latdx-linux-x64.tar.gz
Linux ARM64latdx-linux-arm64.tar.gz
Windows x64latdx-win-x64.zip

Windows ARM64 is not published.

Bundle Layout

Every bundle extracts to:

latdx[.exe] <- compiled CLI binary jars/ apex-ls.jar <- Phase 4 reach-analysis engine (Apex-LS v6.x) apex-ls-bridge.jar <- LATdx overlay (reach BFS, hash recipe)

The CLI auto-discovers the JARs via <execDir>/jars/, so the binary and jars/ directory must stay siblings on disk. Both install paths below preserve that layout.

Install (one-liner)

The install script downloads the right binary for your platform, drops it on your PATH, and runs latdx --help to verify.

bash curl -fsSL https://raw.githubusercontent.com/nebulity/latdx-cli/main/install.sh | bash

wget works the same way:

wget -qO- https://raw.githubusercontent.com/nebulity/latdx-cli/main/install.sh | bash

Pin a specific version by passing it as the script argument:

curl -fsSL https://raw.githubusercontent.com/nebulity/latdx-cli/main/install.sh | bash -s 1.2.3
WARNING

If latdx --help is not found after install, your shell did not pick up the install location on PATH. Open a new shell or add the install directory (typically /usr/local/bin) to PATH.

Install (manual)

If you prefer not to pipe a remote script to bash, download the bundle for your platform from GitHub Releases  and extract it into a directory on your PATH. The bundle contains the latdx binary plus a sibling jars/ directory; both must land together so the CLI can find the Phase 4 JARs at runtime.

bash INSTALL_DIR="$HOME/.local/bin" mkdir -p "$INSTALL_DIR" tar -xzf ./latdx-darwin-<arch>.tar.gz -C "$INSTALL_DIR" latdx --help

Replace <arch> with arm64 (Apple Silicon) or x64 (Intel). The tarball drops latdx and jars/ directly inside $INSTALL_DIR.

WARNING

sudo is only required when writing to a system-owned directory like /usr/local/bin. If you install into a user-owned directory on your PATH (for example ~/.local/bin), drop the sudo.

Release Channels

LATdx publishes two channels. Pick the one that matches your stability tolerance.

ChannelUse caseCommand
stableDefault. Pick this for daily work and CI. GitHub non-prereleases.latdx config set channel stable
latestTrack unreleased fixes; expect occasional regressions.latdx config set channel latest

Channels are managed via latdx config:

latdx config get channel # current channel (defaults to "stable") latdx config set channel latest latdx config list # all configured keys

The channel value is persisted to ~/.latdx/config.json. It controls which release stream both latdx upgrade and the background update check compare against.

Upgrade

In-place upgrade to the newest release on the configured channel:

latdx upgrade

Behind the scenes this re-runs the install script with the latest version pinned, so it requires curl or wget and write access to the install location.

Check without installing:

latdx upgrade check latdx upgrade check --json # { "currentVersion", "latestVersion", "updateAvailable" }

check --json is suitable for cron jobs or CI: a non-zero updateAvailable is a signal that a newer build exists on the channel.

Background Update Notices

Every CLI invocation runs a non-blocking update check at most once per 24 hours. The result is cached at ~/.latdx/update-check.json. When a newer version is found on the configured channel, a one-line notice is printed to stderr after the command result:

Update available: 1.2.3 -> 1.2.4 (https://github.com/nebulity/latdx-cli/releases/latest)

The notice never blocks the run. Network or disk failures are swallowed silently unless LATDX_DEBUG=1 is set, in which case the underlying error is logged to stderr.

TIP

To force a fresh check before the throttle expires, run latdx upgrade check. It always bypasses the cache.

Verifying the Install

latdx --version latdx --version -o my-org # also prints managed-package status in the org

The org-augmented form returns a non-zero exit code if it cannot query the org’s package version. Use it as a smoke test in CI before running tests. See Authentication & Org Targeting for how -o resolves and how the managed-package health check works.

Uninstall

The CLI is a single binary plus a sibling jars/ directory, with no installer database. Remove both, and optionally the per-user state directory:

LATDX_BIN="$(command -v latdx)" sudo rm "$LATDX_BIN" sudo rm -rf "$(dirname "$LATDX_BIN")/jars" rm -rf ~/.latdx # config, caches, daemons, runner-access permset cache

To remove LATdx artifacts from a Salesforce org as well, see latdx uninstall in the CLI Reference.

See also

Last updated on