Fewer tokens
The agent writes data, not a web page: the package owns the layout, the styles, the controls, and the code that sends answers back. For the four example pages below, writing the blocks took 1,253 output tokens; asking the same model for one self-contained HTML page with the same content and working controls took 12,364, about 10 times as many (90% saved).
| Page | Blocks | HTML page (median) | HTML runs | Saved |
|---|---|---|---|---|
| Decision: alert, options, form | 347 | 2,770 | 1,651 – 2,917 | 87% |
| Status: stats, steps, table | 412 | 3,726 | 2,145 – 3,895 | 89% |
| Structure: tree, mermaid, diff | 338 | 3,719 | 3,514 – 4,064 | 91% |
| Review: review, suggest | 156 | 2,149 | 2,008 – 2,478 | 93% |
| Total | 1,253 | 12,364 | 90% |
The saving repeats on every revision: the agent changes a few YAML lines instead of rewriting markup and script.
How it was measured
Counts are Claude output tokens from claude -p --model claude-sonnet-5-5 (3 to 5 HTML runs per page; the block count is the file echoed back verbatim), measured on 2026-11-10 with scripts/token-bench.sh.
None of the HTML pages had the feedback panel for commenting on a selected passage, which show_doc adds to every page.
The four pages
Section titled “The four pages”


