Developer Tools
YAML Merger
Merge two YAML files in your browser. Deep or shallow, choose how sequences combine, control conflicts, sort keys, copy the result.
Merge
Two YAML files into one
Merged result
14 merged, 3 base-only, 1 overlay-only, 7 overrides, 2 sequence merges
image:
repository: nginx
tag: "1.27.3"
pullPolicy: Always
replicaCount: 6
service:
type: ClusterIP
port: 443
resources:
limits:
cpu: "1"
memory: "512Mi"
requests:
cpu: "100m"
memory: "64Mi"
ingress:
enabled: true
hosts:
- host: app.example.com
paths:
- /
- /api
className: nginx
env:
- name: LOG_LEVEL
value: warn
- name: FEATURE_FLAG_X
value: enabled
How to use
- Paste the base YAML on the left and the overlay YAML on the right. Click Load sample for a worked Helm values example you can edit.
- Turn Deep merge on to combine nested mappings field by field, or off for a top-level shallow merge that replaces entire child mappings.
- Pick the conflict policy: Overlay wins for standard overrides, Base wins for defaults, or Show conflicts to surface every disagreement.
- Pick the sequence strategy: Replace, Concat, Union with dedupe, Merge by index, or Keep base, depending on how the two lists should combine.
- Choose the null policy: null overwrites lets you erase a value with an explicit null on the overlay, null ignored protects defaults from accidental nulls.
- Toggle Sort keys alphabetically for a canonical key order, pick a 2 or 4 space indent, then Copy YAML or click Use as new base to chain another overlay on top.
About this tool
YAML Merger combines two YAML inputs (the Base, your defaults, and the Overlay, your environment override) into a single merged YAML document with explicit, predictable rules. Deep merge recurses into nested mappings so Helm values files, Kubernetes manifests, Docker Compose files, Ansible group_vars and host_vars, GitHub Actions and GitLab CI workflows, and OpenAPI specs combine field by field; shallow merge replaces the entire child mapping whenever the key exists on both sides. The conflict policy controls what happens when both sides hold a scalar at the same path: Overlay wins is the default and matches kustomize patches, docker-compose.override.yml, Helm values overrides, and Ansible host_vars precedence; Base wins keeps the default value and treats the overlay as a fallback; Show conflicts merges with overlay-wins and lists every disagreeing path so you can resolve them by hand. Sequence strategy decides how two YAML lists combine at the same key: Replace and Keep base treat sequences as opaque values, Concat appends one to the other, Union concatenates and drops duplicates using a canonical representation so {a: 1, b: 2} and {b: 2, a: 1} are recognised as the same item, and Merge by index walks the two sequences position by position and merges each pair using the same rules. The null policy controls whether a null on the overlay erases the base value (the typical config-override behavior) or is treated as a missing slot so a sparse overlay never clobbers a real default. Sort keys alphabetically produces a canonical key order across the whole tree, which is ideal when the merged YAML is going into a snapshot test, a Git commit, or a side-by-side diff against a base file. The output supports 2 or 4 space indents, and a Use as new base button lets you chain a third, fourth, or fifth YAML file on top of the running result so multi-file overlays stay deterministic. Parsing and merging both run in your browser via a hand-rolled YAML 1.2 core-schema subset parser, so values, secrets, and any data you paste here stay on your device. Anchors and aliases are resolved on parse. Comments are not preserved on emit; the merged output is a fresh, normalized YAML document.
Free to use. Works in your browser. No signup, no login.
Related tools
You may also like
YAML Formatter
Pretty print and validate YAML with consistent indent, sorted keys, and clear errors.
Open tool
DeveloperYAML Validator
Strict YAML validation with line and column errors and human-readable hints.
Open tool
DeveloperYAML Diff Checker
Structural compare for YAML with paths for added, removed, and changed values.
Open tool
ConverterYAML to JSON Converter
Two-way YAML and JSON converter with anchors, flow, and block scalars.
Open tool
DeveloperJSON Merger
Deep or shallow JSON merge with array, conflict, and null policies.
Open tool
DeveloperJSON Diff Checker
Structural compare with paths for added, removed, and changed values.
Open tool