Your plans expire while you sleep. Relay spends them on your build plans and hands you tested PRs by morning.
Plan windows reset whether you use them or not. Relay turns the ones you sleep through into commits.
It burns what's about to expire first and leaves a reserve for your day.
Idle windows inside your downtime get filled.
$ relay burn capacity -b burner.json downtime window: Wed 23:00 → Thu 07:00 claude-max 21 windows left · resets Mon 09:00 13 × 5h windows fall in your idle time tonight: 1 window
Budget read live. A platform cron starts the shift at 23:00.
$ python3 deploy/agent37.py schedule --at 23:00 { "name": "relay night shift", "schedule": "0 23 * * *", "timezone": "America/Los_Angeles", "next_run": "tonight 23:00" }
Capped per night and burned last. Never counted as rescued.
$ relay burn capacity openai $20.00 left · resets Oct 31 50% reserved for your day tonight: $0.56 expiring: $10.37
Checkboxes in, commits out.
[x] done, [!] needs you## greet-cli repo: github.com/you/greet test: python3 greet.py | grep Hello budget: 1.50 - [x] add a --name flag (relay 7cddf23) - [!] publish to PyPI (blocked: needs a token)
Estimate. Exact number: relay savings
Sponsors built in: Agent37 runs it · OpenAI models · Supabase logs · Monid finds tools · Context.dev reads docs · InstaCloud deploys previews. Check yours with relay sponsors.
Point any harness's base URL here. Failover and savings are built in.
$ relay serve -c burner.json # http://127.0.0.1:8037/v1 export OPENAI_BASE_URL=http://127.0.0.1:8037/v1 export OPENAI_API_KEY=$RELAY_SERVE_KEY # model: "relay/auto" lets Relay pick
Agents can queue work for tonight's shift.
$ claude mcp add relay -- python3 -m relay.mcp tools: relay_capacity · relay_savings relay_plan_list · relay_plan_add relay_burn (opt-in: RELAY_MCP_ALLOW_BURN=1)
Runs nightly in the cloud. Laptop closed.
python3 deploy/agent37.py create --always-on --budget 5 python3 deploy/agent37.py push --plan PLAN.md --burner burner.json python3 deploy/agent37.py schedule --at 23:00 --days 5,6 python3 deploy/agent37.py morning
Zero dependencies. Use the pieces directly.
from relay.config import load, build_router
from relay import capacity, value
router = build_router(load("burner.json"))
spec, switch = router.pick() # fails over for you
print(value.render(value.month()))Orca's coordinator asks Relay what's about to expire and what matters most, then runs each task as a supervised worker on its own branch, in its own worktree. When a worker stalls, the coordinator keeps it driving or hands it the next task.
No human in the loop. Nothing touches main, so every branch is safe to keep or delete in the morning.
Install the agent-relay skill next to Orca's orchestration skill.
$ claude mcp add relay -- python3 -m relay.mcp $ cp -r skills/agent-relay ~/.claude/skills/ # the coordinator, every shift, unattended: relay_capacity what expires, in burn order relay_plan_list tonight's tasks, by priority orca orchestration worker-start --spec "…" --agent claude orca orchestration reply # stuck? keep it driving
Prompt or drop a plan, connect your agents, let it work overnight, use more of every plan. Prefer a terminal? Watch the CLI run.
Limits trigger a switch. Loops get a second opinion, then a stronger model.
Over-refusals get a second look. Real ones stand.
No. Night branches and draft PRs only. Failing tests mean [!], not a commit to main.
No. It runs on Agent37. Locally, use relay burn run --wait.
It switches models, asks for a second opinion, or resets. Anything that needs you lands in the morning report.
relay serve, then set your base URL to http://127.0.0.1:8037/v1. Or claude mcp add relay -- python3 -m relay.mcp.
No. 30% is reserved for your day.
Your AI plans, working the night shift.