Covers the YAML subset used in config files: maps, sequences, nesting, inline flow style, comments and typed scalars. Anchors, aliases, multi-document streams and block scalars are not supported — see the FAQ.
How it works
YAML is a superset of JSON
Every valid JSON document is also valid YAML. That is why the JSON → YAML direction always works, while the reverse depends on which YAML features the document uses. JSON has four scalar types; YAML adds typed scalars, comments, anchors, aliases, multiple documents in one stream and several multi-line string forms.
The Norway problem, and why quoting matters
YAML 1.1 treated yes, no, on, off, y and n as booleans. The famous consequence: a country list containing NO for Norway parses as false. YAML 1.2 narrowed booleans to true and false, but many parsers still implement 1.1 behaviour.
Related traps: a version number like 1.10 becomes the float 1.1, a value like 08 may be rejected as an invalid octal, and a MAC address or time value can be read as a sexagesimal number. Quote any string whose meaning you care about. This tool treats only true/false/yes/no as booleans, and shows you the parsed result so you can spot the problem.
Indentation rules
YAML uses indentation for structure and tabs are forbidden — a tab where a space is expected is a parse error in strict parsers. This tool converts tabs to two spaces before parsing so you can still read the file, but fix the source. Indentation must be consistent within a block; the amount is up to you, and two spaces is the common choice.
What people use it for
- Checking what a CI config actually parses to — GitHub Actions, GitLab CI, CircleCI.
- Reading a Kubernetes manifest as JSON to query it or feed it to a validator.
- Converting a config file when moving between tools that prefer different formats.
- Debugging a quoting bug where a value is being read as the wrong type.
- Turning a JSON API response into YAML for a more readable config or example.
Nothing is uploaded. This tool runs entirely in JavaScript in your browser. Your input is never sent to a server, never logged and never stored, and no account is required. Once the page has loaded you can go offline and it still works — open your browser's network tab and watch if you'd like to confirm it.
Frequently asked questions
Why did my value change type?
YAML infers types from unquoted scalars. The classic case is NO for Norway becoming the boolean false, and a version like 1.10 becoming the float 1.1. Quote any string whose exact value matters. This tool shows the parsed result so the problem is visible.
Does this support anchors and aliases?
No. Anchors (&name), aliases (*name) and merge keys (<<:) are not supported, nor are multi-document streams separated by --- or block scalars using | and >. This tool covers the subset that appears in ordinary config files.
Can I use tabs for indentation?
Not in real YAML — tabs are forbidden as indentation and strict parsers reject them. This tool converts tabs to two spaces before parsing so you can still see the structure, but you should fix the source file.
Is every JSON document valid YAML?
Yes, YAML 1.2 is a superset of JSON, so the JSON to YAML direction always succeeds. The reverse depends on which YAML features the document uses.
Is my config uploaded anywhere?
No. This tool runs entirely in your browser. Nothing is uploaded, which matters when the thing you are formatting is a production config or a payload with real data in it.
Tools that run where your code is
This page does its work in your browser because sending your data to a server to process it is a bad default. Catalase applies the same idea to AI coding: a free, open-source code editor that runs language models on your own machine through Ollama, with no account and no telemetry. Cloud models are there when you choose one, not by default.
Related tools
- YAML formatter — Tidy YAML and check that it parses.
- JSON to CSV — Flatten JSON into rows.
- XML to JSON — Convert XML documents to JSON.