How to compare YAML files
Add both YAML files
Drop .yml or .yaml files, or paste the content. Files with several documents separated by --- are supported.
Adjust the options
Choose how list items are matched, and list any keys to skip, like generated timestamps.
Check the changes
Every change shows its path, like database.pool or services.web.ports[0], with the old and new values.
What Matchcheck does
Settings, not syntax
Reordered keys and edited comments don't count, so you see only the changes that affect behaviour.
Works with real configs
Kubernetes manifests, Docker Compose files, GitHub Actions workflows, Ansible playbooks and app settings all compare cleanly.
Precise paths
Changes are shown as paths like spec.containers[name=web].image, so you can find them quickly.
Private by design
Config files often hold hostnames and secrets. Matchcheck compares them on your device and never uploads them.
Questions and answers
Are comments compared?
No. Comments are ignored because they don't change how the file is read. Use the text comparison if you want to see comment changes too.
Does quoting matter?
Only when it changes the type of a value. 'web' and "web" are the same, but "8080" (text) and 8080 (a number) are flagged, because many programs treat them differently.
Can it compare Helm charts?
Plain YAML, yes. Helm templates with {{ }} placeholders aren't valid YAML until they're rendered, so compare the rendered output, or use the text comparison.
Are anchors and aliases supported?
Yes. Anchors and aliases are expanded, so you compare the values the file really produces.
More comparison tools
Compare JSON
Spot added, removed and changed keys and values, even when the order is different.
Compare XML files
Find missing, added and changed elements and attributes between two XML files.
Compare text
Compare any two texts or code files line by line, with changed words highlighted.
Compare CSV files
Find added, removed and changed rows and cells between two CSV files.