nextv2.0.0
Agent harnesses

Cost reporting

Which harnesses report no dollar cost, how Kraft estimates what their sessions cost, and which caps still bound a session it cannot price.

Some harnesses report tokens but no dollar cost. This page says which, how Kraft prices their sessions, and which caps bound a session Kraft cannot price. For how the caps work, see Caps and budgets.

Harnesses that report no cost

codex, cursor, amp and antigravity report tokens but no cost. claude and opencode report their own cost. gemini is different again: Kraft reads nothing from its log, and asks the agent to write its token counts, and its cost only if it knows it, into its result file.

Kraft estimates a finished session's cost from prices.json, the rate table shipped with each release (Anthropic, OpenAI and Google models, refreshed per release). It prices the session on the model the log names or, when the log names none, the model Kraft launched it with.

HarnessPriced onNot priced when
codexIts launch model (gpt-5.6-sol in the shipped deep agent profile), because its log names no model.A task passes no model: the CLI runs on its own default, which Kraft cannot price.
ampThe model its log names, when the table lists it.The table lacks that model.
cursorA launch model the table lists, such as gpt-5.6-sol. The price is the provider's list price (OpenAI's, here), not what Cursor bills on your plan or in credits.Its log names the model "Auto", and Cursor's own model ids usually are not in the table.
antigravityA base model id the table lists, such as gemini-3.8-flash with effort set. The price is Google's API list price, not the quota or credits a signed-in account spends.Its log names a model only when launched with one, and a slug with the effort in it (gemini-3.8-flash-low) is not priced.
geminiThe launch model, when the table lists it, on the tokens the agent reports.The agent reports no tokens: the session counts as nothing at all, against a dollar cap or a token_budget.

The estimate stays marked as one (~$4.20 (est.)), never as the agent's own figure. The board shows the tokens of a session Kraft cannot price, with no dollar figure.

Dollar caps and a session Kraft cannot price

A session Kraft cannot price has no dollar figure. The two kinds of dollar cap treat it differently:

CapCounts the session asWhat happens
budget.work_item_usd, budget.daily_usd and kraft item create --budget$0Never stops for it. The item's timeline says so the first time (spend_unpriced), and kraft admin doctor warns about each harness the chains launch on an unpriced model.
A per-scope budget_usdUnknown spendStops the next launch in that scope until you act. Raising the cap does not clear the stop: set budget_usd=none, as Raise a cap on a stopped item shows.
A dollar cap does not bound a session Kraft cannot price. token_budget bounds any harness whose tokens Kraft reads, and Gemini only as far as its agent reports them.
You want to boundClaude, OpenCode (report cost)Codex, Amp, Antigravity, Gemini on a priced model (estimated)Cursor, or any unpriced model
One work itembudget.work_item_usd, --budget, or budget_usd on the work itemThe sametoken_budget on the work item
One node, step or taskbudget_usd or token_budget on that scopeThe sametoken_budget on that scope
Everything in a daybudget.daily_usdbudget.daily_usdNo cap counts it.

Today's spend against the daily cap is GET /api/budget/today, and every item's own share of it is budget_cap.daily on GET /api/work-items/{id} (see HTTP API).

Long-context pricing

Some models cost more once a request's context passes a size, such as OpenAI's past 272k tokens. Kraft prices a whole session at that higher rate when one of its requests passed the size. It can tell only from a log that shows each request: Claude's and Amp's.

Codex's log shows only running totals, so Kraft prices a Codex session at the base rate, and a long-context one estimates low.

Copyright © 2026