YAML syntax validator

Syntax and safety only: encoding, YAML grammar, duplicate keys, aliases and tags — under the profile you pick. Attach a schema later if you need structure checks.

true/false only are booleans; 0o17 is octal; yes/no/on/off are strings.

190 chars · 14 lines · rev 1Not saved yet

Tab inserts two spaces (press Esc then Tab to leave the editor). Drop a file to open it. Positions are line:column in UTF-16 code units.

Paste YAML or open a file to validate

rev 1 · YAML 1.2 · core schema · no schema

  1. —

  2. —

  3. No schema selected

  4. —

Results appear here.

What the syntax layer checks

Grammar errors from the eemeli/yaml document parser with exact character ranges, plus checks many validators skip: every occurrence of a duplicate key (no silent “last one wins”), aliases that point nowhere, cyclic aliases, alias-expansion bombs (bounded at 100,000 extra nodes), and language-constructor tags such as !!python/object, which stay inert data and are flagged.

Each document in a multi-document stream gets its own status. An empty document is reported as “not assessed”, not as a pass.

YAML 1.1 vs 1.2

In YAML 1.1, yes/no/on/off are booleans, 0755 is octal and 22:22 is the base-60 number 1342. In YAML 1.2 core, all three are different. Switch the profile to see how your file changes; the Types tab lists every scalar with its resolved type under both.

Questions

Why are duplicate keys errors?

The YAML spec requires unique keys. Real parsers differ — some keep the first value, most keep the last, strict ones reject the file — so the same file means different things to different tools. We list every occurrence and offer a reviewed fix.

Are tabs allowed in YAML?

Not for indentation. Tabs may appear inside values and as separation after content. A tab used to indent is a syntax error; the suggested fix replaces it with spaces and is marked “meaning may change” because the intended level is a guess.

Is my YAML uploaded anywhere?

No. Parsing, schema validation, rules, fixes and reports all run in your browser (validation runs in a Web Worker). There is no backend, no account and no content analytics. Drafts and history are stored only in this browser’s IndexedDB, and you can clear them or switch to memory-only mode.