JupyterLab 3.0 is released!
The 3.0 release of JupyterLab brings many new features to users and substantial improvements to the extension system.
Installation
To install JupyterLab with pip
:
pip install jupyterlab==3
With mamba
:
mamba install -c conda-forge jupyterlab=3
With conda
:
conda install -c conda-forge jupyterlab=3
(Note that many third-party extensions are still in the process of updating to be compatible with JupyterLab 3.0 — please check the extensions you use and be patient, or even better, help them update! Also, it may help to uninstall JupyterLab 2 if you already have it installed.)
Here is an overview of the major user-facing changes in JupyterLab 3.0.
Debugger
Announced earlier this year, the visual debugger is now shipped by default with JupyterLab.
To use the visual debugger, you will need a kernel that supports debugging. An example of such kernel is xeus-python
, the first Jupyter Kernel for Python with support for debugging.

Check out the user documentation for more information, including a notebook based tutorial to interactively learn how to use the debugger.
Table of Contents
The table of contents extension now ships with JupyterLab. This makes it easy to see and navigate the structure of a document.

Support for multiple display languages
JupyterLab now provides the ability to set the display language of the user interface.
Users will need to install the language pack as a separate Python package. Language packs are grouped in the language packs repository on GitHub, and can be installed with pip
. For example, it is possible to install the language pack for Simplified Chinese using the following command:
pip install jupyterlab-language-pack-zh-CN

Check out the user documentation to learn more about the feature and how to add new language packs.
Improvements to the Simple Interface mode
The Simple Interface mode (previously known as the Single-Document Mode) has been significantly updated to have a more streamlined, document-oriented feel.
To make the Simple Interface mode more discoverable, there is now a switch to toggle it in the status bar. You can also toggle it from the View menu or the command palette, or use the default keyboard shortcut Ctrl/Cmd+Shift+D.

Support for mobile has also greatly improved with a more compact layout. JupyterLab automatically switches to the Simple Interface when the window is resized down.

There is ongoing work to iterate on this concept and make the interface even more accessible on mobile devices.
Install new extensions with pip and conda / mamba
JupyterLab extensions can now be distributed as prebuilt extensions, which do not require a user to rebuild JupyterLab or have Node.js installed. Prebuilt extensions can be distributed as Python packages using familiar package managers such as pip
, conda
, and mamba
. This makes installing and using extensions much faster and more convenient!

Prebuilt extensions can be published to PyPI and conda-forge as separate packages, or bundled into existing packages with Jupyter Server extensions and Classic Notebook extensions. This helps make the ecosystem as a whole more coherent.
For example, install the new ipywidgets
7.6.0 with pip or conda to automatically enable ipywidgets in both the classic Jupyter Notebook and in JupyterLab 3.0 — no extra installation step or JupyterLab rebuild needed!

Improved development workflow for Extension Authors
The new prebuilt extensions are more convenient for extension authors to develop. The TypeScript extension cookiecutter has been updated to develop prebuilt extensions by default and provides all the necessary tooling to quickly create a new extension from scratch.
For more information, check out the Extension Developer Guide and the JupyterLab 2.x to 3.x Migration Guide.
Extension Examples
If you are looking for examples to learn how to make your own extension, make sure to check out the extension examples repository on GitHub. The examples have been updated to be compatible with JupyterLab 3.0 and provide a hands-on approach to developing extensions.
Changelog
This post was only an overview of what’s new in 3.0! If you are looking for a more complete list of the changes including bug fixes, be sure to have a look at the changelog.
Try it out on Binder
JupyterLab 3.0 can easily be tested on Binder using the following link:

Get Involved
There are many ways you can participate in the JupyterLab effort. We welcome contributions from all members of the Jupyter community:
- Make your own JupyterLab extensions. Please add the jupyterlab-extension topic if your extension is hosted on GitHub. You can also help existing extensions update to JupyterLab 3.0. The changelog gives an overview of changes that may affect extension maintainers.
- Contribute to the development, documentation, and design of JupyterLab on GitHub. To get started with development, please see the Contributing Guide and Code of Conduct. Many issues are ideal for new contributors and are tagged as “good first issue” or “help wanted”.
- Connect with the community on GitHub or on the Gitter Channel. If you find a bug, have questions, or want to provide feedback, please join the conversation!
And don’t forget to participate in the user survey: https://www.surveymonkey.com/r/LCB7GBF
Thanks!
