Hi all,
I built ElasticKernel, an IPython kernel that automatically saves and restores the execution state of a notebook, so a kernel restart or crash doesn’t wipe your session. You just select the “Python 3 (Elastic)” kernel and keep working — variables and imports come back after a restart, no manual pickling required.
It’s based on the ElasticNotebook work (SIGMOD 2023), packaged as an installable JupyterLab kernel:
pip install elastic-kernel
elastic-kernel install
then select “Python 3 (Elastic)”.
There’s also a prebuilt Docker image.
It’s still early (v0.0.x), and I’d really value feedback from people who know the kernel internals:
- the approach to capturing and serializing session state
- how this should interact with kernel restart / interrupt semantics
- failure modes you’d expect (unserializable objects, large dataframes, memory pressure, GPU state)
Repo: GitHub - MRyutaro/ElasticKernel: ElasticKernel: An IPython Kernel that automatically saves and restores Jupyter Notebook execution states (CLOSER 2026) · GitHub
PyPI: Client Challenge
Thanks for taking a look!