Available now.ipynb x2

Compare IPYNB side-by-side diff

Drop two notebooks and read a per-cell diff with line-level highlights for code, markdown, and outputs, great for code review when nbdime is not installed.

How it works

Three steps from upload to download

1

Drop your notebook

Drag a .ipynb onto the card or browse your files. You never create an account.

2

Choose the export

Select Word, PDF, Markdown, HTML, LaTeX, ZIP, Python tools, viewer, cleaner, merger, or splitter, whatever matches your reviewer.

3

Download and ship

Grab the finished file immediately. Open it locally, attach it to email, or upload it to your LMS.

Notebook diff viewer: compare two Jupyter notebooks side by side, online

This notebook diff viewer answers a small but painful question: what actually changed between two .ipynb files? Drop the baseline on the left, the revised version on the right, and read a per-cell diff with line-level highlights for added, removed, and changed code. The whole comparison runs in your browser, so the notebooks never leave your machine, useful when you review someone else's work on a locked-down laptop or you want a second opinion on a private experiment without setting up nbdime.

Most teams discover that a plain git diff on a notebook is unreadable: execution counts shift on every run, output cells balloon the diff with base64 image data, and JSON ordering masks real changes. The viewer here parses both files into the same notebook shape used by Jupyter, hashes every cell, and walks a longest-common-subsequence so identical or merely-moved cells line up cleanly. Real edits surface as a small unified hunk per cell instead of thousands of noisy JSON lines.

If you usually rely on nbdime, jupyter nbdiff, ReviewNB, or VS Code's notebook diff, this page complements them rather than replaces them. It is the path you take when nbdime is not installed, when the reviewer is on a Chromebook, when the notebook lives outside Git, or when you just want to share a quick before/after with a colleague. There is nothing to install, no account to make, and the result is always a recognisable side-by-side report.

Toggle Ignore whitespace when one side has been reformatted and you only care about meaningful changes. Toggle Show unchanged cells when you need full context for a code review. Click Download .diff to grab a unified text patch you can paste into a code review tool or attach to a ticket. Use the swap button to flip baseline and revised when you realise you loaded them in the wrong order.

Why this notebook diff viewer is built for review

Side-by-side cell diff with line highlights

Each changed cell renders with the baseline on the left, the revision on the right, and only the modified lines highlighted, so you focus on the real edits instead of scrolling through a forest of unchanged JSON.

Smart matching that ignores Jupyter noise

We hash cells on type and source, then walk an LCS to align them. Cells you only moved still register as unchanged, and execution counts or output IDs do not muddy the report.

Three states surfaced clearly

Added, removed, and changed cells get their own colour and badge, with a summary bar that counts every kind of change so the reviewer knows the size of the diff before reading it.

Works in the browser, no upload

Both notebooks parse and diff inside your tab. Closing the page wipes the comparison, nothing sits on a server. That matters for client work, internal research, or homework you cannot share.

Download a portable .diff text file

Export a unified diff with cell anchors so you can paste it into a pull request comment, attach it to an email, or archive it next to the notebook for a paper trail.

Ignore-whitespace toggle for reformatted code

When Black, Ruff, or autopep8 has touched the file, switch on Ignore whitespace and the viewer treats spacing changes as equal so only the real edits remain.

FAQ

Frequently asked questions about Jupyter diff

Open this notebook diff viewer, drop the baseline .ipynb on the left and the revised one on the right. The diff renders automatically with added, removed, and changed cells highlighted side by side.

It complements them. nbdime is the gold standard for Git-integrated notebook diffs. This page is what you reach for when nbdime is not installed, the reviewer is on someone else's machine, or you only want a quick visual check without configuring anything.

Yes. We compare cells on type and source. Re-running a cell does not mark it changed unless the source actually changed.

Yes. Markdown, code, and raw cells all participate in the diff with line-level highlights, so a documentation rewrite reads as cleanly as a code edit.

Switch on Ignore whitespace. The matcher treats spacing differences as equal and only flags real content changes.

Yes. Click Download .diff to save a unified-style text patch with cell anchors. You can paste it into a pull-request comment or store it next to the notebook for review history.

No. Parsing and diffing run locally in your tab. Refreshing or closing the page clears both files.

There is no hard limit, but huge notebooks with thousands of long cells take more memory in any browser. For very large files, narrow the comparison by splitting them with our IPYNB Splitter first.

Plain Git diffs read raw JSON: cell IDs, base64 image outputs, and execution counts all create noise. A notebook-aware diff like this one (or nbdime) ignores those fields and shows you the cells that actually changed.

Every cell shows as unchanged. That is a useful sanity check before relying on the tool for a real review.

The viewer compares two at a time. To check a chain of versions, run two comparisons in sequence: A versus B, then B versus C.

The diff happens entirely in your browser, nothing uploads. Treat the page like any sensitive in-browser session and close the tab when you finish on a shared computer.