Installation

Festival includes two CLI tools: fest (festival planning) and camp (campaign management). All installation methods install both.

Requirements

  • git is required. Festival depends on it for campaign init, project management, template sync, and commit-aware workflows.
  • scc is recommended but optional. Without it, camp leverage features will not work.

npm / pnpm / bun

npm install -g @obedience-corp/festival

The npm package downloads the matching Festival GitHub release archive for your platform, verifies it against the release checksums, and exposes both fest and camp. It also keeps the release completion and shell-helper assets inside the installed package, but it does not edit your shell startup files.

brew install --cask Obedience-Corp/tap/festival

Direct Download

Download the latest .tar.gz for your Mac from GitHub Releases, extract, and move to your PATH:

tar xzf festival-*-macOS-*.tar.gz
sudo mv fest camp /usr/local/bin/

Debian / Ubuntu

Download the .deb package from GitHub Releases:

sudo dpkg -i festival_*_amd64.deb

Fedora / RHEL

sudo rpm -i festival-*.x86_64.rpm

Arch Linux (AUR)

yay -S festival-bin

Alpine

sudo apk add --allow-untrusted festival_*.apk

Direct Download

tar xzf festival-*-linux-*.tar.gz
sudo mv fest camp /usr/local/bin/

Stable Windows packages are temporarily paused while Windows support is being hardened.

For now, use WSL2 and follow the Linux installation methods above.

Scoop and direct .zip downloads will return once Windows support is marked stable.

Other Methods

Shell Script

A convenience script is available for macOS and Linux:

curl -fsSL https://raw.githubusercontent.com/Obedience-Corp/festival/main/install.sh | bash
📝 Note
This downloads pre-built binaries to ~/.local/bin. The installer checks for git and stops early if it is missing. If scc is not installed, the installer continues and warns that camp leverage features will be unavailable until you add it. It also installs completion files and shell-helper source files under ~/.local/share/festival/. When run from an interactive terminal, it asks whether to add the helper source line to your detected shell config; the default answer is yes. Review the script source before running.

From Source

📝 Note
The fest and camp source repositories are private. Building from source requires access to the private repos. Most users should use the package manager or binary download methods above.

Requires Go 1.25+:

go install github.com/Obedience-Corp/fest/cmd/fest@latest
go install github.com/Obedience-Corp/camp/cmd/camp@latest

Verify Installation

fest --version
camp --version

Upgrading

How you upgrade depends on how you installed Festival.

Homebrew

brew update
brew upgrade --cask festival

brew outdated --cask will surface a new festival release when one is available.

npm / pnpm / bun

npm install -g @obedience-corp/festival@latest

Debian / Ubuntu, Fedora / RHEL, Alpine

Download the latest package from GitHub Releases and reinstall using the same dpkg -i, rpm -i, or apk add command from the install steps above.

Arch Linux (AUR)

yay -Syu festival-bin

Shell Script

Re-run the installer. It will replace the binaries in ~/.local/bin with the latest release:

curl -fsSL https://raw.githubusercontent.com/Obedience-Corp/festival/main/install.sh | bash

From Source

go install github.com/Obedience-Corp/fest/cmd/fest@latest
go install github.com/Obedience-Corp/camp/cmd/camp@latest

Shell Integration

Package installs include sourceable helper files for shell functions such as cgo, cr, csw, cint, fgo, and fls. Add the line for your install method and shell:

# install.sh default location
source ~/.local/share/festival/shell/festival.zsh

# Homebrew
source "$(brew --prefix)/share/festival/shell/festival.zsh"

# Linux packages
source /usr/share/festival/shell/festival.zsh

For bash, use festival.bash; for fish, use festival.fish. The portable fallback is still:

eval "$(camp shell-init zsh)"
eval "$(fest shell-init zsh)"

See Shell Setup for details. Then continue with the Quick Start to follow the validated beginner path through first fest next.