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
curl -fsSL https://getbay.io/install.sh | shThe script installs one binary, then runs bay install and bay doctor. It needs no root access.
install.ps1 comes with the launch.A Windows install script, install.ps1, comes with the launch.
git clone https://github.com/gudjon/bay.git
cd bay
cargo build --release
./target/release/bay installYou 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.
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-muslWhat the script does
- 01
Detect the platform
The script reads the operating system and the CPU architecture.
- 02
Read the release channel
It reads
BAY_CHANNEL, or the exact version inBAY_VERSION. The default channel isstable. - 03
Verify the signature
It verifies
SHA256SUMSagainstSHA256SUMS.sigwithssh-keygen -Y verify. It stops when the signature does not verify. - 04
Check the sha256
It compares the sha256 of the archive with the signed
SHA256SUMS. It stops on a mismatch, and it installs nothing. - 05
Install the binary
It writes the binary to
~/.local/bin/bay. - 06
Run install and doctor
It runs
bay install, thenbay 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/.
Environment variables
Set these variables for the sh that runs the script.
curl -fsSL https://getbay.io/install.sh | BAY_VERSION=0.1.0 sh| Variable | Effect |
|---|---|
BAY_VERSION | Install this exact version. |
BAY_CHANNEL | stable (the default) installs the latest release. latest installs the newest pre-release. |
BAY_INSTALL_SKIP_SIGNATURE=1 | Skip the signature check when ssh-keygen is missing. Read the warning below first. |
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.
$ bay --version
$ bay doctor
bay <version> | git <version> | claude <version> | doctor readyRequirements
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.
| Where | Git | Why |
|---|---|---|
| An agent view | 2.40 or newer | The floor. bay doctor goes red below it. |
| The shared cache | 2.48 or newer | Safe garbage collection in a blob-less partial clone. |
| Recommended | 2.50 or newer | Below it, bay doctor names the features it degrades. |
| A bay-hosted trunk | 2.54 or newer | The 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.
# 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