Zasper 2.1.0 · Open source
Zasper is a Jupyter IDE you run on your own machine. It opens the notebooks and kernels you already have, uses a fraction of JupyterLab's memory, and lets Claude Code, Codex or Gemini read, edit and run cells while you watch.
Featured and supported by
Supporter
Supporter
Agents
Bring Claude Code, Gemini CLI, Codex or any agent that speaks ACP. It works in your live kernel, and you can review and undo every change it makes.
It signs in with your own account. Zasper never sees a key or your conversation.
It reads cells and outputs, runs code and inspects your data. It can even see your plots.
It asks before it edits a file or runs a command. Every cell it runs carries its name.
See each change as a diff. Keep it, or roll back a cell, a file or the whole turn.
zasper mcp.Zasper is an MCP server too. Add it once, and Claude Code, Codex, Cursor or Gemini CLI can work in the notebooks you have open.
Read more in Coding agents and MCP server.
Open by design
Hosted notebooks keep your work in their cloud and their format. Zasper is an app you run, on files you already have.
Saved exactly as Jupyter saves them, in your own folder and your own git.
Your agent runs on the subscription you already have.
Your code, data and outputs stay where you put them.
AGPL-3.0, with a commercial license for products that need one.
Comparing it with a hosted platform? See Zasper and Hex, side by side.
Benchmarks
We ran Zasper and Jupyter Server against the same load on an Apple M4: 10 requests a second to every kernel, from 2 kernels to 100. Zasper used less memory and less CPU at every step. At 100 kernels, Jupyter Server held 1.9 GB and had dropped every connection. Zasper held 49 MB and answered every request.
100 concurrent kernels
38× less RAM
1.1× less CPU
Jupyter Server is dropping replies
CPU is the average across each run; memory is the peak. The memory gap grows with load, from 4× at 2 kernels to 38× at 100. The CPU gap is widest at light load, 4.5× at 4 kernels, and closes at 100, where Jupyter Server is still busy but no longer replying. Every number comes from the raw runs in zasper-benchmark, where the method is public.
Features
Every screen here is from a live session.
Query PostgreSQL, DuckDB, Snowflake or your own DataFrames, and get a DataFrame back.
Kernels, conda environments and your project's .venv, one click from a new notebook.
Your own shell, right below the notebook.
Branch, stage, commit and read diffs without leaving the window.
Zasper reads and writes standard .ipynb files and runs the kernels you already have. The notebooks above are ordinary Jupyter notebooks.
Also included
Small things you will use every day.
Sort, filter and chart a DataFrame in place, then turn the chart into code.
Close the tab mid-run. Every line is waiting when you come back.
See what changed, cell by cell, without the noise of execution counts.
Completion, go to definition, references, rename and quick fixes, in cells and files.
Search every file, notebooks included, and preview each replace before it happens.
Search every cell and its output.
Rendered in a tab, beside the source when you need it.
Save a notebook as an HTML page, Markdown or a script.
Your headings in a sidebar, for long notebooks.
Reopen a project and your tabs are where you left them.
Every command and file, one shortcut away.
Four colours, each in light and dark.
Kernels
If it runs in Jupyter, it runs in Zasper. Nothing to set up again.
Python runs on ipykernel or Xeus. Zasper also finds any Python environment with ipykernel in it. Installing kernels shows how to add your own.
Deployment
One app, either way. Run it on your own machine, or on a server you can open from anywhere. It is small enough to keep a shared server cheap.
Every server starts with an access token. Sign in with the link it prints.
Put it behind a reverse proxy, with the certificate you already have.
Run it in a container, or as a service that starts with the machine.
Deploying on Cloud walks through all three, and both ways to sign in.
Get started
From install to your first saved notebook.
Homebrew, snap, conda or a direct download. For notebooks, pip install ipykernel is all you need.
Create one, pick a kernel, run a cell and save it, with a screenshot of every step.
Your first notebookRegister the conda or uv environment you already use, and it shows up in the kernel list.
Working with CondaLicense
Use Zasper under the GNU AGPL, or under a commercial license if the AGPL does not fit your product.
Running Zasper, on your machine or a server, needs nothing more. If you distribute it, or offer a modified version over a network, the AGPL asks you to share your changes under the same license.
Read the licenseFor companies building Zasper into a proprietary product, or keeping their changes private.
prasun@zasper.ioContributions are made under a Contributor License Agreement, which lets Zasper offer both licenses.
FAQ
For your notebooks and kernels, yes: same files, same kernelspecs, same protocol. It is its own app, though, not a copy of JupyterLab's interface or extension system.
Hex runs your code in its cloud and keeps projects in its own format. Zasper runs on your machine or server, keeps plain .ipynb files, and uses your own agent subscription. Hex suits teams publishing dashboards; Zasper is for the people writing the notebooks. Zasper and Hex, side by side
No. Zasper has its own extension model, so JupyterLab extensions will not load. If one is essential to you, that is a good reason to stay.
Yes, there is a Windows build. The built-in terminal needs WSL, so we recommend running Zasper under WSL.
Yes. Under the AGPL-3.0 you can install it, run it, host it and change it. The commercial license is only for building it into a proprietary product.
Any environment registered as a Jupyter kernel shows up in the launcher. Zasper also finds the active environment, your base conda install, or a trusted project's .venv, as long as it has ipykernel.
Claude Code, Gemini CLI, Codex and any agent that speaks ACP. Claude Code is the one tested most. Each runs on your own subscription, so Zasper adds no cost and never holds a key. Agents outside Zasper can connect through its MCP server.
No. Zasper runs on your machine, and your files stay there. A coding agent you start talks to its own provider, as it would in a terminal. Zasper sends anonymous usage data with no file names, paths, contents or IP address; ZASPER_TELEMETRY=0 turns it off, and PRIVACY.md lists everything. It also checks zasper.io for updates once a day, and loads widget libraries from jsDelivr unless you turn that off in Settings.
Community
Here is what to know before you depend on it.
Start with an open issue. The developer guide gets you building from source in two commands.
Open issuesAsk questions and share ideas in the open, where answers stay findable.
GitHub DiscussionsNo account. Your files stay on your machine.