A diff checker that never uploads your files
Compare two files, two config versions, two API responses — and keep them on your own machine. The comparison runs in your browser, and the page is served with a policy that forbids it from making any network request at all.
How to use it
- Paste the original on the left and the changed version on the right, or drop two files onto the panes.
- Read the result. Changed lines are paired and only the words that actually differ are highlighted, so you see the value that changed rather than a whole line marked red.
- Press J and K to jump between changes, or click the overview rail down the right edge to move anywhere in a long diff.
- Use Copy patch for a unified diff you can pipe into
git apply, or Copy link to share the comparison.
What makes this one different
- It cannot send your data anywhere
- Most online diff tools POST both sides of your comparison to a server so it
can compute the result. That is a problem when you are comparing API responses
containing tokens, internal configuration, or production data. Here the
algorithm runs in the tab, and
connect-src 'none'in the Content-Security-Policy means the browser will refuse an outbound request even if the code asked for one. - It handles large files
- The engine uses patience diff. It finds lines that occur exactly once on both sides, takes the longest increasing subsequence of those anchors, and recurses between them — running an exhaustive comparison only inside the small regions that remain. Two 20,000-line files compare in roughly 40 ms. A naive longest-common-subsequence over the same input would allocate several hundred megabytes.
- Share links carry the content, not a database row
- A shared comparison is compressed into the URL fragment. Browsers never put the fragment in an HTTP request, so it reaches no server and appears in no access log. There is no stored paste to leak later.
- No account, no usage cap
- Every feature works on every visit. Nothing is metered, nothing is held back behind a sign-up, and there is no limit on how many comparisons you run.
What the colours mean
- Red on the left — a line that exists only in the original.
- Green on the right — a line that exists only in the changed version.
- Both, with highlights — the line was modified; the highlighted tokens are the parts that differ.
- Grey — an unchanged line kept as context. Runs of unchanged lines are collapsed; click to expand, or tick Show unchanged to see the whole file.
Options
Ignore whitespace hides changes that are only indentation or spacing — useful after a reformat. Ignore case treats upper and lower case as the same. Both affect matching only; the text shown is always exactly what you pasted.
Frequently asked questions
Are my files uploaded when I compare them?
No. The comparison runs in your browser, in JavaScript. The page is served with a Content-Security-Policy containing connect-src 'none', which means the browser refuses every outbound request the page could make. You can confirm it yourself: open DevTools, watch the Network tab, and paste something.
How large a file can I diff?
Large ones. The engine uses patience diff — it anchors on lines that appear exactly once on both sides, then recurses between those anchors, falling back to a full comparison only inside the small regions left over. A pair of 20,000-line files compares in about 40 milliseconds. The practical limit is your device's memory, not a server quota.
Does it work offline?
Yes. Once the page has loaded, everything it needs is already in the tab. Turn off your network and it keeps working.
How can a share link be private?
The text is compressed and placed in the URL fragment — the part after the # symbol. Browsers never transmit the fragment in an HTTP request, so it does not reach our server, a proxy, or any access log. Whoever opens the link decodes it in their own browser.
Can I get a patch I can apply with git?
Yes. Copy patch produces a standard unified diff with three lines of context and correct hunk headers, which git apply accepts directly.
What is the difference between split and unified view?
Split view puts the two versions side by side, which is easier for reading changed values. Unified view stacks removals above additions in a single column, matching what git diff prints and working better on narrow screens.