uvk
Fully-isolated IPython kernel through uv

This tool starts Jupyter IPython kernels (ipykernel) in ad hoc isolated environments built on-the-fly very quickly using uv. The uvk kernel comes with an IPython extension that provides magics to specify the package dependencies on which the notebook relies. These packages are installed in the isolated environment as these magics are executed, and the ad hoc virtual environment is discarded when the kernel is shut down.

Quickstart#

Let's assume you run a Jupyter Lab or Notebook instance is from your own computer; see here for deploying uvk on Jupyterhub. First off, deploy the uvk kernel where Jupyter can see it. (Wait, what's uvx?)

uvx --with uvk jupyter lab

You should see the uvk icon as a kernel labelled Python 3 (uvk) in addition to the usual IPython kernel (ipykernel). Now run through the tutorial notebook to see what this kernel can do for you.

Why use this?#

Shared workstations fronted with Jupyterhub will provide some reasonable base computing environment, but building one's own custom environment requires awkward management of virtual environments and associated Jupyter kernels. uvk completely mitigates these difficulties. Read further
In the most general sense, Jupyter notebook are not self-contained computing artifacts. Sharing notebooks require adding them to a group of metadata files that facilitate recreating the computing environment they can run in (such as requirements.txt). uvk provides elegant means to embed this metadata as part of the notebook, enabling their self-contained execution on a uvk kernel anywhere else. Read further

Going further#

Copyright 2026 Benoit Hamelin.