Skip to content
100% Privacy — Files Stay On Your Device
>_
English

Text Diff Checker — Compare Two Texts

Paste two versions of a text and see exactly what changed, word by word or line by line.

Drop a file here (text, Word, PDF, Excel, PowerPoint, OpenDocument, RTF). Drop two files anywhere to compare them.

Drop a file here (text, Word, PDF, Excel, PowerPoint, OpenDocument, RTF). Drop two files anywhere to compare them.

Comparison result

More options
Ignore rules (regex)
File extraction options

Applied to both files and re-applied to loaded files right away (no need to choose them again). Files stay in your browser.

Limits per file type

Only the text is compared; reliability tells how close the extracted text is to what you see in the original program.

  • Text / code (high): exact. Encoding is auto-detected (BOM, UTF-16, UTF-8, else Windows-1252).
  • Word .docx (medium): paragraphs, headings, lists and tables are kept as text. Images, text boxes, headers/footers, footnotes and comments are skipped; tracked changes appear accepted.
  • PDF (medium): only PDFs with a text layer; scans need OCR (not supported). Multi-column pages and tables may be read in a different order, hyphenation and line breaks depend on the layout.
  • Excel .xlsx (high): values (or formulas) of visible sheets, one row per line. Number and date display formats, charts, images and comments are not included; very large workbooks can be slow.
  • OpenDocument .odt (medium): like Word: text, headings, lists and tables; comments, footnotes and tracked deletions skipped. Same for .odp slides.
  • OpenDocument .ods (high): saved cell values of every sheet; formulas are shown as their values.
  • PowerPoint .pptx (medium): text of slides in presentation order, including tables; speaker notes, charts, images and SmartArt are skipped.
  • RTF (low): simple conversion of paragraphs and special characters; complex or embedded content may be lost.

Not supported: images/scans (no OCR), password-protected files, old .doc/.xls/.ppt, files over 30 MB. File content is never uploaded and is not stored.

Why use a text diff checker?

Anytime two versions of the same document exist — a contract before and after a lawyer's edits, an essay before and after a round of feedback, a config file before and after a teammate's commit — the important question is rarely "are these the same file" but "what exactly changed." Reading both versions side by side and trying to spot every added comma, deleted clause, or reworded sentence is slow and error-prone, especially once a document runs past a page or two. A diff checker automates that comparison and highlights precisely the words or lines that differ, so you can review a change in seconds instead of minutes.

This tool runs entirely in your browser. Both text boxes stay in memory on your device and the comparison itself is computed by a JavaScript diffing library running locally — nothing you type or paste is ever sent to a server, logged, or stored anywhere. That matters if you're comparing a client contract, a password file, or any text you'd rather not put through a third-party service. Close the tab and everything is gone; there's no history to worry about.

Paste the original text on the left and the updated version on the right — both boxes show line numbers and scroll in sync with each other, and each has its own Clear, Swap, and Upload file buttons so you can load two files straight from disk (plain text, code, Word, PDF, Excel and more) instead of copy-pasting. The comparison updates live as you type; there's no button to press. Pick Character, Word, or Line to control how finely differences are broken down: Character mode catches a single typo-level edit, Word mode is best for prose since it highlights exactly which words changed inside a sentence, and Line mode compares whole lines at a time, which suits code, JSON, or list-style content where you care about which entire lines moved rather than individual words within them. A line that only exists in one version is shown fully green (added) or red (removed); a line that exists in both but was edited is shown in orange, with the exact changed word or characters inside it highlighted more strongly — so you can tell an edited line apart from an unrelated delete-then-insert pair at a glance.

The added/removed/modified counts above the comparison give you an at-a-glance sense of how big a change is, and the ↑/↓ buttons jump straight to the next or previous change without scrolling through unchanged lines — handy on a long document. A Fullscreen button expands the comparison to fill the screen for closer review. Below the comparison, the merge tool turns this from a read-only diff into something you can actually resolve: each change gets its own ← / → buttons between the two columns, letting you pull the right version's edit into the left column or push the left version into the right, one change at a time, until either column reads exactly the way you want. Each column has its own Copy and Save buttons, so you can lift out a clean, merged result without retyping anything. If the two texts turn out to be identical, the tool tells you so directly instead of showing a blank, ambiguous result — one less thing to second-guess.

Two versions of the same code often look completely different only because of style: minified versus pretty-printed, tabs versus spaces, single versus double quotes, long lines wrapped in different places. Press the Format button above the two boxes to bring both texts to one standard before you compare; it detects the language of each box on its own (it looks at the file name first, then at the text). In the gear menu next to it you can instead pick JSON, XML, SQL, HTML, CSS, SCSS, LESS, JavaScript, TypeScript, YAML, Markdown or GraphQL yourself, choose an indent of 2 spaces, 4 spaces or a tab, a line width, and for SQL a dialect such as MySQL, PostgreSQL or SQL Server. Format formats both boxes with identical settings, and if the two sides turn out to be different languages you get a warning. If the text has a syntax error nothing is changed and the message tells you the line and column. The formatters (Prettier and sql-formatter) are downloaded only when you press Format, run in a background worker so large inputs do not freeze the page, and everything stays on your device. Formatting may change quotes, semicolons and line breaks but never what the code does, and every format can be undone. When you are ready, press Compare to jump straight to the result.

Frequently asked questions

Can I compare text character by character instead of by line?

Yes — switch between character, word, and line-level comparison granularity.

Can I merge the two versions into one final text?

Yes — the built-in merge tool lets you accept the left or right version hunk by hunk.

Can I ignore whitespace or capitalization differences?

Yes — toggle "ignore whitespace" and "ignore case" independently.

Which languages can the Format button handle?

JSON, XML, SQL (standard SQL plus MySQL, PostgreSQL, SQL Server, SQLite, BigQuery and more), HTML, CSS, SCSS, LESS, JavaScript/JSX, TypeScript/TSX, YAML, Markdown and GraphQL. The language is auto-detected from the file name or the text, and you can always pick it by hand.

Related tools