A Simple Guide to Jupyter Notebook Extensions

In this article, we will discuss the different types of Jupyter Notebook extensions and how to use them

Jupyter Notebook is a popular open-source web application that allows users to create and share documents that contain live code, equations, visualizations, and narrative text. It has become an indispensable tool for data scientists, researchers, and educators in various fields. One of the main advantages of Jupyter Notebook is its extensibility, which allows users to customize and enhance their workflow with various extensions.

Jupyter Notebook extensions are software components that add new functionality to the Jupyter Notebook interface. They can be installed and configured to meet specific user needs, making Jupyter Notebook even more versatile and powerful. In this article, we will discuss the different types of Jupyter Notebook extensions and how to use them.

If you’d like to get a quick start and jump into high-powered notebooks using these extensions, get started on Saturn Cloud for free here.

Types of Jupyter Notebook Extensions

There are three types of Jupyter Notebook extensions: notebook extensions, server extensions, and combined extensions.

Notebook Extensions

Notebook extensions are JavaScript and/or CSS files that modify the behavior of the Jupyter Notebook interface. They can be used to add new buttons, menus, keyboard shortcuts, or visual elements to the Notebook toolbar or cell menus. Some popular notebook extensions include Table of Contents, Collapsible Headings, and Nbextensions Configurator. Users can create and share their own extensions on the Jupyter Notebook Extension Registry. Jupyter Notebook also supports server extensions and combined extensions, which add functionality to the Notebook server and allow users to create custom UI components that interact with the server. Notebook extensions are a flexible and powerful way to customize the Jupyter Notebook workflow to meet specific needs. By exploring the various extensions available and creating their own, users can get the most out of this versatile tool.

Server Extensions

Server extensions are Python modules that run on the Jupyter Notebook server and provide additional functionality beyond the notebook interface. They can be used to add new REST APIs, authentication mechanisms, or data processing capabilities to the Notebook server. Some popular server extensions include Jupyter Lab, Jupyter Widgets, and Jupyterhub. Server extensions can be written in different programming languages, and they interact with the server using various APIs and protocols. Server extensions are installed on the Notebook server and enabled or disabled using the jupyter server extension command-line interface (CLI). Popular server extensions include JupyterLab Server Proxy and Jupyter Server MathJax. Server extensions can be combined with notebook extensions to create custom UI components that interact with the server.

Combined Extensions

Combined extensions are extensions that combine both notebook and server functionality. Combined extensions require knowledge of both JavaScript and Python programming languages. The extension code consists of client-side JavaScript code that modifies the Notebook interface and server-side Python code that modifies the Notebook server. Combined extensions can be installed using pip or conda, and enabled or disabled using the jupyter serverextension and nbextension commands. Popular combined extensions include Jupyter Widgets and JupyterLab, which provide interactive UI components and a modern interface. Combined extensions allow users to create custom workflows that meet their specific needs and enhance their productivity. By combining the strengths of notebook extensions and server extensions, combined extensions provide a more seamless experience for users.

How to Use Jupyter Notebook Extensions

Using Jupyter Notebook extensions is easy and can be done in a few simple steps. Here’s how:

Step 1: Install the Jupyter Notebook Extension Manager

To install Jupyter Notebook extensions, you first need to install the Jupyter Notebook Extension Manager. You can do this by running the following command in your terminal:

pip install jupyter_contrib_nbextensions && jupyter contrib nbextension install 

Step 2: Enable the Required Extensions

Once the Extension Manager is installed, you can enable the extensions you need. To enable a notebook extension, you can use the Nbextensions Configurator, which provides a graphical user interface for managing notebook extensions. Start up a Jupyter Notebook and navigate to the Nbextensions tab, and enable the extensions you want and enjoy the productivity benefits.

Alt text

What to use?

Table of Content: Generate table of contents per markdown header

As the number of cells in Jupyter notebooks grows, it can be challenging to locate a specific cell. To address this issue, one can use the Table of Contents feature, which automatically generates and displays a table of contents based on the markdown header level. By utilizing this function, users can quickly navigate to the desired cell by clicking on the relevant section in the table of contents.

Alt text

Autopep8: neat code for better visualization

When solving complex problems, the code often gets messy, but clicking the hammer-shaped button automatically organizes the code according to the PEP 8 style guide.

Alt text

Variable inspector: keep track of your workspace

In Jupyter Notebook, the variable inspector displays a list of all variables that have been created in the notebook, including information such as their type, size, shape, and value.

Alt text

ExecuteTime: Show the execution time of each cell

In Jupyter Notebook, there is an extension that enables users to measure the time it takes for a particular cell to execute. This feature is particularly helpful when comparing the performance of different algorithms or determining the execution time of a specific cell. The extension records the time at which the cell started executing, as well as the duration of the execution, and displays this information in small letters.

Alt text

CodeFolding: Fold your code based on markdown

For each markdown, an arrow is generated, and users can click on it to collapse the sublist and hide the code within.

Alt text


Jupyter Notebook extensions are a powerful tool that can be used to improve the functionality of the Notebook, making it even more useful for various purposes, including data analysis, research, and education. With extensions, users can add new buttons, menus, and visual elements to the Notebook interface, as well as new data processing capabilities and the ability to convert Notebook content to standalone web applications.

By following the instructions provided in this article, users can easily install and use Jupyter Notebook extensions to customize their workflow and increase productivity. By taking the time to explore the available extensions and identifying those that are useful, users can save valuable development time cumulatively. While none of the extensions may be life-changing on their own, the added benefits they provide are worthwhile and can contribute to a more efficient and productive workflow.

If you’d like to get a quick start and jump into high-powered notebooks using these extensions, get started on Saturn Cloud for free here.

You may also be interested in:

About Saturn Cloud

Saturn Cloud is your all-in-one solution for data science & ML development, deployment, and data pipelines in the cloud. Spin up a notebook with 4TB of RAM, add a GPU, connect to a distributed cluster of workers, and more. Join today and get 150 hours of free compute per month.