Build1 distinct publisher3 min readPublished
The wire format an internal tool returns to a coding agent is a line item on the inference bill. But the headline saving in one Sonar CLI comparison depends on which JSON baseline you measure against, and on your tokenizer.
The Engineer · Build desk
Compiled by The EngineerSomething wrong?How this is made
Follow any of these and your For You feed starts watching them — no settings page required.
build
Harness choice moved token use 83-fold with the model held constant1 distinct publisher
product
Model choice is becoming a line item, and the differentiator moved up the stack1 distinct publisher
build
Testing a skill means running the scenario again on the next model version1 distinct publisher
build
Your inference bill is an architecture defect: declare the task before you call the model1 distinct publisher
Normalise pretty-printed JSON to 100 characters. The 49% figure puts TOON at 51, and the minified baseline sits 33% above TOON, so it lands at 51/0.67, or about 76 [7][15]. Removing whitespace alone therefore accounts for roughly 24 of the 49 characters saved, just under half the headline reduction [16]. What remains against a minified baseline is still worth having: about 1.49 characters of JSON for every one character of TOON [15]. It is a smaller number than the one that ends up on a slide.
The mechanism is boring and that is why it works. An issue record carries labels like key, severity, component, line and status, and a full entry may add rule, message and estimated remediation effort [13]. Conventional JSON re-sends those labels on every record, so the agent pays again for field names, quotation marks and structural syntax across the whole list [3]. At the 25-record scale used in the comparison, an eight-field shape means 200 field-name instances instead of 8 [17]. TOON keeps one schema-like header for the uniform array and sends each record as a row, so the names appear once and the values stay intact [4]. The context those labels were occupying can hold source code instead [14].
Getting that 33% onto your actual invoice depends on a few conditions holding at once. The payload has to be a large uniform collection, because JSON can be the more compact encoding for nested or irregular data [6]. Your tokenizer has to charge roughly in proportion to characters, and The New Stack is explicit that character counts are only a first signal and that tokenization differs across models [9]. And your current default has to be the thing you measured against, which for most tools shipping JSON to an agent is minified, not pretty.
The adoption path is cheap enough to test rather than argue about. Sonar CLI already returns an issue list as either JSON or TOON via a format flag [10]. Capture the JSON once as a baseline, run it through the TOON CLI with --stats to get the saving on that actual payload, then switch the format only on the call sites whose consumer is an agent [11][18]. The tool decides what to hand over, and the agent's own code never has to change.
In practice this is a routing rule: pick the format per call site based on what is consuming the output. A table when a person is scanning a short result in a terminal, standard JSON when the consumer is a script, an API client or a deeply nested payload [12]. TOON's losslessness claim is scoped to the shapes it targets, which is the honest version of the claim and the reason this is a per-endpoint decision [5]. The project's own benchmarks report lower token use on uniform tabular data with comparable retrieval accuracy in its test set, and the source itself calls that directional evidence [8].
Ranked by verification strength, evidence, and original report placement.
Teams typically aim coding-agent cost controls at model choice, prompt length and request limits; the format of the data returned to the model is described as a less visible lever sitting in the interface between agents and developer tools.
The New Stack piece states: "Token costs are shaped not only by what coding agents read, but also by how development tools package that information."
When a tool returns a long list of similarly shaped records, verbose JSON makes the agent pay repeatedly for field names, quotation marks and structural syntax.
Token-Oriented Object Notation (TOON) keeps a schema-like header for a uniform array and then sends each record as a row, so field names appear once while values remain intact.
TOON is described as a lossless encoding of the JSON data model for the data shapes it targets.
JSON remains a broadly supported interchange format and can be the more compact choice for nested or irregular data.
Distinct publishers with included, body-backed reporting in this cluster.
1 article · August 31, 2026
Evidence-backed comparisons of source perspectives and observed adoption signals. Read the methodology
Which Builder, Operator, and Investor concerns the observed source mix emphasized—not a truth score.
Evidence, demonstrated adoption, hype gap, incentives, and confidence are assessed independently, each on its own current evidence. How these are measured.
One author, one sample, no data published
The headline figure comes from a comparison the author generated himself, on a 25-issue sample no reader can inspect, counted in characters rather than tokens. What holds up is the internal arithmetic: 49% off pretty-printed and 33% off minified only fit together if TOON lands near half the pretty baseline, so the two numbers corroborate each other even though nothing else does. The mechanism — one header instead of a label per row — is plainly true of the format and needs no measurement at all.
One flag shipped, nobody counted
Two concrete things exist and both are small: a --format toon switch on the Sonar CLI, and an npm utility that prints savings for a file you hand it. Beyond that The New Stack is silent on who has turned this on, how much traffic flows through it, or whether any agent in production reads TOON today. The one accuracy datapoint is the format project scoring its own test set.
Careful text, flattering baseline
Give The New Stack credit: it tells readers to run their own tokenizer, calls the project's benchmarks directional, and warns that a cheaper context producing a worse decision is not a saving. The inflation is in the yardstick rather than the prose. Forty-nine percent is measured against pretty-printed JSON, which is whitespace a tool talking to a model should never have been sending; against an already minified baseline the advantage falls to a third, and half the advertised win turns out to be minification anyone can do without adopting a new format.
Interested demo, self-reported number
Ask who benefits: the sole worked example is a commercial code-quality CLI, the sole measurement is the author's own, and the supporting benchmarks belong to the format's own project. No affiliation is disclosed either way. That does not make the 33% wrong — it means no disinterested party has counted, and the number that got quoted is the one that flatters the new format most.
Mechanism solid, magnitude soft
Two different levels of certainty are tangled here. That repeated field labels waste context is close to arithmetic and survives any tokenizer. How much any given team saves is a single unreplicated character count on data no reader can see, filtered through whichever tokenizer they actually use — which is precisely why the piece ends by telling you to measure your own highest-volume call.