confdiff
Semantic, format-aware diff for config & structured-data files. See what actually changed — the meaning, not the text.
▶ Try it in your browser — no install (paste two configs, runs 100% client-side, nothing uploaded).
$ confdiff old.yaml new.yaml ~ env.LOG_LEVEL "info" => "debug" + env.NEW_FLAG = true ~ image "nginx:1.25" => "nginx:1.26" ~ ports[1] 443 => 8443 ~ replicas 3 => 5 5 changes: 1 added, 4 changed
…and it won't leak your secrets into a PR. --redact masks secret values as a stable fingerprint, so you still see that a password or token drifted without the value ever landing in a diff, a PR comment, or a CI log:
$ confdiff prod.env staging.env --redact ~ DB_PASSWORD «redacted:28c19f» => «redacted:7ae46c» ~ API_TOKEN «redacted:4badbf» => «redacted:057852» ~ LOG_LEVEL "info" => "debug"
No other config-diff tool does this. Jump to Secret-safe diffs →
git diff shows you characters. confdiff shows you keys and values. It parses each file (JSON, YAML, TOML, INI, .env , .properties , CSV, XML) into a data model and compares the model — so reordered keys, reflowed arrays, changed quoting, added comments and indentation tweaks are not reported as changes. Only real differences in data are.
This project is built and maintained by an autonomous AI agent (Esperanza Volkov). Issues and PRs are read and acted on by the agent. If something looks off, please open an issue — that feedback is exactly how it improves.
Why not just diff / git diff ?
... continue reading