Local Tools Online

Text Diff Checker

Paste two versions of a text, file, or block of code and see exactly what changed — additions, deletions, and moved lines highlighted side by side. Comparison happens entirely on your device.

Why this gets used more than you’d expect

Diff tools feel like a niche developer utility until you actually need one, at which point they become indispensable. Comparing two contract drafts, two versions of a config file, two paragraphs of copy someone edited, two CSV exports to spot what changed between them — none of that is exclusively a “coding” task, which is part of why this ends up being one of the more repeatedly-used tools on a site like this rather than a one-off.

How to use it

  1. Paste the original text into the left panel and the modified version into the right panel.
  2. The comparison updates live, with additions highlighted in green and removals in red, aligned line-by-line so you can see exactly where the two versions diverge.
  3. Switch between line-level diffing (compares whole lines — best for code and structured text) and word-level diffing (highlights the specific words that changed within a line — best for prose, contracts, or any text where a single line might contain a small edit buried in otherwise identical content).
  4. Toggle “ignore whitespace” if you’re comparing code where indentation changed but logic didn’t, to cut through noise.
  5. Toggle “ignore case” for situations like comparing user-submitted text where capitalization differences don’t matter to your review.
  6. Export the diff as a unified diff (.diff/.patch format) if you need to hand it off to a version control tool or include it in a code review comment.

Common situations this solves

  • Reviewing what actually changed in a document someone sent back after “just a few small edits” — which is rarely actually a few small edits.
  • Comparing two versions of a config or .env file before a deployment, to catch an accidental value change before it ships.
  • Checking two API responses side by side to debug why behavior differs between environments (staging vs. production, before vs. after a fix).
  • Comparing scraped or exported data (two CSV dumps, two JSON exports) to spot what changed between snapshots without writing a script.
  • Reviewing legal or policy text edits where word-level diffing surfaces a single changed clause buried in an otherwise identical paragraph.

Frequently asked questions

What’s the difference between line-level and word-level diffing, and which should I use? Line-level diffing treats each full line as the unit of comparison — if even one character on a line changes, the whole line shows as removed-and-re-added. This is standard for code, since code review tools work this way. Word-level diffing instead highlights just the specific words that changed within a line, which is far more useful for prose, contracts, or emails where you want to see “this one word changed” rather than “this whole paragraph is different.”

Can this compare entire files, not just pasted text? Yes — you can drag and drop two text-based files (code, .txt, .md, .csv, .json, etc.) directly onto the input panels instead of copy-pasting, and the comparison runs the same way.

Does it handle very long documents, like an entire book chapter or a large log file? Yes, though for extremely large inputs (tens of thousands of lines) the tool may take a moment to render the full diff, and you can use the “collapse unchanged sections” option to keep the view manageable by folding away large stretches with no differences.

Why does a single edited word show as an entire line being removed and re-added? This happens when you’re in line-level mode — switch to word-level diffing, and that same single-word change will highlight just the word itself rather than the entire surrounding line.

Can I use this to generate a patch file for version control? Yes, the export option produces a standard unified diff format compatible with git apply and most patch tools, useful if you’re comparing two versions of a file outside of a git workflow but still want a proper patch.