tokensitter
Features/Read less
Read less

Keep the signal.
Skip the repeated noise.

Local hooks turn noisy command output and large structured files into a compact view while keeping a route to the original.

Add to Claude CodeOpenAI Codex: coming soon

Local Claude Code plugin · on by defaultEvidence snapshot: 27 Oct 2026 · per-lever live deployment not verified

Inside the workflow
Shrink known noisy commandsEligible Bash commands run through the Tokensitter shrink command.
Guard large readsA whole-file read of a large structured file can return a structural summary.
Avoid unchanged rereadsRead once suppresses an unchanged file already read in the current safe session window.
Transparent by designEvery claim needs a baseline

What changes.
And what does not.

Availability differs between the API relay and the local plugin. Whether each lever is deployed on the live relay has not been independently checked.

Shrink known noisy commands

Eligible Bash commands run through the Tokensitter shrink command. Full output is saved locally and the compact view includes its path. The hook fails closed if Bash deny or ask rules exist.

Guard large reads

A whole-file read of a structured file with more than 300 lines can return a structural summary. Office documents can be read as local markdown text; PDFs, HTML and images are not converted by that path.

Avoid unchanged rereads

Read once suppresses an unchanged file already read in the current safe session window. It does not fire after compaction or in other unsafe conditions.

The boundary. The -20.9% result is input tokens on synthetic files using Sonnet, not a claim about invoices. Hooks fired in only 10 of 54 on-arm sessions; Opus was not tested.

Fewer tokens is only
half the question.

An exact-string check confirms that each answer contains every expected string. Synthetic inputs cover JSON, logs, build output, tests, CSV and YAML. JSON was the clearest win; not every file type improved.

Checks that would strengthen this evidence. They are not yet reported for this feature:

Task correctness

Check answers against an objective test, not against how plausible they look.

Full cost

Include cache writes, cache reads, retries, recalls and helper calls when they apply.

Workload boundaries

Keep the tested model, task type and cache condition beside the result.

Failure reporting

Keep observed misses and untested conditions visible.

Same task.
A stated baseline.

6 file types x 3 questions on synthetic 24 to 60 KB files, with the answer buried in noise. Sonnet 5.5 in Claude Code 2.1.310. Read less Off versus On. This is a plugin-session test, unlike the direct-API routing harness.

Baseline complete-task cost − feature-on complete-task cost
We aim to report alongside: net API cost per completed task · task pass rate

The result.
With its boundaries.

Results are copied from our lab reports (snapshot 27 Oct 2026) and were not re-run for this website.

Lab-20.9%Input tokens per session, Read less on vs off (95% CI -24.8% to -16.6%)
Lab54/54Answers correct with Read less on (Off: 54/54)
Lab10 of 54Sessions with Read less on where its hooks fired
Read this alongside the figures. The interval is indicative: it rests on three runs per cell, and the script that produced it was not committed. Opus was not run. The measured reduction is input tokens, not a claim of lower bills.
ExperimentWorkload and dateResultLimitsReport
Read less rerun

108 sessions: 54 with Read less off and 54 with it on (3 runs)

26 Oct 2026

-20.9% Input tokens per session, Read less on vs off (95% CI -24.8% to -16.6%)

51,496 Input tokens per session with Read less on (Off: 65,136)

54/54 Answers correct with Read less on (Off: 54/54)

10 of 54 Sessions with Read less on where its hooks fired

Read less was tested on synthetic files. Its hooks fired in 10 of 54 sessions with it on, so the total mixes those with sessions where on and off behave alike.

docs/evals/2026-10-26-read-less-rerun.md (PR #110)

By file type

6 file types x 3 questions on synthetic 24 to 60 KB files, with the answer buried in noise

-55.3% JSON

-30.9% Log

-4.3% Build output

+9.7% Test output

0.0% CSV

+3.1% YAML

Input tokens per session by file type, on vs off. JSON is the one clear, hook-driven win. The other moves are mostly run-to-run variance: the hooks fired in 1 of 9 log sessions and never in test or build.

docs/evals/2026-10-26-read-less-rerun.md (PR #110)

Lab results at Anthropic API list prices on fixed tasks show what a lever did on those tasks, not what it will do on your bill. For plugin levers on Pro or Max, list-price values describe usage economics, not the subscription invoice. Relay levers apply to API keys only.

Read the measurement method and evidence limits
Is this a production savings guarantee?

No. Lab figures describe fixed tasks and settings. Read the quality outcomes and limits next to each result.

Where can I inspect the evidence?

The workload, date, uncertainty and report name are in the table above. The repository is private, so there are no source links, and customer data is never included.

A little more care.
A clearer picture.

Add Tokensitter to Claude Code and see where your tokens go.

Add to Claude CodeOpenAI Codex: coming soon