Text Diff Checker
Compare two blocks of text line by line and see exactly what was added, removed, or unchanged — free, private, and works entirely in your browser.
Comparison is line-by-line, not word-by-word or character-by-character — a single changed word still marks the whole line as different.
Lines are compared exactly as typed, including leading/trailing spaces and capitalization — there is no "ignore whitespace" or "ignore case" option.
Similarity percentage is unchanged lines divided by the longer side's total line count.
The diff uses the same longest-common-subsequence method as the standard Unix `diff` tool, so results match what most developers already expect.
The comparison runs entirely in your browser as you type — neither text is ever uploaded to a server.
Paste the older version as "Original" and the newer one as "Changed" — the +/- signs in the diff only make sense in that direction.
Spotting exactly what changed between two drafts of a document, two versions of a config file, or two paragraphs of copy.
How it works
What a text diff checker actually compares
A text diff checker answers one question precisely: which lines are the same between two versions of a document, and which ones changed? This tool compares your two inputs line by line and shows you exactly that — nothing is summarized or guessed.
The comparison uses the same underlying method as the standard Unix diff command: it finds the longest common subsequence of lines that appear, in order, in both texts. Every line not part of that shared sequence is either something that was removed from the original or something newly added in the changed version.
Reading the output
The diff below the summary uses three simple prefixes:
| Prefix | Meaning |
|---|---|
| ` ` (no marker) | The line appears unchanged in both texts |
| `- ` | The line was in the original but not the changed text — it was removed |
| `+ ` | The line is in the changed text but not the original — it was added |
This is the same convention used by git diff and most code-review tools, so if you have ever reviewed a pull request, the output here will already look familiar.
Why a changed line shows as a removal *and* an addition
This is the detail that trips people up first. The algorithm compares whole lines, not the words inside them — so if line 12 of your original reads "The quick brown fox" and the changed version reads "The quick red fox," those are two *different* lines as far as line-by-line comparison is concerned. The tool shows this as one line removed (the old wording) immediately followed by one line added (the new wording), even though only one word actually changed. If you need to see exactly which word changed, look at the removed and added line together — they will usually be adjacent, one right after the other, and the change is obvious by eye at that point.
What counts as "different"
Comparison is exact: two lines that differ only in trailing whitespace, capitalization, or an extra blank line are still counted as different. There is no "ignore case" or "ignore whitespace" toggle. This is a deliberate trade-off — a diff tool that silently ignored whitespace could hide a real, meaningful change (a trailing space in a CSV file, a capitalization fix in a legal document), and the honest default is to show you everything and let you judge what matters.
Similarity percentage
The headline similarity figure is the count of unchanged lines divided by whichever text is longer, expressed as a percentage. Two identical texts score 100%. A single-line change in a 100-line document scores roughly 99%, since 99 of the 100 lines in the longer text are still unchanged. This is a useful *at-a-glance* signal for "how different are these, roughly" — it is not a measure of how much the *meaning* changed. A one-word edit that flips a number's sign, or negates a sentence, registers as a tiny difference in line count even though it may completely reverse the meaning of the document. Read the actual diff, not just the percentage, before concluding two documents say the same thing.
What this tool is not
This is a line-level diff, not a word-level or character-level one. If you need to see precisely which characters changed inside a single sentence, this tool will show you that the line changed, but not highlight the specific word — you will need to read the before/after line pair and spot the difference yourself. For most real comparison tasks — checking what changed in a config file, a contract clause, an article draft, or a list of values — line-level comparison is exactly the right granularity, because it mirrors how the document is actually structured and edited.
Common uses
- Comparing two drafts of writing to see exactly which paragraphs or sentences were rewritten.
- Checking a config file or environment variable list for what changed between two deployments.
- Reviewing a data export (CSV rows, log lines, a list of settings) line by line for unexpected changes.
- Confirming a "find and replace" only touched the lines it was supposed to by comparing before and after.
Everything runs the moment you paste — neither text is uploaded, logged, or stored, so pasting a contract, private notes, or an unpublished draft is safe from this page's side.
FAQ
Why does a single changed word show as a whole line removed and added?
The comparison works line by line, not word by word. If any part of a line differs, the whole line counts as changed — shown as the old version removed and the new version added, usually right next to each other in the output. Reading the two adjacent lines together shows exactly which word changed.
Is the comparison case-sensitive?
Yes. "Hello" and "hello" are treated as different lines. There is no case-insensitive mode — the tool shows every difference exactly as typed rather than silently hiding ones it guesses do not matter.
Does it ignore extra whitespace?
No. A line with a trailing space is technically different from the same line without one, and this tool will flag it. This is deliberate: silently ignoring whitespace could hide a real, meaningful change in some documents.
What does the similarity percentage actually measure?
The number of unchanged lines divided by whichever input has more lines, as a percentage. It is a rough size-of-change indicator, not a measure of how much the meaning changed — a tiny edit that flips a critical word can still show a very high similarity score, so always check the actual diff too.
Can I compare two files, not just pasted text?
Paste the contents of each file into the two boxes. There is no file upload — everything is typed or pasted text, which is also what keeps the comparison entirely private to your browser.
Which text should go in "Original" versus "Changed"?
Put the earlier version in "Original" and the newer one in "Changed." The +/- markers are directional: a line prefixed with - was in the original and removed; a line prefixed with + is new in the changed version. Swapping the two boxes reverses every +/- marker.
Why do reordered lines show as removed and re-added instead of "moved"?
The underlying algorithm finds the longest sequence of lines common to both texts in their original order — it does not have a concept of a line "moving." If you reorder two lines, the comparison will typically show one as removed from its old position and added at its new one, since that is the smallest true difference between the two orderings.
Is there a limit to how much text I can compare?
Yes — up to 2,000 lines per side. The comparison algorithm slows down proportionally to the number of lines in each input multiplied together, so this cap keeps every comparison fast, and covers any document you would realistically paste into a browser textarea.
Is my text uploaded anywhere?
No. The entire comparison runs in your browser. Neither text is uploaded, logged, or stored, so pasting a contract, private notes, or unpublished writing is safe from this page's side.
Can this compare code files?
Yes — the line-by-line method is exactly how tools like `git diff` compare source code. Paste two versions of a file to see precisely which lines changed, were added, or were removed.