Two requests that kept coming up have now shipped. Pasting JSON now offers a one-click Pretty-print button right under the box, and the diff result now has its own search field that highlights matches wherever they appear in the output. Here's what each one does and how to get the most out of them.
New: one-click Pretty-print JSON
Quick answerWhen the text you paste into either box looks like JSON, a small prompt now appears underneath it with a "Pretty-print JSON" button. Click it and that box's contents are reformatted with indentation and one key per line, using standard JSON.stringify-style output — no separate formatter needed.
Say you paste a minified feature-flag export like {"darkMode":true,"maxUploadMb":25,"betaUsers":["a1","c9"]} into Text A. As soon as the tool recognizes the shape of a JSON object or array, a hint box appears just below the textarea offering a one-click { } Pretty-print JSON button. Clicking it rewrites the box in place with each key on its own indented line, replacing the wall of braces and commas with something you can actually read at a glance.
This is a hypothetical config snippet used purely to illustrate the flow — the point is the button's behavior, not any specific data. The prompt only shows up when the input looks like JSON in the first place; plain prose, code in other languages, or CSV rows won't trigger it, so nothing changes for the comparisons you were already running.
Using it before a line-mode diff
Quick answerPretty-print both Text A and Text B before comparing, then switch to line mode. With each key on its own line, the diff aligns key by key instead of flagging an entire minified object as changed over a single value.
The formatting button alone is convenient, but it's most useful paired with line mode. Paste the "before" JSON into Text A and the "after" JSON into Text B, click Pretty-print JSON under each box, then run the comparison in line mode. Because both texts now have the same number of lines in the same key order (assuming the structure itself didn't change), the LCS alignment lands cleanly on the one or two keys that actually differ, instead of marking the whole object red-and-green.
Illustrative example: same config, before and after one-click formatting
| State | What line mode sees | Diff quality |
| Pasted as minified JSON | 1 line vs. 1 line | Poor — whole line flagged |
| After clicking Pretty-print JSON | N lines vs. N lines | Good — per-key changes visible |
It's still worth turning on Ignore whitespace if the two JSON snippets might have been formatted with slightly different indentation before you pasted them in — that keeps stray spacing from being counted as a real change once you're comparing the pretty-printed versions line by line.
New: find-in-diff search box
Quick answerOnce a diff is generated, a search field now sits above the result. Type a word or phrase and every matching occurrence in the rendered diff is highlighted, with a counter and next/previous buttons to step through the matches one at a time.
Until now, finding one specific term inside a long diff meant exporting the result and using your browser's or editor's own find function. The new find-in-diff box removes that detour: it lives directly above the diff output, next to the existing prev/next change navigation, and searches the diff as it's actually rendered — added text, removed text, and unchanged text alike.
Type a setting name, a variable, or an error code into the field and matches are marked inline as you type, with a small counter (something like "2 / 7") showing how many hits exist and which one is currently focused. The next/previous controls next to the field step through those matches, and clearing the field removes the highlighting without touching the diff itself.
Combining search with the existing navigation
Quick answerUse prev/next change navigation to review every diff, section by section, and use find-in-diff when you already know the specific word you're hunting for. The two tools solve different problems and work well together.
The prev/next change buttons above the result jump between sections the diff itself marked as added or removed — useful when you want to review every change in a file, regardless of what it says. Find-in-diff is the opposite kind of tool: it doesn't care whether a line was changed or not, it just looks for whatever text you type, anywhere in the output. If you're auditing an entire config for correctness, the change navigation is the right tool; if you already know you're chasing one setting name buried in a 600-line diff, jump straight to it with search instead.
A practical combination: paste both versions of a long log or config, run the comparison, then use find-in-diff to jump to the one keyword you care about, and only fall back to the change-by-change navigation if you need to confirm nothing else nearby was affected.
Try both new features right now
Word, line, and character-level diff with color highlighting, one-click JSON formatting, and find-in-diff search — entirely free and running in your browser.
Open the Text Compare Tool →
Frequently asked questions
How does the Pretty-print JSON quick action detect that my input is JSON?
As you type or paste into either text box, the tool checks whether the content looks like a JSON object or array. If it does, a small prompt appears under that box offering a one-click Pretty-print JSON button. Clicking it reformats the box's contents with standard JSON.stringify-style indentation, one key per line, without leaving the page.
Does the find-in-diff search box change the diff itself?
No. The find-in-diff search box only highlights matching text inside the diff output that has already been generated; it does not recompute the comparison or alter which parts are marked as added or removed. It's a way to scan the existing result faster, similar to a browser's find-on-page but scoped to the diff area.
Can I use Pretty-print JSON and then still compare in line mode?
Yes, that's the intended combination. Pretty-print JSON first, on both Text A and Text B, so each key lands on its own line, then run the comparison in line mode. This gives a much more useful diff than comparing minified JSON directly, since line mode can align individual keys instead of treating a whole minified object as one unit.
How is find-in-diff different from the prev/next change navigation?
Prev/next change navigation jumps between sections the diff itself marked as added or removed, regardless of their content. Find-in-diff instead searches for a specific word or phrase you type, across the whole rendered diff including unchanged text, and highlights every occurrence with a match counter so you can step through them one at a time.
Will Pretty-print JSON show up if I paste plain text instead of JSON?
No. The quick action prompt only appears when the box's content is recognized as looking like JSON. Plain prose, code in other languages, or CSV data won't trigger it, so the normal comparison workflow for non-JSON text is unchanged.