Choose the real dialect
Both sides use one selected format. A dotted Properties key is one literal name; an INI section is a container. Changing the selector does not rewrite input, so use Example to review a valid pair for that format.
Configuration review
Compare two configurations of the same format; choose what the review report may reveal.
Both inputs are processed in this browser; no content is uploaded.
Inputs remain visible. Paths remain visible unless hidden. Hiding paths also masks whole object/array values, even when value masking is off.
Key order and comments are ignored. Arrays use positions. TOML integers and floats differ; floats use binary64, including rounding and underflow to zero.
Each side: 500,000 characters / 2 MB UTF-8, 50,000 nodes, depth 100. Up to 5,000 changes; 4 million report characters; 5-second worker timeout.
Enter configurations or run a comparison.
Config diff is useful when a deployment review gets buried in reordered settings. A moved TOML key remains the same setting, while a missing INI key or a changed Properties value deserves its own entry.
Use TOML diff, INI diff or compare properties files in one workbench. To compare config files reliably, select their actual format: this page never guesses a dialect or converts one side into another format.
Review meaning, then choose what to share
Config diff matches table keys rather than lines. Reordering a service block creates no false addition, while a changed value or removed setting remains in the report. Arrays keep their ordered meaning.
All result values are masked by default. The same report supplies the screen, clipboard and download, so a masked preview cannot silently produce an unmasked export. Hide paths too when names contain confidential information.
The settings that change how a review should be read
Both sides use one selected format. A dotted Properties key is one literal name; an INI section is a container. Changing the selector does not rewrite input, so use Example to review a valid pair for that format.
Before → After determines additions and removals. Swap first opens a replacement preview. Value masking changes only the report, not comparison equality; hiding paths also hides container payloads that could expose child names.
Automatic comparison waits 350 ms after edits. Turn it off to run Compare or Ctrl/Cmd+Enter. Editing immediately disables stale exports; replacement actions offer one Undo that restores inputs and the corresponding report.
Distinct states stay distinct
Tables match exact, case-sensitive keys without considering their order. Arrays match by index: insertion can change later positions. Missing keys, empty strings, empty tables and empty arrays remain different states.
TOML signed 64-bit integers retain every digit, including values beyond JavaScript’s safe integer range. Integer 1 and float 1.0 have different types; negative and positive floating zero are also different.
Changes include added, removed or changed status and the before/after types. Unmasked source representations are strings in JSON, keeping integer digits intact. An entire added or removed container counts as one entry.
Masking replaces complete values, not just guessed password fields. Hiding paths removes their names from the report and forces container values to stay masked. Scalar values still follow the value switch.
Read these before treating two files as equivalent
Practical review situations
A key present only on Before is removed; a key present only on After is added. Config diff preserves an empty value as an existing setting, so an empty string is not mistaken for a missing key. Swapping inputs reverses the direction.
No. Table keys are matched by exact name regardless of order. An array item is matched by position, however, so moving an array element can produce several changed entries. The report does not guess which item moved.
Yes within the documented subset: strings, booleans, integers, finite floats, arrays and tables retain their types. Integer 1 differs from float 1.0. Dates and non-finite floats produce an error rather than an invented equivalent.
Comments are always excluded because the comparison uses parsed structures. Changes only to comments or key order produce no entries. It is unsuitable for reviewing comment edits or the exact formatting of a configuration file.
Choose one local UTF-8 file in each input panel. Each replacement is previewed before Apply, and Undo restores the prior inputs and report. File extension does not select the format automatically; choose the matching format yourself.
Have a different configuration case?
Use Config diff to identify structural changes, inspect the supported types and choose what your report reveals before sharing it.
Review the report’s visibility before sharing it.