OpenClaw usage and cost tracking
Provider quota windows, session token estimates, the usage footer, and why the two never add up
OpenClaw shows two kinds of numbers about usage and keeps them apart on purpose. One comes straight from each provider’s usage endpoint: plan names, quota windows, balances, spend, budgets and daily history as the provider reports them, never estimated. The other is OpenClaw’s own accounting of session tokens and an estimated cost from its logs. Here is where each appears, why subscription quota and API billing are different surfaces, the admin credentials that switch on organisation history, and how the per-response footer’s three states work.
Where the numbers show up
- The status command in chat: a card with session tokens and an estimated cost for API-key models, plus the current provider’s usage as a normalised percentage left or a summary.
- The usage command in chat: a per-response footer, off, tokens or full, and a cost mode that aggregates a local summary from the session logs, with a warning when today’s and thirty-day totals may be incomplete while the cache refreshes.
- The CLI: the status command with the usage flag for a per-provider breakdown, and the models status command with a usage window beside each provider that has one.
- The Control UI: provider plan and billing cards above the session-derived token and cost analysis, a plan-usage popover on the composer’s context ring with per-window bars and reset times, and a usage section in the macOS menu bar.
No estimated provider billing; only provider-reported plan names, quota windows, balances, spend, budgets, daily cost history, token/model attribution, or account-state summaries.
Quota is not billing
A subscription credential shows quota windows and optional extra-usage budgets; an API key shows per-token estimates. Sessions billed through a plan hide the dollar estimate, API-billed sessions keep it with a breakdown by type. Admin credentials change the picture: an Anthropic admin key shows organisation usage and cost history, an OpenAI admin key shows organisation cost and completions history, optionally scoped to a project, and OpenClaw never sends inference keys to those organisation APIs because they may belong to custom endpoints. Admin totals take precedence, and OpenClaw does not combine them with its local estimates, because the two answer different questions.
The footer’s three states
- Unset: the session inherits the configured default, a single mode or a per-channel map, and stays off when nothing is configured.
- Explicit off: persisted as off, and a non-off default cannot turn it back on; only the reset command clears the override.
- Explicit on: tokens or full, regardless of the default; a session reset or rollover preserves the choice, and the bare command cycles off, tokens, full from whatever is currently in force.
What OpenClaw costs turns these numbers into a monthly figure, and OpenClaw with a ChatGPT subscription explains why a plan changes which numbers appear at all.
Reading the estimate
The session estimate is local arithmetic over logged tokens, and the status fallback reads the transcript log when a live snapshot is missing counters, preferring the larger prompt-oriented total. It is a good number for a trend and a bad one for an invoice. The AI credit calculator is the same arithmetic for a plan you have not bought yet.
On Diali
On Diali the credit balance is the number that matters, and it is the one the dashboard shows: what the assistant spent, by model, against what the plan includes. Hosted OpenClaw on Diali is the assistant and Diali pricing lists the credits per plan.
- Provider numbers are reported, never estimated.
- Quota windows for subscriptions, dollar estimates for keys.
- Off is sticky; reset re-inherits the default.
Stop reading about it, build one
Set up an agent, pick a channel, and have it working inside the app you already keep open.
