Concepts

Budgets and spend

Per-session budgets, trailing spend limits, per-developer limits, and what happens at the cap.

Agents spend real money, so spend is capped three ways: a budget on every session, trailing limits on totals, and optional per-developer limits. All ship with defaults you can tighten in Usage → Limits or per agent in its config.

How budgets work

Every session resolves a budget before it starts: the config's limits.run if set, otherwise your account default ($50, also the platform maximum per session). As the agent works, each model call debits the budget in real time. A session that reaches its cap stops immediately and records budget_hit; the session timeline shows which step spent what.

budget:
  session: 5.00   # this session may spend at most $5

For a weekly-digest agent, $1 is usually plenty. For an agent that opens PRs, budget for a few test sessions too.

To give a single session more room without editing the config, pass config_override_yaml when starting or replaying it.

Trailing spend limits

Account-wide caps on total spend over rolling windows, checked before every session. A session that would exceed one is cancelled before a sandbox exists.

WindowDefault
1 day$250
7 days$2,500
28 days$10,000

Adjust them in Usage → Limits, up to a platform ceiling of $1,000 / $10,000 / $40,000.

Per-agent trailing limits

A config caps its own trailing spend with limits.day, limits.week, and limits.month (the same 1/7/28-day windows, same ceilings). This is the difference between "the account may spend $250 today" and "this one agent may spend $2 this week":

budget:
  session: 1.00
  day: 2.00
  week: 10.00
  month: 30.00

Omit any value to inherit the default: the account default for run, the platform ceiling for the windows.

Per-developer limits

Cap what each person can spend, so one enthusiastic teammate can't consume the account's daily limit. Off by default; turn on Limit spend per developer in Usage → Limits.

Once on, the default limits apply to every developer automatically: anyone who triggers sessions through a mention, the dashboard, the CLI, or an API key. Overrides are the exception layer; add one for a developer who needs different numbers, and any window you leave empty inherits the default. The same person's GitHub and CLI activity counts as one developer.

The windows are the same trailing 1/7/28 days, from $1 up to the same platform ceilings. Enabling seeds defaults of $25 / $100 / $250; adjust before saving.

Common setups, using the 1-day window:

GoalSetup
Everyone gets $50, @priya gets $75Default limit 50.00, override for priya at 75.00
Trial a new teammate at $10Keep the default, add an override at 10.00
No practical cap for one leadOverride at the ceiling, 1000.00

A developer at their limit has new sessions cancelled before a sandbox exists, recorded as budget_hit with the reason ("Spend limit exceeded: developer trailing 1-day limit of $75.00 reached."). A blocked mention gets a reply with that reason and a link to the session. Everyone else keeps working.

Scheduled sessions are exempt: a cron agent belongs to the team, not the person who committed its config. Cap it with per-agent trailing limits instead.

Reading spend

Each session stores its cost broken down into token spend, sandbox CPU, sandbox memory, and Ellipsis fee (see How a session executes). agent budget and GET /v1/budget show account spend for the billing period, and Usage → Limits shows each developer's trailing spend against their personal limit.