New: upload your build plans and run a night in your browser →
Agent Relay

$1,412 of AI credits
rescued overnight.

Your plans expire while you sleep. Relay spends them on your build plans and hands you tested PRs by morning.

SeptemberEXAMPLE
Used at API rates$5,180
Rescued$1,412
2× Claude Max 20× + ChatGPT Pro · $600/mo in plans
Powered by
Agent37OpenAISupabaseMonidInstaCloudContext.dev

Plan windows reset whether you use them or not. Relay turns the ones you sleep through into commits.

62%of our own Claude windows expired unused last month
0humans awake. It unsticks itself.
1 lineto plug into any harness
How it works

Works with the plans you have

It burns what's about to expire first and leaves a reserve for your day.

Rolling 5-hour windows

Idle windows inside your downtime get filled.

  • Weeknights 23:00–07:00, weekends all day
  • 30% reserved for your day
$ 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

Agent37 instance budget

Budget read live. A platform cron starts the shift at 23:00.

  • 402 → instant switch to the next plan
  • Router models as the cheap tier
$ python3 deploy/agent37.py schedule --at 23:00
{ "name": "relay night shift",
  "schedule": "0 23 * * *",
  "timezone": "America/Los_Angeles",
  "next_run": "tonight 23:00" }

Metered API budgets

Capped per night and burned last. Never counted as rescued.

  • Per-night and per-project caps
  • Every call priced at API rates
$ relay burn capacity
openai   $20.00 left · resets Oct 31
         50% reserved for your day
         tonight: $0.56  expiring: $10.37

Your plan, in markdown

Checkboxes in, commits out.

  • [x] done, [!] needs you
  • One draft PR per project
## 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)
The difference

Tonight, with and without Relay

Without

23:00Laptop closed. Windows keep ticking.
03:00A paid window expires unused.
MONDAYWeekly cap resets with 60% unused.

With Relay

23:00The shift starts on your plan.
02:14A 402 hits. It switches and keeps going.
07:00PRs and a morning report.
Get your number instantly

How much are you letting expire?

Estimate. Exact number: relay savings

Windows expiring unused each month
–
Capacity Relay could put to work, at API rates
–
Integrate

Plug it into your harness

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.

ZERO CODE · OPENAI-COMPATIBLE

relay serve

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 · MCP

relay mcp

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)
HOSTED · AGENT37

Night shift on Agent37

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
LIBRARY · PYTHON

Build your own

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()))
ORCHESTRATOR · ORCA

Run it inside Orca

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
Demo

How it works, in one minute

Prompt or drop a plan, connect your agents, let it work overnight, use more of every plan. Prefer a terminal? Watch the CLI run.

The engine

Nobody's awake. It can't get stuck.

Limits trigger a switch. Loops get a second opinion, then a stronger model.

relay run "create hello_relay.py that prints a greeting, and run it"
Model ladder
TIER 0 · CHEAP (AGENT37 ROUTER)
a37-flashready
a37-miniready
TIER 1 · STRONG (OPENAI)
oai-proready
Unstick ladder
1 · HINT
2 · SWAP
3 · RESET
Spend
relay$0.0000
top model only$0.0000
saved–

When the agent says no

Over-refusals get a second look. Real ones stand.

"kill whatever is running on port 8000…"
 
"write a keylogger that emails me passwords"
 
Relay never shops for a model that will say yes.
FAQ

Questions

Will it push to my main branch?

No. Night branches and draft PRs only. Failing tests mean [!], not a commit to main.

Does my laptop have to stay on?

No. It runs on Agent37. Locally, use relay burn run --wait.

What if the agent gets stuck at 3 a.m.?

It switches models, asks for a second opinion, or resets. Anything that needs you lands in the morning report.

How do I plug in my own harness?

relay serve, then set your base URL to http://127.0.0.1:8037/v1. Or claude mcp add relay -- python3 -m relay.mcp.

Does it use up my whole plan?

No. 30% is reserved for your day.

Plan before bed.
Wake up to PRs.

Your AI plans, working the night shift.

Get started on GitHubWatch the demo