Line, word, or character diffing for text and 12+ languages, with order-independent CSS/JSON matching — all instant, in your browser.
Saved only on this device. Export the JSON file and import it on another device or browser to bring your history along.
Yes. It compares plain text, so it works with HTML, CSS, JavaScript, SQL, Python, Java, C/C++, Go, shell scripts, JSON, XML, and YAML, with extra language-aware options for the trickiest cases like CSS and JSON.
No. It only reads and compares content in your browser. Nothing is changed, uploaded, or stored anywhere except your own device's local history, if you choose to save it.
Yes, though very large inputs (tens of thousands of lines) may run slower since everything is computed in your browser rather than on a server.
Version control systems store a full history of revisions over time. This tool compares two blocks of text you paste or upload right now — the two work well together.
Yes. Turn on "Ignore order" for CSS to sort rules before comparing, or "Sort JSON keys" for JSON, so reordering alone doesn't show up as a change.
You can, but expect many highlighted changes since whitespace differs throughout. Beautifying both sides first usually gives a more meaningful diff.
No. History is stored only in your browser's local storage. Export it as a JSON file and import that file on another device or browser to bring your history with you.
Yes. When Python is selected, leading indentation is treated as meaningful and isn't stripped by whitespace-normalization options, since indentation changes what the code does.
Yes. Choose Unified Patch (.patch) from the download menu for a standard unified-diff format, or download a plain text or HTML report instead.
All tools are free. If they've saved you time, consider supporting us.