Last updated: November 7, 2026
Compare two texts by line, word or character. Changes show as you type and nothing leaves your browser.
Private by design. Everything runs in your browser and is never uploaded.
Text compare means checking two versions of a text against each other and marking what changed. A text compare tool, also called a diff checker, lines up the original and the changed version and highlights what was added, removed and left unchanged, so the changes are easy to spot.
This tool works while you type. It compares by line, word or character, looks for a shortest list of edits with the Myers O(ND) algorithm, and can ignore case, spacing and blank lines. If you only want to change capitalization rather than find differences, the case converter does that in one click. It can also compare two strings of 0s and 1s character by character, and the binary to text converter decodes them first. If you are comparing drafts of a poem or lyrics, the syllable counter shows how each version scans.
| Original | Changed | Mode | What you see |
|---|---|---|---|
| The cat sat on the mat | The dog sat on the mat | Words | The |
| Send it today | Send it today please | Words | Send it today please |
| Call me tomorrow | Call tomorrow | Words | Call |
| Total: $45.00 | Total: $54.00 | Words | Total: $ |
| recieve the form | receive the form | Characters | rec |
| Hello World | hello world | Words, ignoring case | No differences found |
Four steps, and the result updates as you type.
Put the original on the left and the changed version on the right, or open a text file for either side. Both stay in your browser.
Lines suits lists, code and documents, Words suits prose, and Characters suits short strings. Lines mode also highlights the changed words inside each changed line.
Switch on Case, Whitespace, Trim lines or Blank lines to hide differences you do not care about. If the texts match only because of what you ignored, the tool says so.
Removed text is marked with a minus sign or a strikethrough, added text with a plus sign or an underline. Use Next and Previous to jump between changes, then copy or download the result.
Every mark has a shape as well as a color, because color alone should not carry meaning.
| Mark | What it means | In a unified diff |
|---|---|---|
| − and |
Text that is in the original but not in the changed version. | A line that starts with a minus sign. |
| + and underlined text | Text that is only in the changed version. | A line that starts with a plus sign. |
| No mark | Text that is the same in both versions. | A line that starts with a space. |
| hatched empty cell | No matching line on this side, because a line was added or removed. | Not shown. |
| ↵ → ␣ · | A line break, tab, non-breaking space or zero-width space that is part of a change, drawn so you can see it. | The character itself. |
| Change 3 of 12 | Where you are when you use Next and Previous. | One @@ group can hold several changes. |
| Diff line | What it means |
|---|---|
--- original |
Names the original text. |
+++ changed |
Names the changed text. |
@@ -1,5 +1,5 @@ |
Starts a group of changes. It begins at line 1 and covers 5 lines of the original and 5 lines of the changed text. |
Project update |
A space at the start marks a line that is the same in both texts. It is shown for context. |
-The release is planned for March 3. |
A minus sign marks a line that is only in the original. |
-Testing is finished on the login page. |
A modified line is written as a removed line followed by an added line. |
-Please send feedback by Friday. |
Another line that exists only in the original. |
+The release is planned for March 10. |
A plus sign marks a line that is only in the changed text. |
+Testing is finished on the login and signup pages. |
The new version of the modified line. |
Thanks, the team |
Context again: the same in both texts. |
+Reviewers: design and support |
A line that was added at the end. |
The same two texts give a different picture at each level, so pick the one that matches what you are checking.
| Mode | What is compared | Best for | Watch out for |
|---|---|---|---|
| Lines | Whole lines first, then the words or characters inside each changed line. | Lists, code, config files, CSV rows and text with fixed line breaks. | A re-wrapped paragraph makes every line look changed. Use Words mode, or join the lines first with the paragraph to single line converter. |
| Words | Words, punctuation marks and the spacing between them, in order. | Essays, articles, emails, contracts and any edited prose. | Chinese and Japanese characters are compared one at a time, and a punctuation change counts as a change even though it adds no words. |
| Characters | Every character. An emoji or an accented letter counts as one. | Names, codes, numbers, typos and invisible characters. | It needs more work on long texts, so for very large input the tool switches to Words mode and tells you. |
| Switch | What it ignores | These then count as equal |
|---|---|---|
| Case | Upper and lower case. | Hello and hello |
| Whitespace | The amount of spacing. Any run of spaces or tabs counts as one space. In Words and Characters modes line breaks count too. | a b and a b, but not ab |
| Trim lines | Spaces and tabs at the start and end of each line (Lines mode). | Two lines that differ only by indentation |
| Blank lines | Changes that only add or remove empty lines (Lines mode). | A paragraph break that was added or taken out |
See what an editor or a co-author changed between two versions, word by word, without reading both from the top.
Check that a new version changes only the clauses it should, and catch a single altered number or date. It is a mechanical comparison, not a legal review.
Compare two config files or API responses line by line, then copy the unified diff into a ticket or a code review comment.
Find which names, SKUs or addresses were added or removed between two exports. Sort both lists the same way first, because order matters.
Run text through the title case converter or the sentence case converter, paste before and after, and see exactly which words changed.
Two strings look identical but do not match. Characters mode draws line breaks, tabs, non-breaking spaces and zero-width spaces so you can see them.
A few details explain most surprises. To keep both versions safe while you work, draft them in the online notepad, and to strip styling from pasted text first, use the remove text formatting tool.
Both texts are compared on your device. Nothing is sent to a server, and the only thing remembered is your Side by side or Inline choice.
A line break written as CRLF, LF or CR is treated as the same, and a final line break is not counted as an extra line. For the same reason the copied unified diff does not mark a missing final line break, so add one to your original before applying the diff with the patch command.
It is 2 × unchanged ÷ the total in both texts. A result of 100% means no differences, so any text with a change is shown as at most 99%.
A diff matches text in order, so a block that moved appears removed from one place and added in another.
The Myers algorithm finds the fewest additions and removals that turn one text into the other. Very different texts are simplified to keep the page responsive.
If only capitalization differs, switch on Case, or normalize both texts first with the lowercase converter.
It compares text you paste or open. It does not read Word, PDF or Excel files or images, and it does not compare bold, colors or other formatting.
Each side is limited to 100,000 characters. When two texts are very different the work is cut off, the changes are shown in larger blocks and a notice says so. Long lists are shown 1,000 rows at a time.
It shows differences but does not merge them, and it does not detect moved text. Edit the texts in the boxes and the result updates.
The method, the formats and the accessibility rule on this page come from these references, last checked on November 7, 2026.
--- and +++ headers, @@ ranges and plus, minus and space prefixes.2.0*M / T, where T is the total number of elements in both sequences and M is the number of matches.Short answers to what people ask most.
Text compare checks two versions of a text and marks what was added, removed and left unchanged. A tool that does this is also called a diff checker or a text difference checker.
Paste the original into the left box and the changed version into the right box, or open a text file for either side. The differences appear as you type, with removed text marked by a minus sign or a strikethrough and added text by a plus sign or an underline.
Use Lines for lists, code and files with stable line breaks, Words for prose, and Characters for short strings such as names, codes and numbers. Lines mode also highlights the changed words inside each changed line.
Switch on Case to treat upper and lower case as the same, and Whitespace to treat any run of spaces or tabs as one space. In Words and Characters modes line breaks count as spaces too. Trim lines and Blank lines work in Lines mode.
No. The comparison runs in your browser, so nothing you paste or open is sent to a server. Only your Side by side or Inline choice is remembered, on your own device.
A unified diff lists the changed lines with a minus or plus sign, plus a few unchanged lines of context, under @@ headers. In Lines mode, choose Copy unified diff or Download .diff. The diff does not mark a missing final line break, so if your original has none, add one before applying the diff with the patch command.
It is two times the unchanged items divided by the total items in both texts, the same formula that the Python difflib documentation gives for its ratio. The items are lines, words or characters depending on the mode, and 100% is shown only when the texts match.
A diff matches text in the order it appears, so a block that moves is not recognized as moved. It shows as removed from its old place and added in its new one.
They probably differ in something you cannot see, such as trailing spaces, tabs, non-breaking spaces or zero-width spaces. Characters mode shows line breaks, tabs, non-breaking spaces and zero-width spaces as symbols inside the change, and the Whitespace switch ignores spacing.
Each side is limited to 100,000 characters. If two texts are very different, the tool simplifies the result and says so, and Characters mode switches to Words mode when it needs too much work.
Not directly, because this tool compares plain text. Copy the text out of the file and paste it into each box, or open a plain text file such as .txt, .csv or .json.