Installation

spinup is a single binary for Linux (x64, arm64, glibc or musl) and macOS (Intel or Apple Silicon). On Windows, use it inside WSL.

Install script

curl -fsSL https://raw.githubusercontent.com/PedroElizalde01/spinup/main/install.sh | bash

The script picks the right binary for your OS, architecture and C library, verifies it against the release's SHA256SUMS, confirms it runs and reports the expected version, and only then moves it into place. If anything fails, an existing spinup is left exactly as it was.

Option Effect
--version v0.5.0 Install a specific release instead of the latest
--bin-dir PATH Install somewhere other than ~/.local/bin

If spinup is not found afterwards, add the directory to your PATH:

export PATH="$HOME/.local/bin:$PATH"

The man page is installed to ~/.local/share/man/man1/spinup.1; man spinup finds it on most systems.

Verify a download yourself

Every release publishes SHA256SUMS and signed build provenance for each file.

curl -fsSLO https://github.com/PedroElizalde01/spinup/releases/latest/download/spinup-linux-x64
curl -fsSLO https://github.com/PedroElizalde01/spinup/releases/latest/download/SHA256SUMS
sha256sum --check --ignore-missing SHA256SUMS      # macOS: shasum -a 256 --check --ignore-missing SHA256SUMS
gh attestation verify spinup-linux-x64 --repo PedroElizalde01/spinup

Update

spinup --update            # latest release
spinup --update v0.5.0     # a specific version, including an older one

The update applies the same checks as the installer and replaces the binary with a single rename. It refuses to move to an older latest release unless you name the version.

Requirements

  • tmux 3.0 or newer only for actions with mode: tmux.
  • Docker with the Compose plugin only for projects that run Compose.

spinup <alias> --check reports what a project's selected action actually needs.

Shell completion

eval "$(spinup --completion bash)"      # add to ~/.bashrc
eval "$(spinup --completion zsh)"       # add to ~/.zshrc
spinup --completion fish | source       # add to ~/.config/fish/config.fish

Completion covers registered aliases, flags, action names after --action and service names after --restart, for spinup and for every alias command.

Uninstall

spinup <alias> --remove                 # for each registered project
rm ~/.local/bin/spinup ~/.local/share/man/man1/spinup.1
rm -r ~/.config/spinup ~/.local/state/spinup