about
tokn measures what AI coding actually costs. Not a survey and not an estimate: a command line tool reads the session logs your editor already writes, prices them against published API rates, and posts the daily total here.
what it is
Everyone has a number in their head for what they spend on AI tooling, and almost nobody has checked it. The tools do keep records. Every session leaves a log on disk with the model, the token counts and the time. Those files sit there unread.
tokn reads them. It works out what each day would cost at raw API rates, uploads that one figure per model per day, and ranks it. The board is not a poll of what people think they spend. Every row on it came off a machine that ran a scan.
The project has no opinion about whether you are spending too much. It is a measuring instrument, and the useful thing about one of those is that it disagrees with you sometimes.
how much has been measured
All time, read live when this page loaded. The stats page breaks the same numbers down by day, model and tool.
how it works
- 1
it reads the logs you already have
Claude Code, Codex, Cursor and the rest each write a session record to disk: model, token counts, timestamps. The scan is local and read-only. Nothing is uploaded at this stage, and tokn scan prints the same table without an account at all.
- 2
it prices them at published rates
Every model call is costed against published rates, broken out by input, output, cache write and cache read. Cache is where the money goes on a long session: a five minute write costs 1.25x the input rate, a one hour write 2x, and a read a tenth, which is why a token count on its own is a poor guide to what something cost.
- 3
it uploads one row per day, per model
That row is the whole payload. A sync replaces the days it covers instead of adding to them, so a corrected scan heals a bad one and running it twice changes nothing.
tokn status shows what is connected. tokn unlink disconnects a machine, and so does revoking it from your account.
what leaves your machine
This, once a day, per model. Nothing else.
{
"day": "2026-09-18",
"tool": "claude-code",
"model": "claude-opus-5",
"requests": 214,
"input": 41233,
"output": 88120,
"cacheWrite1h": 1904221,
"cacheRead": 9241882,
"costUsd": 12.41,
"fast": false
}No prompts, no completions, no file paths, no project or repository names. The aggregation happens on your machine before anything is sent, so there is nothing finer grained for the server to leak. You can read the exact rows a sync would upload with tokn scan before you ever link an account.
A profile can be made private, or kept public but taken off the board, in settings. Deleting an account removes the profile and every usage row with it, immediately and without a grace period.
what the number means
The figure on your row is what your usage would have cost at raw API rates. If you pay per token, that is close to your bill. If you are on a subscription, it is not a bill at all: it is how much work you pushed through, valued at what that work costs when nobody is subsidising it. Rows on a plan carry a plan tag so the number reads correctly.
You can also list the subscriptions and API accounts you pay for on your profile, and see what the same work would have cost at API rates. That part is self reported, and the profile says so.
what it does not measure
- Anything from before you installed it, unless the logs are still on disk. The scan reads what is there; it cannot reconstruct what has been cleaned up.
- Work done in a browser chat window. There is no local session log to read, so none of it counts.
- Tools that keep no usable record. Support is per tool, and a tool that writes nothing down cannot be measured by reading disks.
- What you were actually billed. That is between you and your provider; this only knows published rates and token counts.
the rest
Terminal and desktop sessions both count. Records duplicated by a resumed session are ignored, so a rescan never inflates a total. Handles can be changed twice; after that it takes a word with support, which keeps profile links worth something.
The terms and the privacy policy are both short and say what they mean. If a number here looks wrong, it is worth reporting: being wrong in public is the only real risk this project runs.
The source is on GitHub, which is where bugs and bad numbers should go. Updates are on @trytokn.