Cost model

Every completed run carries a cost object derived from what actually happened— wall-clock duration, real token counts, and provider-reported charges — never a static catalog price, except for hosted agents whose APIs don't report a charge (those are clearly labeled estimates).

The cost object

"cost": {
  "total_usd": 0.0031,
  "currency": "USD",
  "basis": "mixed",                 // compute | browser-time | per-task | tokens | mixed
  "breakdown": [
    { "label": "browser time 0.42 min × $0.012/min", "amount_usd": 0.005 },
    { "label": "gpt-4o 3.1k in / 0.4k out tok", "amount_usd": 0.0121 }
  ],
  "estimated": true,
  "note": "Model token usage was not reported for this run — token cost not included."
}
  • total_usd — the sum of the breakdown, rounded to 3 significant figures.
  • basis — what the run is fundamentally billed on: compute, browser-time, per-task, tokens, or mixed (browser/compute + tokens).
  • breakdown — one line per cost component, each with a label and amount_usd.
  • estimatedtrue when any component uses a catalog/published price rather than a measured or provider-reported figure.
  • note— an honesty note, e.g. when a model's token usage couldn't be counted or when proxy bandwidth was estimated.

A run that never started (timing_ms 0) has no cost object at all.

How total is computed

The builder picks the first branch that matches the runner, in this order:

  1. Provider reported a real charge (provider_cost_usd set by the adapter) → surfaced as-is, basis: per-task, estimated: false.
  2. Hosted agent without a reported charge → the catalog per-task price, flaggedestimated with a note.
  3. Read-only API→ the provider's published per-request price, plus token lines if the Gemini extraction layer ran.
  4. Hosted cloud browser → real browser-time × the published per-minute rate, plus a proxy-bandwidth line for Browserbase Stealth, plus token lines.
  5. Self-hosted OSS engine → the Cloud Run compute this run consumed, plus token lines.

Compute

Self-hosted engines are billed on the Cloud Run compute the run consumes. This service runs at 4 vCPU / 4 GiB on on-demand tier-1 pricing ($0.000024/vCPU-s + $0.0000025/GiB-s), so wall-clock time is charged at ≈ $0.000106/second.

Browser-time

Hosted cloud browsers are billed per browser-minute at each provider's published rate:

ProviderUSD / browser-minute
lightpanda$0.003
browserless$0.006
steel$0.008
kernel$0.009
hyperbrowser$0.010
browserbase / browserbase-stealth$0.012
anchor$0.015

Browserbase Stealth adds a separate residential-proxy line at $10/GB, attributed from the session's reported proxyBytes(or a small ~5 MB estimate when the provider hasn't reported it yet — in which case the total is flagged estimated).

LLM tokens

When an LLM backend runs, its real token usage is tracked per provider (prompt + output, where output includes thinking/reasoning tokens billed at the output rate) and priced at, per 1M tokens:

ProviderInput / 1MOutput / 1M
Gemini 2.5 Pro (default)$1.25$10.00
Gemini 2.5 Flash$0.30$2.50
GPT-4o$2.50$10.00
Claude Sonnet 5$3.00$15.00

If an engine's label implies an LLM ran but no token usage was reported, the token cost is omitted and a note says so — the total is never padded with a guess.

What estimated means

estimated: false means every line is a measured or provider-reported figure (a real charge, real browser-time × published rate, or real token counts × published rate). estimated: true means at least one line uses a catalog/published per-task or per-request price, or a proxy-bandwidth estimate. The published per-minute and per-token rates are always applied to real measured usage.

See also

Command Palette

Search for a command to run...