Developer Tools
YAML Diff Checker
Compare two YAML documents structurally in your browser. Dotted paths for added, removed, and changed entries plus a side-by-side annotated view.
Compare
Two YAML documents, structurally
Summary
10 differences found.
Differences
- Added$.metadata.labels.version
"v2"
- Changed$.spec.replicas
Left
3
Right
5
- Changed$.spec.template.spec.containers[0].image
Left
"ghcr.io/example/web:1.2.0"
Right
"ghcr.io/example/web:1.3.0"
- Changed$.spec.template.spec.containers[0].env[0].value
Left
"info"
Right
"debug"
- Changed$.spec.template.spec.containers[0].env[1].value
Left
"false"
Right
"true"
- Added$.spec.template.spec.containers[0].env[2]
{Object(2)}
- Changed$.spec.template.spec.containers[0].resources.requests.cpu
Left
"100m"
Right
"200m"
- Changed$.spec.template.spec.containers[0].resources.requests.memory
Left
"128Mi"
Right
"256Mi"
- Changed$.spec.template.spec.containers[0].resources.limits.cpu
Left
"500m"
Right
"1000m"
- Changed$.spec.template.spec.containers[0].resources.limits.memory
Left
"256Mi"
Right
"512Mi"
Side-by-side view
Lines highlighted by status: added, removed, changed. The render is normalized YAML built from the parsed structure, so equivalent inputs with different formatting still align.
Left (original)
apiVersion: apps/v1kind: Deploymentmetadata:name: weblabels:app: webtier: frontendspec:replicas: 3selector:matchLabels:app: webtemplate:metadata:labels:app: webspec:containers:- name: webimage: "ghcr.io/example/web:1.2.0"ports:- containerPort: 8080env:- name: LOG_LEVELvalue: info- name: FEATURE_Xvalue: "false"resources:requests:cpu: 100mmemory: 128Milimits:cpu: 500mmemory: 256Mi
Right (compared)
apiVersion: apps/v1kind: Deploymentmetadata:name: weblabels:app: webtier: frontendversion: v2spec:replicas: 5selector:matchLabels:app: webtemplate:metadata:labels:app: webspec:containers:- name: webimage: "ghcr.io/example/web:1.3.0"ports:- containerPort: 8080env:- name: LOG_LEVELvalue: debug- name: FEATURE_Xvalue: "true"- name: API_BASE_URLvalue: "https://api.example.com"resources:requests:cpu: 200mmemory: 256Milimits:cpu: 1000mmemory: 512Mi
What the YAML diff covers
- Block mappings (key: value) and block sequences (- item) nested by indentation.
- Flow style mappings ({a: 1}) and flow sequences ([1, 2, 3]).
- Plain scalars, single-quoted scalars, and double-quoted scalars with escape sequences.
- Literal (|) and folded (>) block scalars with strip and keep chomping.
- YAML 1.2 core schema types: null, true, false, integers, floats, infinity and NaN.
- Anchors (&name) and aliases (*name) are resolved before diffing.
- Comments (#) and document separators (---) are accepted and ignored for the structural compare.
- Errors include line and column numbers so you can jump straight to the offending character in your editor.
How to use
- Paste the original YAML into the Left input and the YAML you want to compare into the Right input.
- Use Load sample to see a Kubernetes Deployment example, or Swap sides to flip which side counts as the original.
- Toggle Treat sequences as sets when list order does not matter, or Ignore case and Ignore whitespace to normalize string scalars before comparing.
- Read the Differences list to see every added, removed, or changed path; use the All, Added, Removed, and Changed filters to focus on one type at a time.
- Use the Side-by-side view to scan normalized YAML for both inputs with diff highlights, then click Copy patch to grab the full diff or Copy path on a single entry.
About this tool
YAML Diff Checker compares two YAML documents structurally and shows every difference between them. Paste an original on the left and a compared version on the right; the tool parses both with a built-in YAML 1.2 core-schema subset parser that handles block mappings, block sequences, flow collections, plain and quoted scalars, literal and folded block scalars, anchors, aliases, comments, and document separators. The two parsed values are walked in parallel and every leaf path is classified as added (only on the right), removed (only on the left), or changed (same path, different scalar or kind). Object keys are matched by name, so reordering keys does not show up as a difference, and sequences are compared positionally by default because order is part of the meaning of a YAML list. A Treat sequences as sets toggle switches to multiplicity-based comparison for cases where you only care whether each element exists on both sides. Two additional options, ignore case and ignore whitespace, normalize string scalars before comparing so cosmetic edits do not surface as content changes. Results are presented in three layers: a summary with counts for added, removed, changed, and equal entries; a filterable list of differences keyed by dotted paths with before and after previews; and a side-by-side annotated render that pretty-prints both sides as normalized YAML with every line tagged by status so you can see structure and content at the same time. Built for Kubernetes manifest review, Helm values comparison, GitHub Actions and GitLab CI pipeline drift detection, Docker Compose file audits, OpenAPI specification migration, Ansible playbook review, application configuration diffs, and any situation where you need to know exactly what differs between two YAML documents without eyeballing them line by line. Parsing and diffing happen entirely in your browser, so the YAML you paste never leaves your device.
Free to use. Works in your browser. No signup, no login.
Related tools
You may also like
JSON Diff Checker
Structural compare with paths for added, removed, and changed values.
Open tool
DeveloperCSV Diff
Key-aware CSV compare with added, removed, and changed rows.
Open tool
TextText Diff
Side-by-side line, word, and character diff with a unified patch.
Open tool
DeveloperYAML Formatter
Pretty print and validate YAML with consistent indent, sorted keys, and clear errors.
Open tool
ConverterYAML to JSON Converter
Two-way YAML and JSON converter with anchors, flow, and block scalars.
Open tool
ConverterJSON to YAML Converter
Convert JSON into YAML with block or flow style and smart quoting.
Open tool