YAML Validator, Formatter and Linter

Syntax errors with line and column. Pretty-print with 2- or 4-space indent, or compact flow style. JSON Schema Draft-07. Lint duplicate keys, tabs, and alias chains. YAML 1.2 — yes/no are not booleans. YAML stays in your browser — nothing is uploaded.

Validate YAML — line and column

Paste or type YAML 1.2 and get syntax errors with a line and column. Open a finding to jump to that spot in the editor.

Format and compact

Pretty-print with 2- or 4-space indent, or compact to flow style. Formatting runs only when the document is valid YAML. Output is a round-trip dump, not byte-identical.

JSON Schema (Draft-07)

Paste a schema as JSON or YAML to check the parsed value. Schema checks use JSON Schema Draft-07. Remote $ref values are not fetched.

Lint keys, indentation, and aliases

Duplicate keys are reported even when a parser keeps the last value. Tabs are not valid indentation. Alias cycles and chains that would expand without bound are reported.

YAML 1.1 booleans are not applied

This tool uses YAML 1.2. Words such as yes, no, YES, NO, on, and off stay strings. They are not booleans. true and false (any casing of those two words) are booleans. The YAML 1.1 merge key << is not applied.

Your YAML never leaves the browser

Validation, formatting, and schema checks run on your device. Nothing is uploaded.

Duplicate keys

YAML requires unique keys. This linter reports every occurrence. The parsed value keeps the last one, the same way many parsers do.

Tabs vs spaces

YAML forbids tabs for indentation. A tab, or a mix of tabs and spaces, is reported with line and column. Use spaces (2 or 4).

Alias chains

Anchors and aliases are allowed. Cycles and chains that expand into a very large value are reported so a document cannot blow up in the browser.

yes / NO are not booleans

Under YAML 1.2 those words stay strings. This tool does not apply the YAML 1.1 rule that turns yes, no, on, and off into booleans.

Draft-07

Schema checks use JSON Schema Draft-07. The schema may be pasted as JSON or as YAML. Remote $ref is not loaded.

Upload

YAML stays in the browser. Nothing is uploaded.