Available now.ipynb

Compress IPYNB

Shrink your notebook for Git or email: strip heavy outputs, drop transient widget state, trim whitespace, and minify the JSON without breaking anything.

Free, instant, and 100% private, your notebook never leaves the browser.

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.

Try our other free tools

Notebook compressor: shrink a Jupyter notebook so Git, email, and reviewers stop complaining

This notebook compressor shrinks bloated .ipynb files in the browser. Drop the file, choose how aggressive you want to be, and download a smaller notebook ready for Git, email, or your code reviewer. By default it strips heavy outputs (especially base64 image plots), clears In [n] execution counts, drops transient widget metadata, trims trailing whitespace, and minifies the JSON, steps that often cut the file size by an order of magnitude without touching a single line of your actual code or markdown.

Why does it matter? Because notebooks balloon for boring reasons. A single matplotlib plot embedded as base64 PNG can add 1–2 MB to the file. Bokeh, Plotly, and ipywidgets store their state in metadata.widgets, which can dwarf the cells themselves. Git diffs become unreadable. Pull requests bloat. Email attachments hit limits. The compressor removes all of those without changing the meaning of the notebook.

Compared to running jupyter nbconvert --ClearOutputPreprocessor.enabled=True or installing nbstripout, this page wins when you do not want to set up tooling, when the file is on a Chromebook, or when you want a quick one-off cleanup before sharing. It also goes further than nbstripout: it can drop transient widget state, replace huge image outputs with text placeholders, trim whitespace, and minify the JSON. nbstripout remains the right answer for an automated pre-commit hook; this tool is the right answer for a single notebook on someone else's machine.

Worried about losing data? The defaults are safe: outputs are removed but every cell of source stays exactly as you wrote it, every markdown cell stays in place, and the kernel + language metadata stays valid. Loosen or tighten the toggles to match the situation, keep image outputs but trim whitespace, or strip everything for the smallest possible file.

How this notebook compressor cuts file size

Strips heavy outputs

Removes every code-cell output by default. Optionally keep text outputs but replace embedded image data with a small placeholder, the typical fastest way to shrink a notebook with many plots.

Drops transient widget state

Detects and removes metadata.widgets and similar transient blocks that ipywidgets, Bokeh, and Plotly leave behind. They serve no purpose once the notebook is shared.

Clears execution counts

Resets In [n] markers so a re-run does not produce a noisy diff, exactly the cleanup nbstripout performs as a pre-commit hook.

Trims whitespace and blank lines

Cuts trailing tabs, trailing spaces, and runs of blank lines without touching meaningful indentation. Smaller files, identical behaviour.

Minifies the .ipynb JSON

Removes pretty-print whitespace from the JSON so the bytes-on-disk drop further. The notebook still opens cleanly in Jupyter, JupyterLab, VS Code, and Colab.

Stays in your browser

Compression runs locally in the page. Sensitive notebooks never travel to a server, which matters for client work and internal research.

Frequently asked questions about compressing .ipynb files

Open this notebook compressor, upload the .ipynb, and download the smaller version. The defaults remove outputs, execution counts, transient widget state, and pretty-print whitespace, usually enough to cut the file size dramatically.