tokenchitv0.4.2 · MIT
no hosted endpointparsed locallyno prompts sent

Receipts for
your robots.

tokenchit reads your local Claude Code, Codex and OpenCode logs and renders one embeddable card straight into your repo. The card is a file you commit, not a URL you depend on — nothing to rate-limit, nothing to go down, and it keeps working if this site does not.

$ npx @tokenchit/cli@latest generate
live preview
@iyashjayesh
TOKENS
10.4B
EQUIV. COST
$7,005
STREAK
25d
claude-code 99%codex <1%opencode <1%
handle
[ 01 ]

The card, up close

SVG from the embed endpoint, shown at actual size. Default is 495 × 195; layout=compact is 340 wide so two cards fit on one README line. Theme follows GitHub's dark mode via a media query. Every card carries the timestamp of its last sync, because the endpoint caches for four hours.

variant / light
@iyashjayeshTOKENS10.4BEQUIV. COST$7,005STREAK25dclaude-code 99%codex <1%opencode <1%TOKENCHIT.APPSYNCED 12H AGO
variant / dark
@iyashjayeshTOKENS10.4BEQUIV. COST$7,005STREAK25dclaude-code 99%codex <1%opencode <1%TOKENCHIT.APPSYNCED 12H AGO
layout=compact · 340px
@iyashjayeshTOKENS10.4BEQUIV. COST$7,005STREAK25dTOKENCHIT.APPSYNCED 12H AGO
query options
layoutdefaultdefault (495px) or compact (340px)
themeautoauto follows GitHub dark mode; force light or dark
agentsallcomma-separated allowlist, e.g. claude-code,codex
hidedrop any of spend, streak, mix from the card
cache4hclamped 4h–24h, same as the rest of the genre
markdown
[![tokenchit](https://tokenchit.app/api/card/iyashjayesh.svg)](https://tokenchit.app/u/iyashjayesh)
html · two cards on one line
<img height="195" src="…/card/iyashjayesh.svg"> <img height="195" src="…/card/iyashjayesh.svg?layout=compact">

Markdown will not place two images on one line. The HTML form is the only way to sit cards side by side in a README, which is why the compact width exists.

Equiv. cost is not what you paid. It is what these tokens would cost at list API rates. Most agent usage runs under a subscription where no per-token charge ever happens, and models with no public price — bundled or self-hosted ones — are counted in the token total but left out of the figure.

[ 02 ]

The board

opt-in

Public ranking of developers who chose to publish. Run tokenchit publish and you are on it. Stop publishing and your row goes stale, then falls out of the window on its own.

rankdeveloperagent mixtokensequiv. coststreak
1@iyashjayesh
10.4B$7,00525d

See the full board → Rank is total tokens over the selected window; cost and agent mix cover the same window. Streak is the current run of active days, which is not a windowed figure. A cli badge means the numbers were self-reported without a GitHub sign-in.

[ 03 ]

Two different marks

The lime ✓ GITHUB mark means the account is real and the handle is theirs. It says nothing about the numbers. That is what the tier below is for.

tiermethodprovesdoes not prove
○ self-reportedone-shot upload of a locally parsed summaryThe file was produced by the CLI on some machine, at the stated time.Nothing about the numbers. Logs can be edited before parsing. Treat as a claim.
◈ device-attestedcontinuous signed daily deltas, hash-chainedDeltas arrived daily from one keypair, in order, with no gaps or retroactive edits. Tampering breaks the chain and is visible.That the logs themselves are real. A patched client on a controlled machine can still sign fabricated deltas.
◆ api-verifiedread-only org analytics API, provider-sideToken and spend totals match the provider's own billing records for the connected account.Coverage. Only agents behind that provider are counted; the per-agent split still comes from local logs.

Ceiling: no tier distinguishes tokens spent on work from tokens spent on nothing. The card measures usage, not output.

[ 04 ]

Enforced by the test suite

Not a policy page. These are real tests in packages/cli/test/privacy.test.js, run on every push. Each one fails if the guarantee it names stops holding.

privacy.test.js
payload.noContentno prompt, reply, branch or file content survives into an uploaded payload44ms
paths.absentno filesystem path is collected at all — not hashed, not truncated, absent35ms
dryrun.exact--dry-run prints the byte-identical body that a real publish puts on the wire90ms
net.isolatedno source file outside src/net.ts can open a socket7ms
4 passing (201ms) · 0 failing
[ 05 ]

Year in review

tokenchit recap renders this as a second committable SVG. Same data, no card constraints.

total tokens
4.24B
equiv. api cost
$1,284.60
top model
claude-sonnet-4-5
longest streak
63d
per-agent breakdown
agentsharetokenscost
claude-code
58%
2.46B$742.10
codex
21%
890M$268.40
opencode
21%
902M
activity by day and hourlessmore
MON
712M
TUE
738M
WED
770M
THU
725M
FRI
747M
SAT
265M
SUN
283M
0003060912151821
day total

Peak block: Tue–Thu, 14:00–19:00 local. Derived from log timestamps only.