Usage and costs
Three things cost money, and they are never blurred into one number:
| Charge | What it is | Who bills it |
|---|---|---|
| Session time | A session’s machine, metered per second while it runs and billed per minute | KeepState, from your credit |
| Storage | One saved point (checkpoint) per session, per GB-month after deduplication | KeepState, from your credit |
| Model spend | The calls your agent makes to the model provider | Your provider, on your own key |
The rates are on the pricing page, stated with the price book that ratified them. The free tier runs one session at a time; forking a session needs a paid plan.
Read a session’s usage
In the app, /usage; from the public CLI, ks session usage <session>
prints the same receipt; in the browser console, a session’s page shows
Usage as a receipt: what KeepState
has charged so far, then session time, storage and model use apart, each
with its units and its source.
- The machine’s model calls are metered by the gateway on the session’s machine: calls and tokens, exact, with the key source (the browser console splits the tokens into input and output, and cache). KeepState charges nothing for them, since your provider’s own invoice is what you pay: their cost reads unavailable in the terminal and No charge in the browser console, never $0.
- Calls made through the service, such as adviser consultations, are listed per model with input and output tokens, and a dollar figure only where a published rate exists.
- Session time is the time the session’s machine ran between its starts, pauses and resumes, read from the engine’s own record and priced at the session minute as an estimate (the statement bills per minute and rounds to the cent).
- Storage is the size of one checkpoint, read from the engine’s store and priced per GB-month, as a monthly figure for what is held now: the newest checkpoint, or after a restore the one you restored to, until the next save. The session’s other usable checkpoints (save, fork and restore) carry no storage charge.
A figure the engine cannot read is left out of the browser console and said so, never shown as zero; the app’s status line shows the session’s token total, or a model dollar figure where the service states one.
Budgets
A session has a token budget, enforced by the gateway on every call its
machine makes: 500,000 tokens by default on the free tier and 2,000,000 on
paid tiers, or what ks run --budget-tokens sets. /usage shows two
figures: that gateway budget, and the service’s token cap, which governs
only calls admitted through the service, such as adviser consultations. The
two can differ; today the gateway budget is the one that stops a machine’s
model calls. When the gateway meter cannot be read, no gateway budget is
shown.
What stops the spending
- The budget. When a session’s gateway budget is spent, further model calls are refused. A plain session is saved and paused. For an agent session, pausing at the budget has not yet been tested on its own.
- Credit. When an account’s credit runs out, its running sessions are
saved and paused, not killed; that path has not yet been verified on a
running production session. Adding credit does not resume a session by
itself: add credit in the console, then
/resume(orks agent resume <agent> --session <session>). - Idle. An idle agent session is saved and paused after its idle
period, never killed:
/session idleshows where it stands. - You.
/pausesaves and pauses the session: session time stops and only storage is billed until you resume it.
Plain sessions
A plain session (ks run without --agent) has no app window; read its
spend from a terminal:
ks meter <session>It prints spend against budget, billed calls and key sources; --json for a
script.
Your account
The console shows your credit, your statements and your invoices. Deleting a session removes its live resources and records and erases the checkpoint content only it held; content a surviving fork shares stays under the retention policy, and the deletion plan says which applies.