Install

macOS and Linux (amd64 / arm64). Linux releases are musl static binaries. Windows is not supported in 0.1. Keep Composer installed.

curl

curl -fsSL https://puck.jimmyverburgt.com/install | bash

Mirror of install.sh. Pin to a release tag when you want the script locked to that release:

curl -fsSL https://raw.githubusercontent.com/VerburgtJimmy/puck/v0.1.1/install.sh | bash

Installs into ~/.puck/bin. Appends a PATH block unless --no-modify-path.

# pin binary version
curl -fsSL https://puck.jimmyverburgt.com/install | bash -s -- v0.1.1

# uninstall binary + PATH block (store left behind)
curl -fsSL https://puck.jimmyverburgt.com/install | bash -s -- --uninstall
Variable / flagDefaultMeaning
PUCK_INSTALL~/.puckInstall root
PUCK_VERSION / first arglatest via manifestRelease tag
--no-modify-pathoffDo not edit shell rc

Always verifies SHA256. Verifies minisign when the minisign tool is present.

Homebrew

brew tap VerburgtJimmy/puck https://github.com/VerburgtJimmy/puck
brew install puck

GitHub Actions

- uses: VerburgtJimmy/puck/.github/actions/setup-puck@v0.1.1
  with:
    version: latest
    cache: true

Docker

Image push to GHCR is not enabled yet. Build from the repo root Dockerfile:

docker build \
  --build-arg PUCK_VERSION=v0.1.1 \
  --build-arg TARGET=x86_64-unknown-linux-musl \
  -t puck:0.1.1 .

# in another Dockerfile:
COPY --from=puck:0.1.1 /puck /usr/local/bin/puck

From source

git clone https://github.com/VerburgtJimmy/puck.git
cd puck
cargo build --release -p puck_cli
# binary: target/release/puck

Requires Rust 1.96+.

Upgrade

puck upgrade

Reads manifest.json from GitHub Releases, verifies checksums and minisign, replaces the binary. Previous binary kept as puck.previous.