← All Tools
YAML Parser🔒 100% local
Parse and validate YAML. Privacy-first, no server uploads, no tracking.
Related Tools
Reads a pasted YAML document with a small parser that covers the subset most config files use: nested maps, block lists written with a leading dash, inline lists in square brackets, and quoted or bare scalars. The output is an indented tree of the value it built, with a type label such as string:John or number:30 against every leaf and object{2} or array[2] against every branch, followed by the top-level keys. Parsing happens in the page and the document is never uploaded.
How to use it
- Paste the YAML into the input box and press Process.
- Read the tree under === Parsed structure ===: keys are printed with their inferred type, and containers are summarised before their contents are listed underneath.
- Check the last line, Top-level keys, to confirm the root really is a map of the keys you expect.
- Use Copy Output to take the whole tree, or Clear to empty both boxes.
Worked example
name: John
age: 30becomes=== Parsed structure ===
name: string:John
age: number:30
Top-level keys: name, ageThe default example in the box.
server:
host: localhost
port: 8080
tags:
- a
- bbecomes=== Parsed structure ===
server: object{2}
host: string:localhost
port: number:8080
tags: array[2]
[
string:a
string:b
]
Top-level keys: server, tagsNested maps are indented under their key; array items are wrapped in their own [ and ] lines.
When to use it
- Checking how a config file will be read after an indentation change, without loading a full YAML library.
- Confirming whether a value that looks numeric or boolean was stored as text or as a real number or boolean.
- Getting the list of top-level keys in a long document before deciding which section to edit.
What it does not do
- Trailing comments are stripped before quote handling, so a hash inside a quoted string truncates the value. The line url: "http://x #y" parses as url: string:"http://x with the closing quote gone.
- Duplicate keys keep the last value with no warning: a: 1 followed by a: 2 on the next line yields a: number:2 and a single top-level key.
- Tab indentation is not counted. a: followed by a tab-indented b: 1 gives a: null and promotes b to a top-level key, which is not what the document means.
- Only this subset is understood. Flow maps like map: {a: 1} stay as one raw string, and block scalars (| and >), anchors, aliases and multi-document streams are not supported at all. A leading zero is also lost, so n: 007 becomes number:7.