Integrating the uv package manager into Satyrn

Satyrn now integrates with uv, letting you manage Python versions, create virtual environments, and handle package dependencies directly in your Jupyter notebook.

I often need a quick, clean virtual environment for an experiment. Setting that up used to be a hassle. Now, it’s dead simple.

When you add a kernel, Satyrn automatically creates a new virtual environment using any Python version you want, links it, and stores it under /Library/Application Support/Satyrn/venvs. You can manage dependencies from within the notebook using the built-in package manager. And if you delete the kernel, Satyrn cleans up the environment for you.

package manager

This is way faster than manually creating an environment, installing ipykernel, linking it, and restarting Jupyter. It’s also cleaner: no more messy %pip install commands cluttering up your notebooks.

I’m also working on making %pip install and !pip install commands smarter, intercepting and applying them to the uv environment for better compatibility with existing workflows. There’ll also be an option to specify uv config at the top of the notebook, similar to uv’s script mode. I’ll be keeping an eye on the official Jupyter integration for uv and will stay compatible as things evolve.

Check out a demo of the new virtual environment management flow below in this video:

If you want to try it out, download the latest version of Satyrn here.