Skip to content(if available)orjump to list(if available)

Show HN: Juvio – UV Kernel for Jupyter

Show HN: Juvio – UV Kernel for Jupyter

15 comments

·May 20, 2025

Juvio brings inline, PEP 723-style dependency management and automatic, ephemeral env setup to Jupyter notebooks.

antman

Would it work on Jupyter lite?

okost1

Unfortunately it won't, at least due to the fact UV is not available in the in-browser/wasm ecosystem. That would be awesome though. Maybe it is possible to make something close in terms of functionality using a custom pyodide kernel + micropip, but I did not look into that.

simlevesque

Seems awesome ! I'll try it soon.

okost1

Thank you! I am looking forward to your feedback.

imcritic

> Why Use Juvio?

> No additional lock or requirements files are needed

Additional to what?

> Guaranteed reproducibility

Of what?

I probably need your project, but I don't understand what it is for.

okost1

Hi. I appreciate your feedback. Basically, juvio stores all of the project requirements (versions of the packages and of the python interpreter) directly within the notebook itself using the PEP 723 spec. Then, when you open the notebook, a new ephemeral environment is created on the fly with all of the required dependencies. Therefore, you don't have to maintain a separate e.g. requirements.txt/conda.yaml/uv.lock file.

rafram

Did you in the past? Normally Jupyter notebooks just include the package installation commands necessary to set up the environment from scratch. I've never seen a requirements.txt/lockfile distributed alongside a notebook.

mrbungie

That's common when they are distributed as single notebooks (i.e. via Google Colab). When distributed inside repos they usually contain a requirements.txt.

null

[deleted]

jwilber

okost1

Hi. Thanks for bringing this up. To be honest, I have never tried juv, but judging from the readme the ideas of juv and juvio are slightly different. In juvio the ephemeral environment is created on kernel startup. Hence, one can have multiple notebooks within the same jupyterlab session, each with its own venv. This seems to be different with juv, but please correct me if I am wrong.

null

[deleted]