Written and maintained by CASRAI Editorial Board
Last updated
“Jupyter notebook extension” means two different things, and searchers use the phrase for both: an add-on that changes how the notebook interface behaves, and the .ipynb file extension that notebooks are saved with. This guide covers both. The add-on story has changed since Notebook 7, which is why older tutorials about classic “nbextensions” often no longer match what you see on screen.
What extensions are used for in research
An extension adds or changes a feature of the notebook front end, such as a new panel, menu item or editor behaviour. In a research group the practical concern is less which extensions exist than whether everyone who opens the notebook gets the same interface and the same results. Extensions live in the Python environment, so they travel with that environment: record them alongside your packages when you share an analysis (see sharing a reproducible conda environment).
The key change: per the Jupyter Notebook documentation, starting with Notebook 7, front-end extensions for the notebook can be developed as prebuilt JupyterLab extensions, so Notebook 7 can reuse many existing extensions from the JupyterLab ecosystem as they are. The same documentation warns that Notebook 7 might break extensions or other customizations written for the classic notebook.
Install or access (official source only)
Install Jupyter itself from the official project, covered step by step in Anaconda for Jupyter Notebook; this guide does not repeat setup. For extensions, the official JupyterLab documentation states that most JupyterLab extensions can be installed using Python pip or conda packages, so the usual route is to install the extension’s package into the same environment as Jupyter, using the install line on the extension’s own project page.
- Prebuilt extensions are the preferred type. The JupyterLab documentation calls the prebuilt extension “the preferred JupyterLab extension type”, and it needs no JavaScript rebuild.
- Extension manager. Since JupyterLab v4, the default manager uses PyPI.org as the source for available extensions. An administrator can disable the manager, in which case use the package route above.
- Source extensions need Node.js and a rebuild step and are described in the documentation as highly discouraged.
Step-by-step: list, disable and enable an extension
These commands come from the JupyterLab extension documentation. Run them in a terminal, in the environment where Jupyter is installed.
- List what is installed:
jupyter labextension list - Switch an extension off without removing it:
jupyter labextension disable my-extension. This prevents all plugins in that extension from running in JupyterLab. - Switch it back on:
jupyter labextension enable my-extension - Remove an extension that was installed as a source extension:
jupyter labextension uninstall my-extension. For extensions installed as pip or conda packages, remove the package with the same tool you installed it with. - Run
jupyter labextension --helpto see every option in your installed version.
The JupyterLab page also warns that there is no check that an extension is compatible with the current JupyterLab version. Confirm the version an extension supports on its project page before installing it.
Output and how to read it
The JupyterLab documentation describes jupyter labextension list as the command that lists the installed extensions. Compare that list between collaborators’ environments when a feature appears for one person and not another, and record the extension names and versions with the rest of your environment.
What the .ipynb file extension means
Jupyter notebook file extension and file extensions
Notebooks are saved with the .ipynb extension. The Jupyter Notebook documentation states that notebook documents are internally JSON files saved with the .ipynb extension, and that because JSON is a plain text format they can be version-controlled and shared with colleagues.
The notebook format documentation (nbformat) describes a notebook at the highest level as a dictionary with a few keys: metadata (a dictionary), nbformat (an integer), nbformat_minor (an integer) and cells (a list). When backward-compatible changes are made to the format, the minor version is incremented. A notebook file is therefore a plain text file you can open in any text editor to see its structure, and compare in version control.
Extensions of the add-on kind do not change this file format; they change the interface. For reproducibility, share the .ipynb file together with a record of the environment, and see reproducibility infrastructure and how to cite software and code for citing what you ran.
Troubleshooting
An extension stopped working after upgrading to Notebook 7
The Notebook documentation says version 7 might break extensions or other customizations. It suggests looking for Notebook 7 compatible versions of the extensions you use. For a critical extension with no compatible version, it points to nbclassic, which provides compatibility with the old notebook interface. Users who do not use extensions simply receive Notebook 7 when they pip install notebook.
A feature disappeared but the extension is installed
Run jupyter labextension list to confirm it is installed. If it was switched off earlier, run jupyter labextension enable my-extension.
The extension manager is missing
The JupyterLab documentation notes the manager may be disabled by an administrator. Install the extension’s package with pip or conda instead.
Jupyter notebook setup questions
For installing Jupyter and opening your first notebook, including how to set up a Jupyter notebook through Anaconda, use Anaconda for Jupyter Notebook.
Free alternatives (ways to get extension features)
| Route | What the documentation says |
|---|---|
| Prebuilt JupyterLab extension via pip or conda | The preferred extension type; most JupyterLab extensions install as pip or conda packages; no JavaScript rebuild. |
| Extension manager in JupyterLab | Since JupyterLab v4 it uses PyPI.org as the source; an administrator may disable it. |
| Source extension | Needs Node.js and a rebuild; highly discouraged. |
| nbclassic | Provides compatibility with the old notebook interface for extensions that have no Notebook 7 version. |
FAQ
What is the Jupyter notebook file extension?
It is .ipynb. The file is JSON, saved as plain text.
Can Notebook 7 use JupyterLab extensions?
Yes, for many of them. The Notebook documentation says Notebook 7 can reuse many existing extensions from the JupyterLab ecosystem as they are.
How do I see which extensions are installed?
Run jupyter labextension list.
Does disabling an extension uninstall it?
No. jupyter labextension disable stops the extension’s plugins from running; jupyter labextension enable restores them.
How do I set up Jupyter notebook?
See Anaconda for Jupyter Notebook for installation and first run.
Sources (official docs)
- JupyterLab documentation, Extensions: https://jupyterlab.readthedocs.io/en/stable/user/extensions.html (checked 2026-10-29)
- Jupyter Notebook documentation, Frontend extensions: https://jupyter-notebook.readthedocs.io/en/latest/extending/frontend_extensions.html (checked 2026-10-29)
- Jupyter Notebook documentation, Migrating to Notebook 7: https://jupyter-notebook.readthedocs.io/en/stable/migrate_to_notebook7.html (checked 2026-10-29)
- Jupyter Notebook documentation, The Notebook: https://jupyter-notebook.readthedocs.io/en/stable/notebook.html (checked 2026-10-29)
- nbformat documentation, The notebook format: https://nbformat.readthedocs.io/en/latest/format_description.html (checked 2026-10-29)








