Installing the WBSP CLIs
How to install the WBSP command-line tools on macOS or Linux.
There are three binaries:
| Binary | Who | How to install |
|---|---|---|
wbsp | Application creators / clients | curl | bash (no repo access needed) |
wbsp-platform | Platform operators | go install or GitHub Release (repo access) |
wbsp-api | Platform operators | go install or GitHub Release (repo access) |
wbspis self-contained and safe to distribute. It reads the.envbeside your app'swbsp.yamlfor app config, and — once you runwbsp login— caches a platform session token at~/.config/wbsp/tokenand installs git/docker credential helpers for the platform's hosts (this is what letsgit push,docker push, andwbsp deploywork without pasted keys — see credential-less-deploy.md). It never needs or stores AWS / cloud credentials;wbsp logoutclears the session.
For application creators — install wbsp
You do not need access to the WBSP source repository. Install wbsp with the
one-line script:
curl -fsSL https://get.wbsp.ai/install.sh | bashThe script detects your OS/architecture, downloads the matching wbsp, verifies
its SHA-256 checksum, and installs it to /usr/local/bin (or ~/.local/bin if that
isn't writable). Useful overrides:
# pin a version
curl -fsSL https://get.wbsp.ai/install.sh | WBSP_VERSION=v0.1.0 bash
# choose the install directory
curl -fsSL https://get.wbsp.ai/install.sh | WBSP_INSTALL_DIR="$HOME/bin" bashUpgrade later by re-running the same command — it always fetches the latest
wbsp (pin a specific one with WBSP_VERSION).
Verify:
wbsp --versionmacOS Gatekeeper: binaries fetched via
curlare not quarantined, so they run without the "unidentified developer" prompt. If you ever download one through a browser, clear the flag withxattr -d com.apple.quarantine ./wbsp.
wbsp shells out to Docker (and Docker Compose v2) for local builds, so
install Docker as well. pg_dump is only needed if you use wbsp dump-data.
For platform operators — install the full set
Operators have access to the private wbsp-platform repo and get all three binaries.
Option A — go install (needs Go 1.26+ and repo credentials)
export GOPRIVATE=github.com/worlds-biggest-software-project/*
go install github.com/worlds-biggest-software-project/wbsp-platform/cmd/wbsp@latest
go install github.com/worlds-biggest-software-project/wbsp-platform/cmd/wbsp-platform@latest
go install github.com/worlds-biggest-software-project/wbsp-platform/cmd/wbsp-api@latestBinaries land in $(go env GOBIN) (or $(go env GOPATH)/bin) — make sure it's on
your PATH.
Option B — download from the GitHub Release
Grab the archives for your OS/arch from the
latest release,
extract, and move them onto your PATH. Each release publishes checksums.txt.
Option C — build from source
git clone https://github.com/worlds-biggest-software-project/wbsp-platform
cd wbsp-platform
make build # -> bin/wbsp, bin/wbsp-platform, bin/wbsp-api
make install # or install them onto your PATH via `go install`Operator tooling additionally requires the AWS CLI v2, Terraform 1.5+, and kubectl for AWS destinations — cluster access is set up by your platform operator.
Cutting a release (maintainers)
Releases are produced by GoReleaser and driven by a git tag.
# dry run — builds everything into dist/, publishes nothing
make snapshot
# real release: push a tag; GitHub Actions runs `goreleaser release` + publishes the
# public wbsp subset to the CDN (.github/workflows/release.yml)
git tag v0.1.0
git push origin v0.1.0A tag triggers:
- Cross-compiled builds of all three CLIs (darwin/linux × amd64/arm64).
- A GitHub Release (private) with the full set +
checksums.txt— for operators. - An updated Homebrew tap (
homebrew-wbsp) forwbsp. - Upload of the public
wbspsubset +install.sh+latest.txtto the download CDN (S3 + CloudFront) — for clients.
One-time infrastructure (the public download host) lives in
deploy/downloads/ in the repository. After terraform apply there, set the release
workflow's repository variables/secrets from its outputs:
WBSP_PUBLIC_BUCKET, WBSP_PUBLIC_BASE_URL, AWS_RELEASE_ROLE_ARN, AWS_REGION,
plus HOMEBREW_TAP_TOKEN (a PAT that can push to the public homebrew-wbsp repo).
To release from a workstation instead of CI:
export WBSP_PUBLIC_BASE_URL=https://get.wbsp.ai
export WBSP_PUBLIC_BUCKET=<bucket-from-terraform>
export GITHUB_TOKEN=<pat-for-homebrew-tap>
make release # goreleaser release --clean, then scripts/publish-public.sh