The build machine agent for barerepo.
go build ./cmd/barerepo-runner
barerepo-runner <token>
The token comes from the add runner page on your barerepo. The server is remembered after the first attach, so you pass it once and never again.
It long-polls outward, so it needs no inbound port and no port forwarding. One binary, nothing outside the standard library.
Runs are your own hardware, which is the whole design: there is no hosted CI to pay for and no queue to share. A token is scoped to one repository, so a runner attached to one project cannot read another.
An operator who installs barerepo-runner beside the barerepo binary
gets a one paste install on the add runner page, because the server hands
out the copy sitting next to it.
The tests that drive a real server live behind a build tag, because they need all three checkouts side by side. Without the tag this repository builds and tests on its own and depends on nothing.
git clone https://barerepo.com/barerepo/server ../server
printf 'go 1.24\n\nuse (\n\t./cli\n\t./runner\n\t./server\n)\n' > ../go.work
go test -tags crossrepo ./...