Install the CLI

The fleetwide CLI builds embedded images and prints digests. It is one binary with no dependencies, published on GitHub for macOS and Linux, amd64 and arm64.

# macOS / Linux: one static binary, from the GitHub release
curl -fsSL https://fleetwide.io/install.sh | sh

# a specific version, or somewhere other than /usr/local/bin
curl -fsSL https://fleetwide.io/install.sh | VERSION=0.1.0 DIR=~/.local/bin sh

fleetwide version

From source, with Go 1.27 or newer:

go install github.com/fleetwidehq/fleetwide/supervisor/cmd/fleetwide@latest

Or run it as a container, which suits CI and build hosts with no Go toolchain. Mount your Docker config so it can push.

# the CLI as a container, for CI and build hosts without Go. Mount your Docker config so it can push.
docker run --rm \
  -v "$HOME/.docker:/root/.docker:ro" \
  -e FLEETWIDE_API_KEY \
  public.ecr.aws/fleetwide/cli:latest embed --app my-app \
  --image ghcr.io/acme/my-app:1.4.2 --start latest \
  --tag ghcr.io/acme/my-app-fw:1.4.2 --push

It talks to the console with an API token from Settings → Security, passed as --api-key or the FLEETWIDE_API_KEY environment variable. No address is needed: the hosted console is the default, and the image it builds learns the console's supervisor address from the console itself. In GitHub Actions:

# .github/workflows/release.yml
- run: curl -fsSL https://fleetwide.io/install.sh | sudo sh
- run: |
    fleetwide embed --app my-app \
      --dockerfile ./Dockerfile --build-tag ghcr.io/acme/my-app:${{ github.ref_name }} \
      --start latest \
      --tag ghcr.io/acme/my-app-fw:${{ github.ref_name }} --push
  env:
    FLEETWIDE_API_KEY: ${{ secrets.FLEETWIDE_API_KEY }}
fleetwide

Over-the-air updates and fleet management for Docker containers. The supervisor runs inside the container; nothing on the host.

© 2026 Fleetwide