How to use
Paste YAML, TOML or JSON into the input pane, or click “Open file” (drag & drop works too). The format is detected automatically; override it with “Input format”.
Choose a mode: Format, Convert or Tree view. In Convert, pick the target (YAML, TOML or JSON). The result updates as you type.
If there is an error, use the reported line and column and “Go to error” to find it.
Read “Things to check” — type traps, duplicate keys and what the conversion loses — and fix the input (for example by adding quotes) if needed.
Copy the result or download it as .yaml, .toml or .json.
What it does
Type-trap warnings
Flags the YAML 1.1 behaviours behind the “Norway problem” (no / off as booleans), 0755 read as octal, 22:22 as base-60, 2026-10-11 as a date, 1e3 and 3.10 becoming 3.1 — each with its position. Switch “YAML reading” to 1.1 to see what older parsers see.
Comment-preserving format
YAML is re-serialized with the yaml package’s Document API, so comments, anchors, tags and quote styles stay while indentation is normalized. Operations that cannot keep them (key sorting, converting to other formats) say so.
Says what conversion loses
Every conversion lists what the target cannot carry: comments, null in TOML, top-level arrays, expanded anchors and merge keys, date types (strings in JSON), integers beyond 64 bits.
No lost digits
Integers beyond 64 bits and long decimals are kept as written, and TOML’s integer / float distinction (1 vs 1.0) is preserved.
Alias-bomb protection
YAML that explodes exponentially through aliases (billion laughs) is rejected once the aliases add more than one million nodes or 20 million characters. Tags such as !!python/object are never executed — they trigger a warning and are read as plain values.
Tree view with path copy
Explore the structure in a collapsible tree and copy the JSONPath of any value (e.g. $.spec.containers[0].image) in one click.
Use cases
- Find the line behind a syntax error in docker-compose, Kubernetes or GitHub Actions YAML
- Catch values like the country code no or the mode 0755 that other parsers read as a different type
- Convert pyproject.toml or Cargo.toml to JSON or YAML to inspect the structure
- Normalize YAML indentation while keeping comments
- Browse a config file as a tree and copy the path of a value
Supported formats
Input
Output
Capability matrix
| Feature | Support | Notes |
|---|---|---|
| Syntax validation with line/column | Supported | YAML, TOML and JSON |
| Warnings for type traps, duplicate keys and unknown tags | Supported | YAML 1.2 input is also checked from the YAML 1.1 point of view |
| YAML formatting that keeps comments, anchors and tags | Supported | Indent 2 / 4, list indentation toggle |
| Sort keys | Partial | Comments move with their key. Comments are not kept when formatting TOML or converting |
| YAML ⇄ JSON ⇄ TOML conversion | Supported | Lost information is listed as warnings |
| Multiple documents (---) | Partial | Formatting works; JSON output wraps them in an array; TOML cannot hold them |
| Tree view & path copy | Supported | — |
| File open, copy and download | Supported | — |
| JSON Schema / Kubernetes schema validation | Not supported | Syntax and type cautions only; field names and required fields are not checked |
| Keeping TOML comments and layout | Not supported | TOML is re-read as data and written back, so comments and the original order are not kept |
| TOML date-time fractions finer than milliseconds | Not supported | Milliseconds only |
| Offline use | Supported | Works without a connection once loaded |
Limits & notes
- Up to 10 million characters (10 MB per file). Above one million characters, auto-run pauses and you press “Run”.
- Nesting is limited to 200 levels. YAML aliases are rejected once their expansion adds more than one million nodes or 20 million characters (ordinary large arrays are fine within the input limit).
- YAML is read as YAML 1.2 by default. YAML 1.1 reading is there to show how older parsers see the file.
- TOML numbers: integers are 64-bit, decimals double precision (integers beyond 64 bits are written as strings in TOML output).
- YAML complex keys (a list or map used as a key) cannot exist in other formats and are replaced by the string key “[complex key]”.
- The list of cautions shows up to 100 entries. The tree view shows 200 entries per level at a time.
Privacy & safety
Your YAML, TOML, JSON and files are processed only inside your browser. Nothing is sent to or stored on any server, so config files that may contain credentials are safe to inspect. YAML tags are never executed. Closing the page discards everything.
FAQ
Why does country: no become false in YAML?
How do I fix “mapping values are not allowed here” in YAML?
What happens to comments when converting YAML to JSON or TOML?
Is there YAML or JSON that cannot be converted to TOML?
What happens to YAML aliases and merge keys (<<) on conversion?
Is my data sent to a server?
Related tools
JSON Studio — Formatter & Validator
Paste JSON to format, minify or validate it instantly. Errors are shown with the exact line, column and cause, and comments or trailing commas can be auto-repaired. Your data never leaves your device.
XML Studio — Formatter & Validator
Paste XML to format, minify or validate it. Errors show the exact line, column and cause, and whitespace that carries meaning (mixed content, xml:space) is never touched. XPath search and JSON conversion are on the same screen. Your data never leaves your device.
Diff Tool — Text & Code Compare
Paste or drop two versions and see added and removed lines, plus the exact words that changed inside each line. Copy or save the result as a unified patch. Nothing leaves your browser.
UUID / ULID / NanoID / Token Generator
A UUID is ready the moment the page opens. Switch to UUID v7, ULID, NanoID or a random token, generate up to 10,000 at once and save them as .txt, .csv or .json. Paste an existing UUID or ULID to read its embedded time and version.
Regex Tester
Type a pattern and matches light up in the test string instantly. Capture groups, replacement output and what each part of the pattern means are all on one screen — and patterns that would freeze your browser are stopped after one second.
Code Formatter — Format & Minify
Paste code to format it with the language auto-detected. Choose indent, line width, semicolons, quotes and trailing commas; JavaScript, CSS and HTML can also be minified with before/after size and reduction. Your code never leaves the browser.
Last updated: