askill
toon

toonSafety 90Repository

Converts JSON to compact TOON format for reduced token usage. Use when inspecting JSON APIs, processing large JSON payloads, or reducing token costs when sending data to LLMs.

3 stars
1.2k downloads
Updated 2/7/2026

Package Files

Loading files...
SKILL.md

TOON CLI

Token-Optimized Object Notation reduces JSON token counts by 30-50%.

Quick Reference

Convert JSON to TOON

# From file
toon data.json -o output.toon

# From stdin (pipe from curl, jq, etc.)
curl -s https://api.example.com/data | npx @toon-format/cli

# With token statistics
toon data.json --stats

# Pipe from jq
jq '.results' data.json | npx @toon-format/cli --stats

Convert TOON to JSON

# From file
toon data.toon -o output.json

# From stdin
cat data.toon | toon --decode

Common Options

| Option | Description | | --------------------- | --------------------------------------- | --- | | -o, --output <file> | Output file (stdout if omitted) | | -e, --encode | Force encode mode (JSON → TOON) | | -d, --decode | Force decode mode (TOON → JSON) | | --stats | Show token savings (encode only) | | --delimiter <char> | Array delimiter: , (default), \t, | | | --keyFolding safe | Collapse nested objects to dotted paths | | --expandPaths safe | Expand dotted paths when decoding |

Use Cases

Inspect API Response

# Quick preview of API data in compact form
curl -s https://api.github.com/users/torvalds | npx @toon-format/cli

# With token count comparison
curl -s https://api.github.com/repos/torvalds/linux | npx @toon-format/cli --stats

Process Large JSON Files

# Convert large file with streaming (memory efficient)
toon huge-dataset.json -o output.toon

# Check token savings before processing
toon large-api-response.json --stats

Optimize for LLM Context

# Maximum compression: key folding + tab delimiter
toon data.json --keyFolding safe --delimiter "\t" --stats -o compressed.toon

# Round-trip: encode with folding, decode with expansion
toon input.json --keyFolding safe -o compressed.toon
toon compressed.toon --expandPaths safe -o restored.json

Pipeline Integration

# Filter with jq, compress with toon
jq '.data.items[:10]' response.json | npx @toon-format/cli > subset.toon

# Fetch, transform, compress
curl -s https://api.example.com/data | jq '.results' | npx @toon-format/cli --stats

Format Overview

TOON uses indentation instead of braces and brackets, with inline arrays and tabular object arrays:

JSON:

{
  "user": {
    "id": 123,
    "name": "Ada",
    "tags": ["admin", "ops"]
  },
  "items": [
    { "sku": "A1", "qty": 2, "price": 9.99 },
    { "sku": "B2", "qty": 1, "price": 14.5 }
  ]
}

TOON:

user:
  id: 123
  name: Ada
  tags[2]: admin,ops
items[2]{sku,qty,price}: A1,2,9.99
  B2,1,14.5

Key Features

  • No braces/brackets: Indentation defines structure
  • Inline primitive arrays: tags[2]: admin,ops instead of ["admin","ops"]
  • Tabular objects: Arrays of uniform objects become CSV-like tables
  • Optional key folding: data.metadata.items[2]: a,b instead of nested objects
  • Unquoted strings: Only quote when necessary (special chars, delimiters)

Token Savings Example

$ curl -s https://api.github.com/users/torvalds | npx @toon-format/cli --stats

✔ Encoded stdin → stdout

ℹ Token estimates: ~245 (JSON) → ~156 (TOON)
✔ Saved ~89 tokens (-36.3%)

Related

Install

Download ZIP
Requires askill CLI v1.0+

AI Quality Score

95/100Analyzed 2/13/2026

Excellent skill documentation for the TOON CLI. It provides immediate actionability via npx commands, clear use cases for token optimization, and a comprehensive reference of options and format specifications.

90
95
90
95
95

Metadata

Licenseunknown
Version-
Updated2/7/2026
Publisherknoopx

Tags

apici-cdgithubllm