Homebrew (macOS / Linux)
brew install pleaseai/tap/shuntRun as a background service
brew services start shuntLogs go to $(brew --prefix)/var/log/shunt.log. brew services stop sends SIGTERM, and shunt
drains in-flight requests before exiting. On Unix, Antigravity agent turns are terminated when
shutdown starts so their isolated process groups cannot hold the drain open. Config changes don’t need
a restart — shunt hot-reloads
the file automatically. See Running as a
service
for config discovery paths and more detail.
Cargo (from git)
Install directly from the source repository; the binary is still named shunt:
cargo install --git https://github.com/pleaseai/shuntNew versions are distributed through Homebrew and GitHub release binaries. The crates.io package stops at the last version published there.
Prebuilt binaries
Each GitHub release attaches standalone binaries for macOS (arm64/x64) and Linux (arm64/x64), plus a SHA256SUMS file:
# Selects the right asset for your OS/CPU (darwin/linux × arm64/x64)
OS=$(uname -s | tr '[:upper:]' '[:lower:]')
ARCH=$(uname -m); case "$ARCH" in x86_64) ARCH=x64 ;; aarch64) ARCH=arm64 ;; esac
curl -fsSLO "https://github.com/pleaseai/shunt/releases/latest/download/shunt-${OS}-${ARCH}"
chmod +x "shunt-${OS}-${ARCH}" && mv "shunt-${OS}-${ARCH}" /usr/local/bin/shuntFrom source
Requires stable Rust with cargo:
git clone https://github.com/pleaseai/shunt
cd shunt
cargo build --release # -> target/release/shuntYou can also run straight from the source tree with cargo run -- <args>.
Prerequisites for connecting Claude Code
- Claude Code — any recent version; v2.1.129+ only if you want model discovery.
- A credential for whichever provider you map:
- an OpenAI API key for the
openaiprovider, or - a ChatGPT login via the Codex CLI (
codex login) for thecodexprovider.
- an OpenAI API key for the
- Your normal Anthropic credential (claude.ai login or an API key) — shunt forwards it through for every model you don’t map.
Next: the Quickstart.