Slicelytics monogram

View, Filter and Chart TOON Files

TOON packs JSON data into fewer tokens for LLM prompts, and is harder to read for it once a file runs past a screen. Slicelytics opens .toon files in your browser as a tree you can expand, filter and chart, and diffs two of them, without uploading anything.

Try It on a Sample TOON File

run
model
prompt_version
started_at
chevron_right
config
temperature
max_tokens
judge
chevron_right
results
run: 41
model: "model-a"
prompt_version: 3
started_at: 2026-10-20T09:14:00Z

The demo holds an eval run of 12 tasks, written in TOON. Switch to Compare to diff it against the next run, or to Visualize to chart its scores. To work with the samples full screen, open them in Explore, Compare or Visualize, no account needed.

What a TOON File Looks Like

The top of the sample, one run of an eval suite:

run: 41
model: model-a
prompt_version: 3
started_at: "2026-10-20T09:14:00Z"
config:
  temperature: 0
  max_tokens: 1024
  judge: exact-or-rubric
results[12]{id,task,score,latency_ms,output_tokens,passed}:
  sum-01,summarize,0.82,1840,412,true
  sum-02,summarize,0.77,2210,498,false
  sum-03,summarize,0.91,1630,377,true
  ext-01,extract,1,920,188,true
  ...

Objects nest by indentation, as config does. An array of objects with the same fields is written as a table: results[12] says it holds 12 items, the braces list their fields once, and each line below is one item's values, in that order. Strings are quoted only when they would be ambiguous, e.g. started_at, which holds colons.

That saves tokens in a prompt, but a reader has to match each value to a field in the header by its position, and a long table soon scrolls the header out of view.

Every Row as an Item

Slicelytics decodes TOON into the same data JSON holds, with the toon-format project's TypeScript decoder, and shows it as a tree. Each row of results becomes an item with its fields named, so sql-02 reads as score: 0, latency_ms: 3120, not as the tenth line of a table. Numbers, booleans and null keep their types.

Type a filter to see only what you need, e.g. results.passed=false for the tasks that failed, or results.task to show one field. See Filter your data for every filter.

Chart a Column

Open the sample's chart of each task's score. It opens with this view:

{
  "v": 1,
  "view": "visualize",
  "props": [
    "results.score"
  ],
  "x": "results.id",
  "chart": "bar"
}

Pick another field, such as results.latency_ms, another chart type, or a metric such as the mean or median, in Visualize.

Compare Two TOON Files

The second sample is the next run of the same suite, with a new prompt version. Open both in Compare and the Diff view shows what changed: prompt_version went from 3 to 4, and four tasks have new results. sum-02, ext-02 and cls-02 now pass, while sql-02 still fails and got slower, from 3120 to 3480 ms.

Compare matches the rows of a table by their position, so keep the same order in both runs. To check that a TOON file holds the same data as the JSON it was made from, open the two together: the Diff view shows anything the conversion changed. For more on comparing eval runs, see Compare benchmark runs.

Share a TOON File as a Link

The Share button makes a link that carries the file and the view: the filters, and the chart if one is open. The data travels in the part of the link after #, which browsers don't send to a server. See Share links for how large a file a link can carry, and AI agents for letting an agent open a TOON file it wrote or received.

Common Questions

Does the file leave my computer?

No. Slicelytics decodes TOON in your browser and uploads nothing. If you share a view, the data travels in the part of the link after #, which browsers never send to a server, so treat the link like the file: anyone who has it can open it.

Which files does it open?

Files ending in .toon, and the same compressed as .toon.gz or .toon.zst. A file with another name, such as .txt or a bare .gz, opens too: Slicelytics tells TOON from JSON, NDJSON, CSV and TSV by its content.

Can I convert TOON to JSON with it?

No, Slicelytics has no export. It shows a TOON file's data as JSON would hold it, so you can check a conversion: open the TOON file and its JSON together in Compare, and the Diff view shows any difference.

What happens if the file is not valid TOON?

Slicelytics shows an error instead of the data, e.g. when a table holds fewer rows than its [N] says.