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.

Version control, not an extension

Branch, stage, commit and read a side-by-side diff in the window you are already working in. JupyterLab ships no source control at all; git there is a third-party extension you install and maintain yourself.

Source control
Zasper's source control panel on branch main, listing two changed files and one untracked file above the last commit, with a side-by-side diff of src/train.py open in a tab beside it.

Underneath all three: 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.

Open source, with a commercial license too

Zasper is dual-licensed. Use it under the GNU Affero General Public License, or under a commercial license when the AGPL's terms do not fit what you are building.

Open source

AGPL-3.0-only

Running Zasper, on your own machine or on a server, needs nothing more. If you distribute Zasper, or let people use a modified version over a network, the AGPL requires you to make the corresponding source, including your changes, available under the same license.

Read the license
Commercial

Commercial license

For organizations that want to build Zasper into a proprietary product, keep their modifications private, or need terms the AGPL does not offer.

prasun@zasper.io

Contributions are accepted under the Contributor License Agreement, which is what lets Zasper be offered under both licenses.

Proud to be supported by

Zerodha FOSS United