Cursor is the agent most often asked about here, and it is deliberately absent.
Cursor keeps its sessions in state.vscdb, where each turn carries
tokenCount.inputTokens and tokenCount.outputTokens. On current builds both
are written as zero. Cursor’s own team confirmed this in March
2026
— the field is “best-effort” and “aren’t reliable right now” — and directs
users to the web dashboard for real figures.
So there is no local measurement to read. Every tool that shows Cursor spend reconstructs it, and the bottom of every one of those fallback chains is the same step: divide a character count by four and price the result. That produces a dollar figure indistinguishable, in a total, from one a provider actually reported.
This tool would have to put that number into budgets, into the pricing-coverage
figure, and into --json — the places whose whole purpose is to say which
figures are real. A missing row is recoverable; a fabricated one is not. So
--doctor reports Cursor as installed-and-unread, with the reason, and no
Cursor row is ever produced.
If Cursor ships reliable local counts — there is an open request for token usage in its hooks API — this becomes a collector like any other.
--record-event does not change this. It journals what a tool measured, and
refuses an event that arrives without its token counts, so it cannot be handed
Cursor’s zeros — but nothing can stop a script from inventing the counts before
they get there. For any source this tool does not read itself, the rule above
is the adapter author’s to keep: no measurement, no row.