Start here
Quickstart
Install bay, set your checks, start an executor, then start and land a first change.
bay is in development. These pages describe bay as it will ship.
- 01
Install bay
Run the script on each machine that runs agents or an executor.
sh curl -fsSL https://getbay.io/install.sh | sh - 02
Check the machine
Fix each red row before you go on. Each red row names its fix.
sh bay doctor - 03
Configure the repository
.bay/config.tomlnames trunk, the remote, and the check adapter. The check adapter reads abay.check.request/1document on stdin. It writes abay.check.result/1document on stdout. Configuration lists every key.toml # .bay/config.toml trunk = "main" remote = "origin" [check] command = "scripts/bay-check" [agent] product = "claude" - 04
Set the required checks
.bay/policy.tomlon trunk lists each required check. Each check needsexpected_minimum, the least number of tests it must collect. Theadapterlist names every file that decides a pass. bay runs those files from the base, never from the candidate.toml # .bay/policy.toml (on trunk) revision = 5 # an integer; every policy change raises it [[check]] id = "tests" environment = "linux-x86_64" command = "scripts/bay-check tests" adapter = ["scripts/bay-check", "scripts/bay-check.d/", "pytest.ini"] inputs = [] # inputs beyond the tree; "commit" keys evidence by commit expected_minimum = 400 # required, no default timeout_s = 1800 path = ["/usr/local/bin", "/usr/bin", "/bin"] # absolute directories; the check's PATH env = ["DATABASE_URL"] # the only variables passed from the executor [[quarantine]] # optional: one check set aside for a stated time id = "tests" environment = "linux-x86_64" reason = "red on trunk since change k3m9p1; fix in progress" end = "2026-10-25" # a date or a Change-Id - 05
Run an executor
The executor finishes each landing after its agent leaves. Run it under a supervisor, and run at least two.
sh bay executor run - 06
Start a change
The agent names its intent and the paths it needs. bay opens a sparse view of those paths and prints its result.
sh bay start CARD-123 --paths src/api tests/api - 07
Edit, then land
The agent edits files in the view.
bay landreturns at once with an operation id. The executor checks the candidate and lands it on trunk.sh bay land - 08
Read the state
bay statusshows each change, its state, and why it waits. A refusal names what you can still do and when to retry.sh bay status