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 and instant. Files are processed briefly on our servers for conversion, then discarded — nothing is stored.

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 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 uses secure server conversion — processed briefly and not stored afterward.

FAQ

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.

No. Source code and markdown stay exactly as you wrote them. The size win comes from removing outputs, transient metadata, and pretty-print whitespace, not from rewriting cells.

Usually because plots and images are stored as base64 PNG blobs inside the JSON, and ipywidgets / Bokeh / Plotly write large widget state into the metadata. The compressor removes both.

Yes, with extras. nbstripout is the right tool for a Git pre-commit hook because it automates output stripping. This page does the same job in the browser plus minifies JSON, drops transient widget metadata, and can replace image outputs with placeholders.

Yes. Turn off Strip outputs and turn on Replace image outputs. Text prints stay; image bytes go.

Yes. The output is a valid nbformat document. Minification only removes whitespace; the JSON parses identically.

Generally yes, execution counts and outputs are gone, so you should see a small, focused diff after the first commit. The very first commit after compression will look big because every cell is rewritten.

No. Compression uses secure server conversion (processed briefly, not stored). Closing the tab clears the file.

Stripping outputs is a one-way operation. To get outputs back, run the notebook again in Jupyter, JupyterLab, VS Code, or Colab. Whitespace and metadata changes do not affect behaviour, so re-running reproduces the same outputs.

Yes. The compressor only drops transient blocks like widget state. Kernel name, display name, and language info stay intact.

It depends on the file. Notebooks dominated by plot outputs often shrink 5–20×. Code-only notebooks shrink modestly because there is little to remove.