$ capsul benchmark
Measured, including what the saving cost.
Every number here comes from a run we can reproduce. Intervals sit next to medians, and the rows where an answer check was lost say so on the row rather than in a footnote.
/benchmark · September 2026
Measured with Claude and Codex.
What actually goes over the wire, model by model.
The same five short questions, to the same model, with and without capsul. Bars show the reduction in cache-weighted input. These are separate campaigns; savings vary with the task and cache.
share of the input capsul does not send
saved by capsulstill sent= claude -p
Haiku 4.5
−73 %
- claude -p
- 396 725
- capsul
- 106 491
Sonnet 5
−50 %
- claude -p
- 244 486
- capsul
- 123 370
Sonnet 4.6
−51 %
- claude -p
- 147 746
- capsul
- 72 692
Opus 4.6
−59 %
- claude -p
- 171 370
- capsul
- 70 482
Opus 4.7
−32 %
- claude -p
- 185 278
- capsul
- 126 413
Opus 4.8
−80 %
- claude -p
- 358 993
- capsul
- 70 478
Opus 5
−58 %
- claude -p
- 189 342
- capsul
- 79 166
Fable 5
−45 %
- claude -p
- 160 682
- capsul
- 88 530
Fable 5.1
−58 %
- claude -p
- 224 278
- capsul
- 95 064
Method
Two arms, with the same model imposed on both. The bare arm runs the agent CLI the way anyone runs it; the capsul arm sends the same question through capsul on the same model. Comparing two different models would compare price lists, not tools.
The unit is cache-weighted input: fresh tokens at full weight, cache reads at a tenth. On a subscription the raw token is not what gets metered, and a raw count flatters whichever arm happens to cache better.
Every cell is kept. Nothing is dropped for being inconvenient, and each campaign states how many cells were run and how many were discarded. That second number is zero.
Intervals are bootstrapped at 90 percent and drawn on the same axis as the gain, with the line at one visible underneath. An interval that crosses that line means the measurement establishes nothing, and it is meant to be seen.
What these numbers do not say
- A median is not a promise. The nine per-model medians run from x1.47 to x5.09, and within a model one question can gain a factor of three while the next loses.
- Three of the nine Claude models lose one answer check out of five with capsul, and one gains one. A saving bought with a wrong answer is not a saving, so the count is stated here rather than left out.
- The protocol is short, one-line questions, which is where the gain is widest. A run earlier the same day on ten-line prompts, 126 cells, gave x1.09 to x3.34 with two rows establishing nothing. If you write long prompts, that run describes you and this table does not. At least one published task also uses more weighted input with capsul than without.
- Campaigns are separate. Figures from different dates were measured on different versions of the code, so a row is comparable with its own campaign and not necessarily with another.
- These figures measure input sent to a model. They do not measure how much of a subscription quota that turns into, which depends on weighting we do not control.
The raw data
The most recent campaign is published as JSON, with its protocol and its per-task figures. Anyone who does not take our word for the table can read the file.