Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

Back to skills

Toon Format

ASecurity

TOON (Token-Oriented Object Notation) encoding for LLM-efficient data representation. 30-60% token savings vs JSON for structured data.

416 stars
0 votes
0 copies
0 views
Added 2/7/2026
datatypescriptpythongobashsqlapidatabasedocumentation

Works with

cliapimcp

Security Analysis

A100/100

Scanned 2/12/2026

Install to Claude Code

$npx -y skills add aiskillstore/marketplace --skill toon-format --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Toon Format?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Toon Format
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/aiskillstore-toon-format/badge)](https://www.skillsdirectory.com/skills/aiskillstore-toon-format)

More formats (shields.io, HTML) on the badges page.

Download Zip
Files
SKILL.md
---
name: toon-format
description: "TOON (Token-Oriented Object Notation) encoding for LLM-efficient data representation. 30-60% token savings vs JSON for structured data."
---

# TOON Format Skill

TOON is a compact, human-readable encoding of JSON designed for LLM prompts.

## Variables

| Variable | Default | Description |
|----------|---------|-------------|
| VALIDATION_MODE | strict | `strict` (CLI validation required) or `lenient` (parser permissive) |
| AUTO_FIX | true | Run fix scripts automatically on validation failure |

## Instructions

**MANDATORY** - Follow the format rules in this skill and `reference/format-rules.md`.

- Always include explicit `[count]` for arrays
- Use 2-space indentation for tabular rows
- Add blank line after tabular arrays to terminate them
- Use semicolons for nested arrays in cells (NOT commas)

## Red Flags - STOP and Reconsider

If you're about to:
- Put commas inside quoted strings in tabular cells
- Omit the `[count]` from array declarations
- Forget the blank line after a tabular array
- Use YAML-style `- item` list syntax
- Add comments with `#`

**STOP** -> Check `reference/format-rules.md` -> Then proceed

## Workflow

1. [ ] Determine if TOON is appropriate (see "When to Use TOON" below)
2. [ ] Design data structure for tabular representation
3. [ ] **CHECKPOINT**: Verify format matches rules
4. [ ] Write TOON with proper indentation
5. [ ] Validate with `npx @toon-format/cli --decode`
6. [ ] If errors, run auto-fix scripts from `reference/validation-tools.md`

## Cookbook

### Format Rules
- IF: Writing or editing TOON files
- THEN: Read `reference/format-rules.md`
- COVERS: Syntax rules, constraints, correct patterns

### Validation & Fixing
- IF: TOON file fails validation
- THEN: Read `reference/validation-tools.md`
- COVERS: CLI validation, auto-fix scripts

## When to Use TOON

**Good candidates:**
- Uniform tabular data (lists of similar objects)
- Documentation indexes and manifests
- Repeated key-value structures
- Any structured data being fed to LLMs

**Use JSON instead for:**
- Deeply nested structures
- Non-uniform data (mixed schemas)
- Data requiring frequent programmatic manipulation
- Configuration files read by tools

## TOON Syntax

### Key-Value (YAML-like)
```toon
name: John
age: 30
active: true
```

### Arrays with Explicit Length
```toon
tags[3]: red, green, blue
```

### Tabular Data (Primary Use Case)
```toon
# Syntax: name[count]{col1,col2,col3}:
# Followed by 2-space indented CSV-like rows

users[3]{id,name,email}:
  1,John,john@example.com
  2,Jane,jane@example.com
  3,Bob,bob@example.com
```

**IMPORTANT**: Rows MUST be indented with 2 spaces. Always add a blank line after the last row.

### Nested Arrays in Cells
Use semicolons or quote values containing multiple items:
```toon
pages[2]{path,keywords,priority}:
/intro,"overview;basics;start",core
/api,"reference;methods;types",core
```

### Multi-line Strings
Use quoted strings with `\n` for line breaks:
```toon
description: "This is a multi-line\nstring value that preserves\nline breaks."
```

### Nested Objects
```toon
config:
  database:
    host: localhost
    port: 5432
  cache:
    enabled: true
```

## Encoding Patterns for Documentation

### Index Files
```toon
meta:
  category: libraries
  generated: 2025-01-15T10:30:00Z
  count: 5

items[5]{id,name,description,path,keywords}:
baml,BAML,Structured LLM outputs,ai-docs/libraries/baml/_index.toon,"llm;types;structured"
mcp,MCP,Tool integration protocol,ai-docs/libraries/mcp/_index.toon,"tools;context;servers"
prisma,Prisma,Type-safe database ORM,ai-docs/libraries/prisma/_index.toon,"database;orm;sql"
```

### Page Summaries
```toon
meta:
  library: baml
  page: error-handling
  source_url: https://docs.boundaryml.com/guide/error-handling
  content_hash: a3f2c1d4e5

summary:
  purpose: "Configure retry policies and fallback strategies for resilient LLM calls."

  key_concepts[4]: RetryPolicy,FallbackClient,timeout,exponential backoff

  gotchas[2]: Default timeout 60s may be too short,Retries count against rate limits

code_patterns[1]:
  - lang: baml
    desc: Retry policy configuration
    code: "retry_policy Resilient {\n  max_retries 3\n  strategy exponential\n}"
```

## Token Comparison

**JSON** (~280 tokens):
```json
{"pages":[{"path":"/intro","section":"guide","title":"Introduction","priority":"core"},{"path":"/setup","section":"guide","title":"Setup","priority":"core"}]}
```

**TOON** (~100 tokens):
```toon
pages[2]{path,section,title,priority}:
/intro,guide,Introduction,core
/setup,guide,Setup,core
```

**Savings: ~64%**

## Tools & Libraries

- **TypeScript/JS**: `@toon-format/toon` (npm)
- **Python**: `python-toon` (pip)
- **Online**: https://toontools.vercel.app/playground
- **Spec**: https://toonformat.dev/

## Best Practices

1. Design data structures for tabular representation when possible
2. Use explicit `[count]` for arrays - helps LLM parsing
3. Keep JSON as canonical source, TOON for LLM transport
4. Use semicolons for nested arrays (e.g., `"val1;val2;val3"`)
5. Truncate long strings (code snippets < 200 chars)
6. Always add a blank line after tabular arrays to terminate them

## Format Constraints

**Enforced by official `@toon-format/cli` (use `--decode` to validate):**

| Rule | ❌ Incorrect | ✅ Correct |
|------|-------------|-----------|
| No comments | `# comment` | (remove comments entirely) |
| No YAML-style lists | `- item` | `key[N]{col}:` + indented rows |
| Rows must be indented | `row,data` | `  row,data` (2 spaces) |
| Arrays need count+cols | `items{a,b}:` | `items[3]{a,b}:` |
| No multiline strings | `key: \|` | `key: "line1\nline2"` |
| No pipe delimiters | `val\|val` | `val,val` or `"val;val"` |
| No commas in tabular cells | `"a,b"` | `"a;b"` |
| Blank line AFTER arrays | missing terminator | blank line after last row |

**Validation tools:**
```bash
# Validate with official CLI (use --decode, not validate!)
npx @toon-format/cli --decode file.toon > /dev/null

# Auto-fix common issues (run in this order)
python3 .claude/ai-dev-kit/dev-tools/scripts/fix_toon_comments.py path/
python3 .claude/ai-dev-kit/dev-tools/scripts/fix_toon_yaml_lists.py path/
python3 .claude/ai-dev-kit/dev-tools/scripts/fix_toon_nested_lists.py path/
python3 .claude/ai-dev-kit/dev-tools/scripts/fix_toon_commas.py path/
python3 .claude/ai-dev-kit/dev-tools/scripts/fix_toon_pipes.py path/
python3 .claude/ai-dev-kit/dev-tools/scripts/fix_toon_multiline.py path/
python3 .claude/ai-dev-kit/dev-tools/scripts/fix_toon_blank_lines.py path/
```

Attribution

aiskillstoreaiskillstore
View sourceMore from aiskillstore →
SSkills DirectorySkills Directory

Your tool, in front of Claude Code builders.

3 founder slots · $299/mo · GSC-verified traffic · sponsors can never buy grades.

See placements

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Your tool, in front of Claude Code builders.

3 founder slots · $299/mo · GSC-verified traffic · sponsors can never buy grades.

See placements

Related Skills

Rank Tracker

This skill helps you track, analyze, and report on keyword ranking positions over time. It monitors both traditional SERP rankings and AI/GEO visibility to provide comprehensive search performance insights.

1821 votes

Youtube Competitor Analyzer

Find and analyze YouTube competitor channels using YouTube Data API v3. Discover competitors through keyword search, category matching, content similarity, and related channel discovery. Compare metrics, content strategies, and market positioning. Use when users want to (1) Find competitors for their YouTube channel, (2) Analyze competitor performance metrics, (3) Compare their channel against competitors, (4) Identify content gaps and opportunities, (5) Benchmark against similar creators, (6...

31 votes

Twitter Algorithm Optimizer

Analyze and optimize tweets for maximum reach using Twitter's open-source algorithm insights. Rewrite and edit user tweets to improve engagement and visibility based on how the recommendation system ranks content.

742580 votes

Weather Fetcher

Instructions for fetching current weather temperature data for Karachi, Pakistan from wttr.in API

655280 votes

Weather

Get current weather and forecasts (no API key required).

476190 votes
View all in data →