Skip to content
bay
How it worksFleetRoadmapDocsBlogGitHub ↗
Early access
Docs menu

Start here

  • Overview
  • Install
  • Quickstart
  • Concepts

Using bay

  • Agents and hooks
  • Executors

Configure

  • Configuration
  • Keys and the registry

Reference

  • Update
  • CLI reference
  • Results and refusals

Start here

  • Overview
  • Install
  • Quickstart
  • Concepts

Using bay

  • Agents and hooks
  • Executors

Configure

  • Configuration
  • Keys and the registry

Reference

  • Update
  • CLI reference
  • Results and refusals

Start here

Install

Install bay with one command, then check the machine with bay doctor.

bay is in development. These pages describe bay as it will ship.

Install bay

sh
curl -fsSL https://getbay.io/install.sh | sh

The script installs one binary, then runs bay install and bay doctor. It needs no root access.

text
install.ps1 comes with the launch.

A Windows install script, install.ps1, comes with the launch.

sh
git clone https://github.com/gudjon/bay.git
cd bay
cargo build --release
./target/release/bay install

You need a Rust toolchain. bay install places the binary at ~/.local/bin/bay. The source is on GitHub at github.com/gudjon/bay.

Where the binary comes from

The script downloads bay from GitHub Releases. Downloads start with the first release. Each release holds one archive per target, a SHA256SUMS file, and its SSH signature SHA256SUMS.sig. The bay release key signs SHA256SUMS.

text
https://github.com/gudjon/bay/releases/latest/download/bay-<target>.tar.gz

targets: x86_64-apple-darwin, aarch64-apple-darwin,
         x86_64-unknown-linux-musl, aarch64-unknown-linux-musl

What the script does

  1. 01

    Detect the platform

    The script reads the operating system and the CPU architecture.

  2. 02

    Read the release channel

    It reads BAY_CHANNEL, or the exact version in BAY_VERSION. The default channel is stable.

  3. 03

    Verify the signature

    It verifies SHA256SUMS against SHA256SUMS.sig with ssh-keygen -Y verify. It stops when the signature does not verify.

  4. 04

    Check the sha256

    It compares the sha256 of the archive with the signed SHA256SUMS. It stops on a mismatch, and it installs nothing.

  5. 05

    Install the binary

    It writes the binary to ~/.local/bin/bay.

  6. 06

    Run install and doctor

    It runs bay install, then bay doctor.

What bay install changes

  • It writes the binary to ~/.local/bin/bay.
  • It adds bay's hook entries to the project agent settings.
  • It sets SSH signing in the local Git config of this repository.
  • It copies the bay skill to ~/.claude/skills/bay/.

bay install leaves global Git config and user-global Claude settings unchanged. It never removes or reorders hook entries that another tool installed. It creates no SSH keys. When ~/.local/bin is not on PATH, bay install stops and names the fix.

Environment variables

Set these variables for the sh that runs the script.

sh
curl -fsSL https://getbay.io/install.sh | BAY_VERSION=0.1.0 sh
VariableEffect
BAY_VERSIONInstall this exact version.
BAY_CHANNELstable (the default) installs the latest release. latest installs the newest pre-release.
BAY_INSTALL_SKIP_SIGNATURE=1Skip the signature check when ssh-keygen is missing. Read the warning below first.

BAY_INSTALL_SKIP_SIGNATURE=1 turns off the signature check. The script then checks only the sha256. Then nothing shows that the binary came from a bay release. Use it only for a local test, and never on a machine that runs agents.

Verify

bay doctor prints one status line on stderr and one JSON result on stdout. Exit 0 means that every required row is green. A red row names its floor and the fix. If bay --version does not print a bay version, another bay comes first on your PATH. Put ~/.local/bin first on your PATH, or remove the other bay.

text
$ bay --version
$ bay doctor
bay <version> | git <version> | claude <version> | doctor ready

Requirements

bay doctor goes red below the Git floor for the role of the machine. Below Git 2.48, bay uses one full clone per cache instead of the shared cache. With the Claude adapter, the machine needs Claude Code 2.1.302 or newer.

WhereGitWhy
An agent view2.40 or newerThe floor. bay doctor goes red below it.
The shared cache2.48 or newerSafe garbage collection in a blob-less partial clone.
Recommended2.50 or newerBelow it, bay doctor names the features it degrades.
A bay-hosted trunk2.54 or newerThe trunk hook that keeps trunk append-only.

Uninstall

First clean each repository where you ran bay install. Remove bay's hook entries from .claude/settings.json, and unset bay's local Git config. Then remove the binary and the bay skill from the machine. Never delete bay refs on a shared remote: other actors still read them.

sh
# in each repository: remove bay's entries from .claude/settings.json, then
git config --local --unset gpg.format
git config --local --unset gpg.ssh.allowedSignersFile
git config --local --unset bay.unrelated-hooks-digest
git for-each-ref refs/bay/          # local bay refs; delete them only in this clone

# on the machine
rm ~/.local/bin/bay
rm -rf ~/.claude/skills/bay
← PreviousOverviewNext →Quickstart

On this page

  • Install bay
  • Where the binary comes from
  • What the script does
  • What bay install changes
  • Environment variables
  • Verify
  • Requirements
  • Uninstall
how it worksfleetroadmapblog© 2026 bay contributors · MIT
Built by Gudjon Gudjonsson, founder and CEO of OZ →Sponsored by OZ