High performance IDE for Jupyter Notebooks

Zasper is built from the ground up for massive concurrency: a minimal memory footprint, exceptional speed, and thousands of connections at once.

It speaks Jupyter's wire protocol, so it runs the notebooks you already have.

brew install zasper-io/tap/zasper
python_plotting_libraries_showcase.ipynb
A Zasper notebook with a rendered chart output
less CPU than JupyterLab
40× less RAM than JupyterLab
8 MB to download — the whole app, one binary

The gap widens as the load does

Both servers were run against the same workload — 10 requests per second per kernel, on an Apple M4 — from 2 concurrent kernels up to 100. Zasper starts ahead and stays ahead, and the distance grows with concurrency rather than shrinking.

Average CPU use against concurrent kernels, 2 to 100. Jupyter Server rises from 2.7% to a peak of 15.5% at 64 kernels; Zasper rises from 0.8% to 12%. The widest gap is 5 times less, at 4 kernels.
Peak RAM use against concurrent kernels, 2 to 100. Jupyter Server holds near 90 MB to 32 kernels, then climbs to 1.9 GB at 100; Zasper stays under 50 MB throughout. The widest gap is 38 times less, at 100 kernels.

CPU is averaged across each run; RAM is the highest figure observed, which is what “up to 40×” reports. At light load the difference is closer to 3–4× on both — the advantage is a function of concurrency, not a constant. Every point is recomputed from the raw runs in zasper-benchmark, where the harness and the methodology are public.

And it is a real IDE

The numbers above are only half the question. Every screen below is a running session, not a mock-up.

Your environments, already found

Conda, uv, venv and every Jupyter kernel you have installed — detected on open and one click from a blank notebook or a shell. Nothing to register by hand.

Launcher
Zasper's file explorer beside the launcher, showing nine detected Python environments — including conda, uv and xeus kernels — each one click from a new notebook, and a Terminal tile below them.

A real shell, in the same window

Not an emulation. A full terminal that restores its session on reopen, in a tab beside the notebook it belongs to.

Terminal 1
A terminal tab open beside two notebook tabs in Zasper, showing the message “Restored session” followed by a directory listing at the shell prompt.

Underneath both: Zasper speaks Jupyter's wire protocol, reads and writes .ipynb at its own nbformat version, and runs the kernels you already have — so the notebooks in the screenshots above are the notebooks you have now.

Every kernel you already run

Zasper launches kernels through Jupyter's own kernelspec mechanism, so a kernel that runs under Jupyter runs here — without being registered again.

Python ipykernel & Xeus
R IRkernel
Julia IJulia
Ruby IRuby
JavaScript Deno
Go GoNb
Any kernel kernelspec

Python covers both implementations: ipykernel and Xeus (xeus-python). Conda, uv and venv environments are detected on open — the launcher above is showing nine of them, two of which are Xeus kernels. Installing kernels walks through adding your own.

Take a look at what we built

Proud to be supported by

Zerodha FOSS United