Local installation
Cargo
cargo install ferrflow
npm
npm install -g @ferrlabs/ferrflow
# or as a dev dependency
npm install -D @ferrlabs/ferrflow
WASM (browser)
npm install @ferrlabs/ferrflow-wasm
Use FerrFlow directly in the browser — parse commits, compute version bumps, and generate changelogs client-side without a backend.
Binary
Download a pre-built binary from Releases:
# Linux x86_64
curl -L https://github.com/FerrLabs/FerrFlow/releases/latest/download/ferrflow-linux-x64.tar.gz | tar xz
sudo mv ferrflow /usr/local/bin/
Docker
docker run --rm -v $(pwd):/repo ghcr.io/ferrlabs/ferrflow:latest check
CI installation
The recommended way to use FerrFlow in CI is the GitHub Action — no installation step needed:
- uses: FerrLabs/ferrflow@v5
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
See GitHub Actions and GitLab CI for complete examples.
Verify
ferrflow --version
Upgrading from v4
If you're following the documented GitHub Actions / GitLab CI setup (GITHUB_TOKEN/CI_JOB_TOKEN as an environment variable), no changes are required — just bump the action pin to FerrLabs/ferrflow@v5 and the binary to v5.x.
The only breaking change in v5.0 is internal: FerrFlow no longer injects tokens into the remote URL when pushing. It now uses the standard git credential-helper protocol (GIT_ASKPASS). This is invisible to anyone using the recommended setup, but if you had a custom workflow that relied on URL-injected tokens — for example, a self-hosted runner with a pre-seeded https://x-access-token:$TOKEN@github.com/... remote — switch to setting GITHUB_TOKEN (or FERRFLOW_TOKEN) as an environment variable instead and FerrFlow handles the rest.
Releases since v5.2 are signed via Sigstore and ship a CycloneDX SBOM — see Verifying releases.