Skip to content

The caplo CLI is a single binary for macOS, Linux and Windows on ARM64 (Apple silicon, Graviton) and AMD64 (Intel, AMD). Every release is published on the Caplo releases page with a checksum file and a signature.

Running tool package fixtures on your machine (caplo test and caplo tool test) also needs Node.js 24 and the package’s dependencies installed. On Windows those commands run under WSL; everything else works natively.

With Homebrew:

Terminal window
brew install getcaplo/tap/caplo

Or with the install script, which needs no Homebrew and no sudo:

Terminal window
curl -fsSL https://cli.caplo.si/install.sh | sh
export PATH="$HOME/.local/bin:$PATH"

Add the export line to your shell profile (for example ~/.zshrc) so caplo stays on your PATH in new terminals.

Use one installation method. If you install with both Homebrew and the script, two copies end up on your PATH and the one that runs depends on its order.

Terminal window
caplo version

It prints the CLI version, the commit it was built from, and the Go version and platform. caplo --version prints the version alone, and caplo version -o json prints the same details as JSON. Next, log in.

The script detects your operating system and architecture, downloads the matching archive and checksums.txt from the release over HTTPS, checks the archive’s SHA-256 hash, and only then replaces caplo in the install directory. It never runs sudo and never edits your shell profile. Set these variables on the sh side of the pipe:

Variable Default Effect
CAPLO_VERSION latest The release to install, as vX.Y.Z, for example v0.4.0. Only stable versions are accepted.
CAPLO_INSTALL_DIR ~/.local/bin The directory to install caplo into. It is created if missing.

To pin both the script and the CLI to one release, fetch the script from that release’s tag:

Terminal window
curl -fsSL https://raw.githubusercontent.com/getcaplo/homebrew-tap/v0.4.0/install.sh \
| CAPLO_VERSION=v0.4.0 CAPLO_INSTALL_DIR="$HOME/bin" sh

You can also download install.sh, read it, and run it yourself. The same script is attached to every release.

The install script and Homebrew check the SHA-256 hash for you. When you download an archive by hand, check it yourself: download checksums.txt from the same release into the folder that holds the archive.

Terminal window
shasum -a 256 --ignore-missing -c checksums.txt

A matching line ends in OK. If the hash does not match, delete the archive and download it again.

Each release also signs checksums.txt with a keyless Sigstore signature, so you can confirm that Caplo published the checksums and not someone else. Download checksums.txt.sigstore.json from the release and verify it with cosign:

Terminal window
cosign verify-blob checksums.txt \
--bundle checksums.txt.sigstore.json \
--certificate-identity-regexp '@getcaplo\.com$' \
--certificate-oidc-issuer https://accounts.google.com

It prints Verified OK. A verified checksums.txt plus a matching hash means the archive is the one Caplo released.

Terminal window
brew update && brew upgrade getcaplo/tap/caplo

If you used the install script, run it again. It installs the latest release over the old binary.

Your login, settings and selected workspace are kept across updates.

  1. End your session so it stops working on the server too:

    Terminal window
    caplo auth logout
  2. Remove the binary: brew uninstall caplo for Homebrew, or delete caplo from the install directory (~/.local/bin by default). On Windows, delete the folder that holds caplo.exe and remove it from your PATH.

  3. Optionally delete the configuration directory: ~/.config/caplo (or $XDG_CONFIG_HOME/caplo) on macOS and Linux, %AppData%\caplo on Windows, or the directory CAPLO_CONFIG_DIR names. See Authentication for what it holds.