Free Online Diff Checker & Text Compare
Spot differences between two versions of text, markdown, or code side by side or inline. Client-side diff engine with zero server transmission.
Original
Modified
How to Compare Two Texts
Paste both texts.
Put the original in the left box and the changed version in the right box. Use Swap if you pasted them the wrong way round.
Click Compare.
Removed lines turn red and added lines turn green. The counter above the result shows how many lines were added, removed and unchanged.
Switch views or copy.
Pick Split view or Inline view, or click Copy Diff to take the changes as plain text. Click Edit inputs to change a text and compare again.
Frequently Asked Questions
Answers about views, line changes, limits and copying the diff.
How do I compare two texts for differences?
Paste the original into the left box and the new version into the right box, then click Compare. Removed lines show in red, added lines in green, and a counter shows how many lines were added, removed and unchanged.
What diff algorithm does this use?
It uses the line diff from the jsdiff library, which is based on the Myers algorithm, the same default method Git uses. It finds the smallest set of removed and added lines that turns the original into the modified text.
Can I ignore whitespace or case?
No, not yet. A trailing space, a tab in place of spaces or a capital letter makes the line count as changed. Clean both texts first, for example by trimming trailing spaces in your code editor, then compare them.
Why does every line show as changed?
Something changed on every line, often something you can't see. Re-indenting with tabs, trailing spaces added by an editor, or text wrapped at a new width all count. Minified code is one long line, so format both sides first.
Why is the last line marked as changed when I only added a line?
When the original's last line has no line break after it, adding a line below changes that line's ending, so it shows as removed and added again. Press Enter at the end of both texts to avoid it.
Does it highlight the exact words that changed?
No. The checker marks whole lines, so a one-word edit shows the full line as removed and then added. For long paragraphs, put each sentence on its own line in both texts so the changed sentence stands out.
What's the difference between split and inline view?
Split view shows the original on the left and the modified text on the right, with changes shaded. Inline view shows one column with a minus or plus before each changed block. The split columns are not lined up row by row, so inline reads better for long diffs.
How much text can I compare?
There is no set limit, but large and very different texts are slow. In a Node test of the same code, 100,000 lines with 1% changed took 0.3 seconds, while 5,000 lines that all differed took about 3 seconds. The page waits while it runs.
Can I compare files or PDFs?
Only as pasted text. There is no file upload, so open each file, copy its text and paste it in. Binary files such as images can't be compared; for a PDF, copy its text out first.
Can I export the diff as a patch?
Not as a real patch. Copy Diff gives plain text with a minus or plus before changed lines, with no @@ headers, so git apply can't read it. Blank lines are left out of the copy, which matters where spacing counts.
Is it safe to paste private code or documents?
Yes. The comparison runs in your browser and neither text is sent. On the live site, Google Analytics gets a page view, the time a compare took and a note when you copy or clear, but nothing you paste.
Diff Checker Features for Text and Code
A line-by-line comparison built on the jsdiff library, with two views and a count of added, removed and unchanged lines.

Compare Text Side by Side
Split view puts the original on the left and the modified text on the right. Removed lines are shaded red on the left, added lines green on the right, and the rest stay plain.
- Original left, modified right
- Red for removed, green for added
- Long lines wrap instead of scrolling

Read Every Change in One Column
Inline view lists the whole diff in one column. Removed blocks are shaded red, added blocks green, with a minus or plus before each block's first line. A counter shows the line totals.
- Minus and plus block prefixes
- Added, removed and unchanged counts
- Switch views without comparing again
Line-by-Line Comparison
The diff works on whole lines, using the Myers method that finds the fewest removed and added lines. Change one word and the full line shows as removed, then added.
Swap, Clear and Edit Again
Swap trades the two boxes so the diff runs the other way. Clear empties both. After a compare, Edit inputs brings the boxes back with your text still in them.
Copy the Diff as Text
Copy Diff puts the changes on your clipboard with a minus or plus before each changed line and two spaces before the rest. It is plain text, not a patch file.
Your Text Stays on Your Device
Both texts are compared in your browser and never sent. The only usage stats the tool records are how long a compare took and a note when you copy or clear.
When to Use a Diff Checker
Three jobs where a line-by-line diff answers what changed.
Code Review
Paste two versions of a function, a config file or a SQL query to see which lines changed before you commit it or send it for review.
- Spot a stray edit in a config file
- Compare two versions of the same function
- Check a pasted fix against the original code
Document Comparison
Compare two drafts of a contract, a policy or a translation file line by line. Put each sentence on its own line so edits stand out.
- Find the edits between two contract drafts
- Diff translation files to find changed keys
- Check a policy page against last year's copy
Log Analysis
Paste the output of two runs or two days to find the lines that are new. Strip timestamps first, or every line will show as changed.
- Find new errors between two log runs
- Remove timestamps before you compare the logs
- Compare config dumps to catch drift over time
Explore More Tools
Discover other free tools that work great alongside this one
Regex Tester
Test and debug regular expressions live
JSON Formatter
Format, validate and minify JSON in your browser
Markdown to HTML
Convert Markdown to HTML with a live preview
Base64 Encoder
Encode and decode Base64 strings
URL Encoder
Encode and decode URL components
Hash Generator
Generate SHA-1, SHA-256 and SHA-512 hashes of text or files