Repolode
tweag

tweag/jupyenv

Nix-based framework for declarative, reproducible JupyterLab environments with configurable kernels and extensions.

Stars
746
Forks
151
Open issues
56
Last commit
7 days ago

What is it?

jupyenv is a Nix-based framework for defining Jupyter environments declaratively. An environment includes JupyterLab, which can be configured with extensions, the classic notebook interface, and a set of Jupyter kernels that you select and configure in a Nix definition.

Because the environment is described by Nix, the same definition produces the same setup on different machines, which makes notebooks easier to reproduce and share. The project offers a flake template so a new project can be started with a single command and launched with nix run, which opens JupyterLab in the browser.

Kernels are available for many languages, including Python, R, Julia, Haskell, Rust, Scala, Go, and TypeScript, along with several others. Documentation for kernels, extensions, and further setup is on the project website.

Key features

  • 01Declarative Jupyter environment definitions built with Nix
  • 02Reproducible setups that behave the same across machines
  • 03Configurable JupyterLab extensions and the classic notebook interface
  • 04Multiple language kernels, including Python, R, Julia, and Haskell
  • 05Flake template for starting a new project with one command

Use cases

  • Sharing notebooks that must run with the same language and library versions for others
  • Setting up reproducible data science or research environments
  • Trying out Jupyter kernels for several languages without manual installation

Quick start

  1. 1

    Create a new project directory and enter it

    mkdir my-project cd my-project
  2. 2

    Initialize the project with the flake template

    nix flake init --template github:tweag/jupyenv
  3. 3

    Start the JupyterLab environment

    nix run

Things to know

  • Requires the Nix package manager, which is a separate install with its own learning curve.

In collections

Topics

FAQ

What is jupyenv?
Nix-based framework for declarative, reproducible JupyterLab environments with configurable kernels and extensions. jupyenv is a Nix-based framework for defining Jupyter environments declaratively. An environment includes JupyterLab, which can be configured with extensions, the classic notebook interface, and a set of Jupyter kernels that you select and configure in a Nix definition.
Is jupyenv free to use? What license does it have?
jupyenv is open source under the MIT license. Check the license terms before using it in commercial products.
Is jupyenv still maintained?
Actively maintained. The last commit to jupyenv was on Nov 1, 2026.
What can I use jupyenv for?
Sharing notebooks that must run with the same language and library versions for others Setting up reproducible data science or research environments Trying out Jupyter kernels for several languages without manual installation
How do I install jupyenv?
Create a new project directory and enter it: mkdir my-project cd my-project Initialize the project with the flake template: nix flake init --template github:tweag/jupyenv Start the JupyterLab environment: nix run
Where can I get jupyenv?
The source code and installation instructions are on GitHub: https://github.com/tweag/jupyenv

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects