HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
toon-format
toon
TypeScript2025–2026
toon-format / toon

toon

🎒 Token-Oriented Object Notation (TOON) – compact, human-readable serialization of JSON data for LLM prompts. TypeScript SDK, CLI, benchmarks.

17Distinct people
18Mentions
0Explicit recommenders
25.6KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

🎒 Token-Oriented Object Notation (TOON) – compact, human-readable serialization of JSON data for LLM prompts. TypeScript SDK, CLI, benchmarks.

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:56:07 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by month18 dated mentions

Observed mentions: 2025-10-26 22:19:02 UTC to 2026-06-18 18:13:41 UTC.

0123452025-10-01 00:00:00 UTC to 2025-11-01 00:00:00 UTC (exclusive): 4 mentions; 2 submissions, 2 commentsOct 20252025-11-01 00:00:00 UTC to 2025-12-01 00:00:00 UTC (exclusive): 5 mentions; 4 submissions, 1 comments2025-12-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-01-01 00:00:00 UTC to 2026-02-01 00:00:00 UTC (exclusive): 3 mentions; 1 submissions, 2 comments2026-02-01 00:00:00 UTC to 2026-03-01 00:00:00 UTC (exclusive): 2 mentions; 1 submissions, 1 commentsFeb 20262026-03-01 00:00:00 UTC to 2026-04-01 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 comments2026-04-01 00:00:00 UTC to 2026-05-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2026-05-01 00:00:00 UTC to 2026-06-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2026-06-01 00:00:00 UTC to 2026-07-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsJun 2026

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
Oct 20252025-10-01 00:00:00 UTC2025-11-01 00:00:00 UTC422
Nov 20252025-11-01 00:00:00 UTC2025-12-01 00:00:00 UTC541
Dec 20252025-12-01 00:00:00 UTC2026-01-01 00:00:00 UTC000
Jan 20262026-01-01 00:00:00 UTC2026-02-01 00:00:00 UTC312
Feb 20262026-02-01 00:00:00 UTC2026-03-01 00:00:00 UTC211
Mar 20262026-03-01 00:00:00 UTC2026-04-01 00:00:00 UTC110
Apr 20262026-04-01 00:00:00 UTC2026-05-01 00:00:00 UTC101
May 20262026-05-01 00:00:00 UTC2026-06-01 00:00:00 UTC101
Jun 20262026-06-01 00:00:00 UTC2026-07-01 00:00:00 UTC101

What Hacker News says

18 sources
So I've been working heavily on redesigning the CLI for where I currently work. I took the approach of building it from the ground up to be agent-first, primarily because we already had a good sense on what was missing for the human sense but any agent implications were entirely unknown. I'm really happy with that decision and we've ended up with a much better human experience as a result too. I plan to write up our experience at some point, but in the interim a few comments on the linked principles. When I worked at Heroku basically all of these principles were true (though usually described slightly differently or for different reasons) back then too. These are just good CLI design principles, nothing agent-native about them. Build small sharp commands that don't require interactivity, follow *nix conventions so users can pipe in/out re
Read the rest
sults to build workflows beyond what you initially imagined, provide useful help and examples, if there's a reasonable guess about the next thing a person should do offer it as a suggestion, be consistent in your terminology, be consistent in data format (e.g., don't expect a shortform name of a resource as the input in one place and the integer ID in another), for information that is important for the context in which to execute a command (e.g., which user, which org, etc) provide an environment level config and a per-command config option. Just lots of generally helpful advice for people. Turns out it's helpful to agents too. Something that seems like agent-specific conventional wisdom that I'm not fully bought into: JSON as the output format. For all but the most trivial outputs the LLM does not actually seem to want JSON output and will instead jump through various hoops to turn it into something it can parse more easily. We experimented with TOON[1] as a format and immediately confirmed the reduced token output claims. However when benchmarking actual real use cases TOON performed worse than both JSON and having the LLM just consume the human output. Digging further into that was eye-opening as it revealed the reason JSON did so well was less to do with the LLM understanding JSON and more its knowledge of the extensive ecosystem around JSON as a format that already exists. Looking at all the various tool calls we could see it'd make heavy use of piping JSON data to `jq`, `cut`, `awk`, `sort`, `wc`, etc. to get the data into the shape it needed. Failing that it would fall back to writing temporary python scripts to get it into the correct shape. Capturing all of those logs to understand the performance differences felt like a form of usability testing we used to do at Heroku too. I suddenly saw the way someone (something in this case) was using the tool in ways I didn't entirely expect. Many of them to essentially get answers to perfectly reasonable questions that we should be surfacing in a better way to both humans and agents alike. It's like I managed to squash hundreds of usability tests into a couple of days. It was pretty simple to add additional flexibility into the CLI commands and clearer messaging in other places which drastically reduced the need for the LLM to post-process the data no matter what format they received it in. So we still support JSON as a data format because it's genuinely useful for a bunch of reasons. But we also have something more LLM friendly (TOON-like, but not entirely compliant in specific circumstances where we can see it's inefficient) to be as efficient with token usage as we can be. That's about the only agent-only addition to the CLI in the end. Despite building it agent-first, it's helped us get to a better human product. [1] https://github.com/toon-format/toon
In Principles for agent-native CLIs
Costbase is an LLM cost optimization proxy. We just shipped TOON (Token-Oriented Object Notation) compression. TOON is an open format (not ours): https://github.com/toon-format/toon It converts JSON like this: {"id": "cust_001", "name": "Acme", "mrr": 15000} Into: id: cust_001 name: Acme mrr: 15000 We integrated it into our gateway to automatically compress JSON in tool results, user messages, and tool call arguments before they hit the LLM. Benchmarks on real payloads: - CRM query (10 records): 48% tokens saved - E-commerce orders (4 orders): 34% saved - API metrics (8 endpoints): 43% saved Sub-100μs latency overhead. LLMs parse it correctly in our testing (GPT-4o, Claude, etc). Not a silver bullet — works best on arrays of objects with uniform schemas. Deeply nested or irregular JSON sees less benefit. Curious what stra
Read the rest
tegies others use for token compression. We considered CSV for tabular data but it doesn't handle nested structures. https://www.costbase.ai
In We added TOON compression to our LLM gateway – compress prompts, saves tokens
A lot of this depends on your workflow. A language with great typing, type checking and good compiler errors will work better in a loop than one with a large surface overhead and syntax complexity, even if it's well represented. This is the instinct behind, e.g. https://github.com/toon-format/toon, a json alternative format. They test LLM accuracy with the format against JSON, (and are generally slightly ahead of JSON). Additionally just the ability to put an entire language into context for an LLM - a single document explaining everything - is also likely to close the gap. I was skimming some nano files and while I can't say I loved how it looked, it did look extremely clear. Likely a benefit.
In Nanolang: A tiny experimental language designed to be targeted by coding LLMs
rinvi·Jan 9, 2026Submission

Show HN: Raindrip – AI-Friendly CLI for Raindrop API

I have 1,323 bookmarks and exactly 2 tags so I created raindrip to fix my organizing skills in Raindrop.io. After I threw an AI agent at the problem with raindrip, all my bookmarks were sorted nicely into folders and now I have 17 tags. If you trust AI enough to sort your bookmarks, give it a try: https://github.com/rinvii/raindrip Technical details: - Built with uv - TOON by default (https://github.com/toon-format/toon) - 99% test coverage and readable API error messages to help AI vibe it out
2 points · Open discussion

Showing the 15 most recent of 18 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.