Toon Formatter
by Ven0m0
AGGRESSIVELY use TOON v2.0 format for biggish regular data (≥5 items, ≥60% uniform). Auto-applies to tables, logs, events, transactions, analytics, API responses, database results. Supports 3 array types (inline, tabular, expanded), 3 delimiters (comma, tab, pipe), key folding for nested objects. Triggers on structured data, arrays, repeated patterns. Use TOON by default when tokens matter - RAG pipelines, tool calls, agents, benchmarks. Keywords "data", "array", "list", "table", "log", "transac
Skill Details
Repository Files
1 file in this skill directory
name: toon-formatter description: AGGRESSIVELY use TOON v2.0 format for biggish regular data (≥5 items, ≥60% uniform). Auto-applies to tables, logs, events, transactions, analytics, API responses, database results. Supports 3 array types (inline, tabular, expanded), 3 delimiters (comma, tab, pipe), key folding for nested objects. Triggers on structured data, arrays, repeated patterns. Use TOON by default when tokens matter - RAG pipelines, tool calls, agents, benchmarks. Keywords "data", "array", "list", "table", "log", "transaction", "metric", "analytics", "API", "database", "query", "TOON". allowed-tools: Read, Write, Edit, Bash
TOON v2.0 Formatter Skill (AGGRESSIVE MODE)
Purpose
AGGRESSIVELY apply TOON v2.0 format to save 30-60% tokens on structured data. Use TOON by default for biggish, regular data. Use native Zig encoder for 20x performance.
When to Use (AGGRESSIVE)
TOON ALL DAY - Use automatically for:
- ✅ Arrays with ≥ 5 similar items
- ✅ Tables, logs, events, transactions, analytics
- ✅ API responses with uniform structure (≥60% field overlap)
- ✅ Database query results
- ✅ Repeatedly-used, structured data in prompts
- ✅ RAG pipelines, tool calls, agents passing data around
- ✅ Benchmarks/evals where prompt size = money
- ✅ Shape is more important than labels
- ✅ You know what each column means
- ✅ Can declare headers once, go row-by-row
MAYBE, BUT NOT AUTOMATICALLY - Be selective when:
- ⚠️ Human collaborators reading/editing data a lot
- ⚠️ APIs/tools expect JSON (use JSON on wire, TOON in prompts)
- ⚠️ Structure is uneven (many optional keys, weird nesting)
NO, JUST DON'T - Stick to JSON/text for:
- ❌ Short arrays (< 5 items)
- ❌ One-off examples in docs
- ❌ Narrative text, instructions, essays
- ❌ Deep, irregular trees where hierarchy matters
What is TOON v2.0?
TOON (Token-Oriented Object Notation) v2.0 reduces token consumption by 30-60% for structured data:
Three Array Types
1. Tabular (uniform objects ≥5 items):
[2]{id,name,balance}:
1,Alice,5420.50
2,Bob,3210.75
2. Inline (primitives ≤10):
tags[5]: javascript,react,node,express,api
3. Expanded (non-uniform):
- name: Alice
role: admin
- name: Bob
level: 5
Three Delimiters
Comma (default, most compact):
[2]{name,city}: Alice,NYC Bob,LA
Tab (for data with commas):
[2\t]{name,address}: Alice 123 Main St, NYC
Pipe (markdown-like):
[2|]{method,path}: GET|/api/users
Key Folding
Flatten nested objects (25-35% extra savings):
server.host: localhost
server.port: 8080
database.host: db.example.com
Process
1. Detect Suitable Data
When encountering array data, check if it meets TOON criteria:
- ✅ Array with ≥5 items
- ✅ Objects with ≥60% field uniformity (most objects share same fields)
- ✅ Flat or moderately nested structure
How to check uniformity:
- Extract all field names from all objects
- Count how many objects have the most common set of fields
- Calculate:
(objects with common fields / total objects) × 100 - If ≥60%, uniformity is good for TOON
2. Estimate Token Savings
Quick estimation method:
- JSON tokens ≈
(item count × field count × 4) + overhead- Example: 10 items × 5 fields × 4 = ~200 tokens
- TOON tokens ≈
20 (header) + (item count × field count × 2)- Example: 20 + (10 × 5 × 2) = ~120 tokens
- Savings ≈
(JSON - TOON) / JSON × 100%- Example: (200 - 120) / 200 = 40% savings
3. Apply TOON v2.0 Aggressively
AGGRESSIVE MODE: Use Zig encoder for optimal results
If data meets criteria:
Method 1: Use Zig Encoder (Recommended - 20x faster):
.claude/utils/toon/zig-out/bin/toon encode data.json \
--delimiter tab \
--key-folding \
> data.toon
Method 2: Manual TOON (for inline generation):
- Detect array type (inline/tabular/expanded)
- Choose delimiter (comma/tab/pipe)
- Apply key folding if nested objects
- Build TOON header:
[N]{fields}:orkey[N]: values - Output formatted TOON
Show brief summary:
📊 Using TOON v2.0 (estimated 42% savings, 10 items)
Format: Tabular with tab delimiter
Key folding: enabled
[10\t]{id,name,address,status}:
1 Alice 123 Main St, NYC active
2 Bob 456 Oak Ave, LA inactive
...
Otherwise, use JSON and explain why:
Using JSON because:
- Only 3 items (too small)
- Or: Low uniformity (only 45% have same fields)
- Or: Deeply nested structure
4. Show Formatted Output
Immediately show in TOON with brief explanation:
📊 API Endpoints (15 items, TOON format - saved 40.1% tokens):
[15]{method,path,description,auth,rateLimit}:
GET,/api/users,List all users,required,100/min
POST,/api/users,Create new user,required,50/min
...
No long explanations needed - just use it!
Best Practices
Always Show Format Decision
When working with data, always indicate which format you're using and why:
📊 Using TOON (estimated 42% token savings)
[count]{fields}:...
or
ℹ️ Using JSON (deeply nested structure, TOON not suitable)
{...}
When NOT to Use TOON
Explain when JSON is better:
- Deeply nested data: TOON excels with flat/tabular structures
- Low uniformity (<70%): Different fields per object reduces TOON benefits
- Small arrays (<10 items): Overhead not worth it
- Single records: Use JSON for clarity
Performance Tips
- Batch processing: Convert large datasets once, reuse TOON format
- Uniformity matters: Higher field overlap = better savings
- Nested arrays: TOON supports nested structures but savings diminish
- Type coercion: TOON preserves types (numbers, booleans, dates)
Examples
Example 1: API Response
Input:
const apiResponse = await fetch('/api/users').then(r => r.json());
// 150 users returned
Output:
API Response (150 users):
Format: TOON (saves 41.2%, 1,847 tokens saved)
[150]{id,name,email,role,lastLogin}:
1,Alice Smith,alice@example.com,admin,2024-01-15T10:30:00Z
2,Bob Jones,bob@example.com,user,2024-01-15T09:15:00Z
...
Example 2: Database Query
Input:
SELECT * FROM transactions WHERE date > '2024-01-01' LIMIT 500;
Output:
Query Results (500 transactions):
Format: TOON (saves 38.9%, 3,421 tokens saved)
[500]{id,date,amount,merchant,category,status}:
1,2024-01-15,42.50,Starbucks,Food & Drink,completed
2,2024-01-15,125.00,Shell Gas,Transportation,completed
...
Example 3: Metrics Dashboard
Input:
const metrics = analyzePerformance();
// Returns array of route performance metrics
Output:
Performance Metrics (45 routes):
Format: TOON (saves 44.1%, 892 tokens saved)
[45]{route,avgTime,p95,requests,errors}:
/api/users,125,340,15420,3
/api/products,89,210,8932,0
/api/orders,450,1250,3421,12
...
Example 4: Mixed Data (JSON Better)
Input:
const complexData = {
metadata: { version: '1.0', timestamp: '...' },
results: [
{ id: 1, data: { nested: { deep: 'value' } } },
// Highly nested, non-uniform
]
};
Output:
ℹ️ Using JSON format (TOON not recommended):
- Deeply nested structure
- Low uniformity (45%)
- Small array (only 5 items)
{
"metadata": { "version": "1.0", ... },
"results": [ ... ]
}
Integration with Other Skills
Financial Analysis
When analyzing transactions or financial data, use TOON for large result sets:
- Transaction histories (100+ items)
- Account balances across multiple accounts
- Payment logs and audit trails
Data Export
When exporting data, check if TOON is suitable:
- If ≥5 items and ≥60% uniform → use TOON
- Otherwise → use JSON
API Documentation
Document API endpoints in TOON format for compact reference:
# API Endpoints
[15]{method,path,auth,rateLimit,description}:
GET,/api/users,required,100/min,List all users
POST,/api/users,required,50/min,Create new user
...
Commands
Use with these TOON v2.0 commands:
/toon-encode <file> [--delimiter tab] [--key-folding]- JSON → TOON v2.0/toon-validate <file> [--strict]- Validate TOON file/analyze-tokens <file>- Compare JSON vs TOON savings/convert-to-toon <file>- Legacy command (use toon-encode)
Resources
- Zig Encoder:
.claude/utils/toon/toon.zig(601 lines, 20x faster) - User Guide:
.claude/docs/toon-guide.md - Examples:
.claude/utils/toon/examples/(9 files) - Guides:
.claude/utils/toon/guides/(4 files) - FAQ:
.claude/docs/FAQ.md - TOON Spec: https://github.com/toon-format/spec
- Official Site: https://toonformat.dev
Success Metrics
Track TOON usage effectiveness:
- Average token savings: 30-60%
- Accuracy improvement: +3-5% (per official benchmarks)
- Context window freed: 15K+ tokens on large datasets
- User satisfaction: Faster responses, more context available
Related Skills
Xlsx
Comprehensive spreadsheet creation, editing, and analysis with support for formulas, formatting, data analysis, and visualization. When Claude needs to work with spreadsheets (.xlsx, .xlsm, .csv, .tsv, etc) for: (1) Creating new spreadsheets with formulas and formatting, (2) Reading or analyzing data, (3) Modify existing spreadsheets while preserving formulas, (4) Data analysis and visualization in spreadsheets, or (5) Recalculating formulas
Clickhouse Io
ClickHouse database patterns, query optimization, analytics, and data engineering best practices for high-performance analytical workloads.
Clickhouse Io
ClickHouse database patterns, query optimization, analytics, and data engineering best practices for high-performance analytical workloads.
Analyzing Financial Statements
This skill calculates key financial ratios and metrics from financial statement data for investment analysis
Data Storytelling
Transform data into compelling narratives using visualization, context, and persuasive structure. Use when presenting analytics to stakeholders, creating data reports, or building executive presentations.
Kpi Dashboard Design
Design effective KPI dashboards with metrics selection, visualization best practices, and real-time monitoring patterns. Use when building business dashboards, selecting metrics, or designing data visualization layouts.
Dbt Transformation Patterns
Master dbt (data build tool) for analytics engineering with model organization, testing, documentation, and incremental strategies. Use when building data transformations, creating data models, or implementing analytics engineering best practices.
Sql Optimization Patterns
Master SQL query optimization, indexing strategies, and EXPLAIN analysis to dramatically improve database performance and eliminate slow queries. Use when debugging slow queries, designing database schemas, or optimizing application performance.
Anndata
This skill should be used when working with annotated data matrices in Python, particularly for single-cell genomics analysis, managing experimental measurements with metadata, or handling large-scale biological datasets. Use when tasks involve AnnData objects, h5ad files, single-cell RNA-seq data, or integration with scanpy/scverse tools.
Xlsx
Spreadsheet toolkit (.xlsx/.csv). Create/edit with formulas/formatting, analyze data, visualization, recalculate formulas, for spreadsheet processing and analysis.
