CubeAPM CLI

Installation

Install the prebuilt binary or build CubeAPM CLI from source.

Installs the latest prebuilt binary for your supported OS and architecture:

curl -sSfL https://raw.githubusercontent.com/piyush-gambhir/cubeapm-cli/main/install.sh | sh

Pin a version or change the install directory:

curl -sSfL https://raw.githubusercontent.com/piyush-gambhir/cubeapm-cli/main/install.sh | VERSION=0.2.7 sh
curl -sSfL https://raw.githubusercontent.com/piyush-gambhir/cubeapm-cli/main/install.sh | INSTALL_DIR=~/.local/bin sh

The installer supports macOS and Linux on amd64 and arm64. It downloads cubeapm-cli_<os>_<arch>.tar.gz from the selected GitHub release and installs the cubeapm binary into /usr/local/bin by default.

Download a release manually

Prebuilt archives are attached to each GitHub Release. Extract the archive for your platform and place cubeapm (cubeapm.exe on Windows) on your PATH.

Build from source

Use a Go toolchain compatible with cli-go/go.mod:

git clone https://github.com/piyush-gambhir/cubeapm-cli.git
cd cubeapm-cli/cli-go
make install

make install names the executable cubeapm and includes the current checkout's version metadata. Set INSTALL_DIR to choose a destination:

make install INSTALL_DIR="$HOME/.local/bin"

Verify

cubeapm version

Update

cubeapm update installs the latest release on macOS, Linux, and Windows:

cubeapm update --check           # report current and latest versions
cubeapm update --check -o json   # the same, as JSON
cubeapm update                   # ask "Update now? [Y/n]", then install
cubeapm update --yes             # install without asking

It downloads the release archive for your platform, verifies its SHA-256 checksum against the release's checksums.txt, and replaces the binary in place. On Windows the running cubeapm.exe is renamed to cubeapm.exe.old (deleted on a later run) and the new one takes its place. If the binary's directory is not writable, update fails and leaves the current binary untouched: re-run it with sudo, or reinstall with the install script into a writable directory. Under --no-input, or without a terminal, it needs --yes.

A binary that make install put in a Go bin directory ($GOBIN, $GOPATH/bin, or ~/go/bin) is not replaced; update it from your checkout with git pull && make install.

Update notice

In an interactive terminal, cubeapm checks GitHub for a new release at most once a day, in the background, and prints a notice on stderr after the command's output, at most once a day per release. On the run that checks, the command waits at most 1 second for GitHub, so a fast command still shows the notice:

A new version of cubeapm is available: v<current> -> v<latest>
Update with: cubeapm update
Release notes: https://github.com/piyush-gambhir/cubeapm-cli/releases/tag/v<latest>

There is no check, and no network request, when stderr is not a terminal, when CI is set, with --quiet or CUBEAPM_QUIET, or when CUBEAPM_NO_UPDATE_NOTIFIER=1 or NO_UPDATE_NOTIFIER=1 is set. Scripts, CI jobs, and coding agents never see it. To turn it off everywhere:

export CUBEAPM_NO_UPDATE_NOTIFIER=1

On this page