The views

Context

What each request carried, and what Iris measures.

Press 4. Context shows the newest turn on the wire, broken into the three things a request is made of, each sized in tokens and priced at list rates.

Context view: one turn drawn to scale, split into system prompt, tool schemas and conversation

What a request is made of

PartWhat it isWho controls it
System promptClaude Code's own operating instructions, plus your environment and CLAUDE.mdPartly you — block 2 is yours
Tool schemasThe full JSON definition of every tool Claude is allowed to callYou, via the deny list
ConversationEvery message so far, including tool_use and tool_result payloadsGrows on its own

The first two together are the fixed prefix. It is re-sent on every single message of the session, whether or not anything in it is used. That is the number worth reading.

The system prompt, block by block

Click System prompt. Iris shows every block it saw, in full, with its size and whether it carries cache_control. Message blocks are previewed at 300 characters; the system prompt deliberately is not, because you cannot audit a cost you are only shown the first paragraph of. The only cap is a 200k-character guard against a pathological payload.

System prompt blocks with size and cache flags

What to look for in your own:

Tool schemas

The Tool schemas tab lists every definition with its token weight and call count, and carries a trim simulator that models a change before you commit to it. Acting on what you find there is Optimize.

Tool schema list with token weight, call counts and the trim simulator

Conversation and changes

Conversation shows every message block including tool payloads — often the largest single source of growth in a long session. Changes diffs the prefix between two live turns and attributes the growth to a source, which is how you catch a prefix that quietly grew mid-session.

Caching, and why the dollar figures move

Cached blocks are billed at write price once, then read back at roughly 10% of input price until the TTL expires. The dashed lines in the ribbon are cache breakpoints. A stable prefix is therefore much cheaper than its token count suggests — and a prefix that changes every session is much more expensive than it looks.

What Iris measures, and what it does not

It measures: the exact bytes of each system block, tool schema and message on the wire; the usage figures Anthropic returns; cache reads, writes and expiries; latency and status per call.

It estimates: token counts. These start as chars/4 and are then calibrated — Iris divides the measured input total from the response by its own estimate and scales every figure by that ratio, so the numbers track what you were billed rather than a raw guess. They are close, not exact.

It does not measure: anything about the model's reasoning, output quality, or what Claude would have done differently. It also does not model your contract — dollars are list rates for known models, and an unknown model stays unpriced rather than being printed as $0.00. Claude Console is the invoice.

The research behind the numbers

The Token Tax walks through one full measurement — how a 28.0k baseline became 5.6k, and what stayed enabled.