Free tool · Runs in your browser

Free YAML Validator & Linter with Kubernetes Schema Checks

Paste YAML and check it instantly - a real parser flags syntax errors with the exact line and column, and the tool auto-detects Kubernetes manifests, Docker Compose files, GitHub Actions workflows, and Ansible playbooks to check their required fields too. Everything runs in your browser; nothing is uploaded.

Validation runs entirely in your browser - your YAML is never uploaded. Safe for configs, secrets, and manifests.

Try:
Format:
YAML input
Result
Paste YAML on the left. Validation runs live as you type.

What a YAML validator checks

This tool parses your input with a real YAML engine (the same class of parser your applications use), not a regex, so it catches every well-formedness problem the spec defines: broken indentation, tabs used for indentation, unbalanced flow collections, bad anchors and aliases, and duplicate keys. If anything is wrong, you get the exact line and column and the offending line is highlighted so you can fix it without hunting.

On top of the parser, a lightweight linter flags things that are technically valid but usually mistakes - trailing whitespace, Windows line endings, over-long lines, and a missing space after a colon. Those show up as amber suggestions rather than hard errors, so you see the full picture at once.

Need the same data in a different shape once it parses clean? The YAML to JSON converter and JSON to YAML converter handle the round trip.

The most common YAML errors (and how to fix them)

Nearly every invalid YAML file fails for one of a handful of reasons. Tabs are the classic one: YAML forbids tab characters for indentation, so a single tab breaks the whole document - use spaces. Inconsistent indentation is next: every sibling key or list item must line up at the same column, and mixing 2 and 4 spaces at the same level confuses the parser.

A missing space after a colon ( key:value instead of key: value ) turns a mapping into a plain string. Duplicate keys in the same map are rejected outright. And values that start with a special character ( @, &, * ) or contain a : or # often need quotes to be read as text.

Validating multi-document files (Kubernetes, CI pipelines)

A single YAML file can hold several documents separated by ---. This is how Kubernetes manifests pack a Namespace, a ConfigMap, and a Deployment into one file, and how some CI configs are organized. The validator parses the whole stream, reports how many documents it found, and points any error at the right line across all of them - so you do not have to split the file to find the broken part.

Two-stage validation: syntax first, then schema checks

A file can be perfectly valid YAML and still be a broken Kubernetes manifest or GitHub Actions workflow, so this tool validates in two stages. Stage one checks that your YAML is well formed against the YAML spec. If that passes, stage two auto-detects the document type - Kubernetes, Docker Compose, GitHub Actions, or Ansible - and checks the fields that format requires.

It catches the classics: a Deployment missing spec.selector, a Compose service without image or build, a workflow job that lost its indentation and escaped the jobs: block, or an Ansible play whose tasksis not a list. Each error is actionable and comes with a corrected YAML example. These are required-field checks, not a full replacement for your platform's own schema validation - the cluster or CI runner still has the final word.

Is it safe to paste secrets or config here?

Yes. Validation runs 100% in your browser with no network calls - you can confirm it with the browser's network tab open, and it keeps working offline. Nothing you paste, upload, or format ever leaves the page, which is why it is fine for real manifests, environment files, and CI configs that contain secrets.

Common YAML errors at a glance

ErrorCauseFix
Tab used for indentationA tab character where spaces belongReplace tabs with spaces (2 is common)
Inconsistent indentationSibling keys not aligned to the same columnAlign every sibling to the same indent
Missing space after colonWritten as key:value instead of key: valueAdd a space: "key: value"
Duplicate mapping keyThe same key appears twice in one mapRename or remove the duplicate
Unquoted special characterA value starts with @, `, or contains : or #Wrap the value in quotes
Wrong list indentationA "- item" not aligned under its keyIndent list items under the parent key
YAML validation FAQ

Frequently asked questions

Paste your YAML into the left pane. Validation runs live as you type - the right panel shows a green Valid or red Invalid verdict, the exact line and column of any error, and lint suggestions. There is no button to press and nothing is uploaded.
The most common causes are a tab used for indentation, inconsistent indentation between sibling keys, a missing space after a colon, a duplicate key, or a special character that needs quotes. The validator shows the exact line and column and highlights the offending line so you can fix it fast.
No. YAML forbids tab characters for indentation - you must use spaces. A single tab in the indentation will make the document fail to parse. This tool flags tab-indented lines specifically so you can spot and replace them.
A validator answers a yes/no question: does this parse as valid YAML? A linter goes further and flags style and quality issues that are technically valid but usually mistakes, like trailing whitespace, Windows line endings, or over-long lines. This tool does both at once.
Yes. After the syntax check passes, the tool auto-detects the document type and runs required-field checks: Kubernetes manifests need apiVersion, kind, and metadata; Compose services need image or build; workflow jobs need runs-on and steps; Ansible plays need hosts and list-shaped tasks. Files that pass show a type-aware verdict like "Valid Kubernetes Manifest".
Paste the manifest and the validator auto-detects it as Kubernetes (via apiVersion and kind), checks the whole multi-document stream, and verifies required fields: apiVersion, kind, metadata with a name, and for Deployments spec.selector and spec.template. Missing fields are reported with a corrected YAML example. It is a required-field check, not a full OpenAPI schema validation.
No. The same key appearing twice in one mapping is rejected as invalid, because it is ambiguous which value wins. This validator treats a duplicate key as a hard error and points you at the line so you can rename or remove it.
Yes. Documents separated by --- are all parsed as a single stream. The result panel reports the document count, and any error is pinned to the correct line across the whole file, so you never have to split it apart to debug.
Yes. Validation runs entirely client-side with no uploads or network calls, which you can verify in the browser network tab, and it works offline. Your YAML never leaves your machine, so it is safe for manifests, .env files, and secrets.
Yes. When your YAML is valid, the Format button reformats it with clean, consistent indentation (2 or 4 spaces) and normalized structure. Then copy it to your clipboard or download it as validated.yaml. Formatting only runs on valid input, so fix any errors first.
Configs live on servers

Validate the config, manage the servers.

CtrlOps is a modern SSH workspace for the machines your YAML deploys to - organized hosts, secure key management, and instant terminals. Check the manifest here, apply it on the server in one click.

Start instantly· No credit card· No sneaky autorenewals