Skip to content
JupyterLab computational environment.
Branch: master
Clone or download
ian-r-rose Merge pull request #6361 from yuvipanda/cell-type-label
Add label for the default notebook toolbar
Latest commit b04ce22 May 17, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Remove “here” Apr 26, 2019
binder Remove leftover test code. Feb 12, 2019
buildutils Merge origin/master into print-notebook May 6, 2019
design Lint fixes Sep 6, 2018
dev_mode Remove comment-json from dev_mode May 14, 2019
docs Updated documentation to indicate that remove:package will delete all… May 4, 2019
examples add docstrings May 15, 2019
jupyter-config/jupyter_notebook_config.d Add data_files support (#3546) Jan 6, 2018
jupyterlab Use json5 and update package.json May 14, 2019
packages Merge pull request #6361 from yuvipanda/cell-type-label May 17, 2019
scripts rename cli -> usage May 15, 2019
tests Merge pull request #6340 from blink1073/fix-output-example May 16, 2019
testutils Rewrite dialog test utilities with optional arguments and async/await. May 13, 2019
typedoc-theme/partials Switch to ts 3.1 Sep 25, 2018
.eslintignore lint and py3.5 compat May 14, 2019
.eslintrc Add a script to convert to chai and apply to test-application Jul 28, 2018
.gitattributes Upgrade to yarn 1.5.1 Mar 6, 2018
.gitignore Add JupyterLab CSS bundler May 6, 2019
.lintstagedrc cleanup build and git scripts Sep 29, 2018
.meeseeksdev.yml Add meessekdev bot config file Oct 15, 2018
.prettierignore Add eslint interop Jul 2, 2018
.prettierrc Add eslint interop Jul 2, 2018
.yarnrc Update lerna (#5262) Sep 4, 2018 Correct Jest cli argument names May 9, 2019 Fix a typoe for a summary of an idea of mine Feb 16, 2019
LICENSE Update copyright notice. (#4931) Jul 19, 2018 Workspaces CLI (#5166) Sep 20, 2018 Add a downloads/month badge from pypi May 5, 2019 Make version and publish package.json scripts more consistent Apr 13, 2019
azure-pipelines.yml rename cli -> usage May 15, 2019 Add exclude list for clean:slate script Oct 3, 2018
lerna.json Update lerna (#5262) Sep 4, 2018
package.json Merge pull request #6340 from blink1073/fix-output-example May 16, 2019
readthedocs.yml Avoid installing jlab at all (#4929) Jul 19, 2018
setup.cfg ignore the examples folder May 15, 2019 Allow notebook to upgrade, but keep tornado < 6. Apr 12, 2019 Workspaces CLI (#5166) Sep 20, 2018
tsconfigbase.json Merge branch 'master' into pr/blink1073/6219 Apr 22, 2019
tslint.json Enable strict promise rules. Mar 22, 2019
yarn.lock Run jlpm at root May 14, 2019

Installation | Documentation | Contributing | License | Team | Getting help |


PyPI version Downloads Build Status Documentation Status GitHub Discourse Gitter


An extensible environment for interactive and reproducible computing, based on the Jupyter Notebook and Architecture. Currently ready for users.

JupyterLab is the next-generation user interface for Project Jupyter offering all the familiar building blocks of the classic Jupyter Notebook (notebook, terminal, text editor, file browser, rich outputs, etc.) in a flexible and powerful user interface. JupyterLab will eventually replace the classic Jupyter Notebook.

JupyterLab can be extended using npm packages that use our public APIs. To find JupyterLab extensions, search for the npm keyword jupyterlab-extension or the GitHub topic jupyterlab-extension. To learn more about extensions, see the user documentation.

The current JupyterLab releases are suitable for general usage, and the extension APIs will continue to evolve for JupyterLab extension developers.

Read the latest version's documentation on ReadTheDocs.

Getting started


install JupyterLab using conda, pip, or pipenv. Conda is recommended if you have no installation preference.

Project installation instructions from the git sources are available in the contributor documentation.


Conda is an open source package management system and environment management system that runs on Windows, macOS, and Linux. Conda packages and distributes software for any language, and by default uses the Anaconda repository managed by Anaconda Inc. To install conda, please see the conda installation instructions.

Install the JupyterLab conda package with:

conda install -c conda-forge jupyterlab


pip is a package management system for installing and updating Python packages, and comes with any Python installation. On Ubuntu, SUSE Enterprise Linux, openSUSE, and Fedora Linux, use the system package manager to install the python3-pip package. _The Hitchhiker's Guide to Python_provides guidance on how to install Python; Another option is to install Python directly from We suggest you upgrade pip before using it to install other programs.

JupyterLab requires Python 3.5 or higher.

  1. When using Windows with Python version 3.5 or higher, use the Python Launcher for Windows to use pip with Python version 3:
    py -3 -m pip install jupyterlab
  2. If the system has a python3 command (standard on Unix-like systems), install with the comand:
    python3 -m pip install jupyterlab
  3. Using the python command directly is another option, but this will use the current version of Python (which may be Python version 2 or version 3 if both are installed):
    python -m pip install jupyterlab

Some systems have a pip3 command that has the same effect as python3 -m pip and/or a pip command that behaves the same as python -m pip.

Adding --user after pip install will install the files to a local user install directory (typically ~/.local/ or %APPDATA%\Python on Windows) instead of the system-wide directory. This can be helpful, especially if writing to the system-wide directory is not permitted. However, the user-level bin directory must be added to the PATH environment variable in order to launch jupyter lab.


Pipenv provides users and developers of applications with an easy method to setup a working environment, however Python must be installed first. See the pipenv installation documentation to use Pipenv if it is not installed.

pipenv can be installed as:

pipenv install jupyterlab
pipenv shell

or from a git checkout:

pipenv install git+git://
pipenv shell

When using pipenv, in order to launch jupyter lab, activate the project's virtualenv. For example, in the directory where pipenv's Pipfile and Pipfile.lock live (i.e., where the above commands were run):

pipenv shell
jupyter lab

Installing with Previous Versions of Jupyter Notebook

When using a version of Jupyter Notebook earlier than 5.3, the following command must be run after installation to enable the JupyterLab server extension:

jupyter serverextension enable --py jupyterlab --sys-prefix


Start up JupyterLab using:

jupyter lab

JupyterLab will open automatically in the browser. See the documentation for additional details.

Prerequisites and Supported Browsers

Jupyter notebook version 4.3 or later is required. To check the notebook version, run the command:

jupyter notebook --version

The latest versions of the following browsers are currently known to work:

  • Firefox
  • Chrome
  • Safari

See our documentation for additional details.



To contribute to the project, please read the contributor documentation.

JupyterLab follows the Jupyter Community Guides.

Extending JupyterLab

To start developing an extension, see the developer documentation and the API docs.


JupyterLab uses a shared copyright model that enables all contributors to maintain the copyright on their contributions. All code is licensed under the terms of the revised BSD license.


JupyterLab is part of Project Jupyter and is developed by an open community. The maintenance team is assisted by a much larger group of contributors to JupyterLab and Project Jupyter as a whole.

JupyterLab's current maintainers are listed in alphabetical order, with affiliation, and main areas of contribution:

  • Chris Colbert, Project Jupyter (co-creator, application/low-level architecture, technical leadership, vision, PhosphorJS)
  • Afshin Darian, Two Sigma (co-creator, application/high-level architecture, prolific contributions throughout the code base).
  • Jessica Forde, Project Jupyter (demo, documentation)
  • Tim George, Cal Poly (UI/UX design, strategy, management, user needs analysis)
  • Brian Granger, Cal Poly (co-creator, strategy, vision, management, UI/UX design, architecture).
  • Jason Grout, Bloomberg (co-creator, vision, general development).
  • Fernando Perez, UC Berkeley (co-creator, vision).
  • Ian Rose, Quansight/City of LA (general core development, extensions).
  • Saul Shanabrook, Quansight (general development, extensions)
  • Steven Silvester, JPMorgan Chase (co-creator, release management, packaging, prolific contributions throughout the code base).

Maintainer emeritus:

  • Cameron Oelsen, Cal Poly (UI/UX design).

This list is provided to give the reader context on who we are and how our team functions. To be listed, please submit a pull request with your information.

Getting help

We encourage you to ask questions on the Discourse forum. A question answered there can become a useful resource for others.

Please use the GitHub issues page to provide feedback or submit a bug report.

Weekly Dev Meeting

We have videoconference meetings every week where we discuss what we have been working on and get feedback from one another.

Anyone is welcome to attend, if they would like to discuss a topic or just to listen in.

You can’t perform that action at this time.