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.
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
| Error | Cause | Fix |
|---|---|---|
| Tab used for indentation | A tab character where spaces belong | Replace tabs with spaces (2 is common) |
| Inconsistent indentation | Sibling keys not aligned to the same column | Align every sibling to the same indent |
| Missing space after colon | Written as key:value instead of key: value | Add a space: "key: value" |
| Duplicate mapping key | The same key appears twice in one map | Rename or remove the duplicate |
| Unquoted special character | A value starts with @, `, or contains : or # | Wrap the value in quotes |
| Wrong list indentation | A "- item" not aligned under its key | Indent list items under the parent key |
Frequently asked questions
Related developer tools
Base64 Encoder / Decoder
Encode and decode Base64 - text, files, and data URIs - with URL-safe and UTF-8 support.
SSH Config Generator
Build a clean ~/.ssh/config from hosts, ports, identities, and jump hosts.
SCP / Rsync Builder
Construct scp and rsync file-transfer commands without memorizing the flags.
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