JupyterLab computational environment.
JavaScript TypeScript Python CSS Shell HTML
Switch branches/tags
Clone or download
Failed to load latest commit information.
buildutils Add a script to check/update the latest and next tags. (#4899) Jul 15, 2018
design Codespell run on the code base Jul 12, 2018
dev_mode lazy load vega-embed (#4706) Jul 7, 2018
docs Update notebook dev example docs. (#4938) Jul 21, 2018
examples Codespell run on the code base Jul 12, 2018
git-hooks Add correct target as per Steve's feedback Apr 25, 2017
jupyter-config/jupyter_notebook_config.d Add data_files support (#3546) Jan 6, 2018
jupyterlab [WIP] remove "Beta" (#4920) Jul 19, 2018
packages Merge pull request #4932 from declanvk/fix-editor-selection-change Jul 19, 2018
scripts Linting Cleanup (#4905) Jul 18, 2018
tests Prevent cascading test failures due to failing to await a save. (#4895) Jul 13, 2018
.eslintignore Add eslint interop Jul 2, 2018
.eslintrc Add eslint interop Jul 2, 2018
.gitattributes Upgrade to yarn 1.5.1 Mar 6, 2018
.gitignore Make new `build:stats` and `build:prod:stats` targets in dev_mode to … Jun 11, 2018
.lintstagedrc Linting Cleanup (#4905) Jul 18, 2018
.prettierignore Add eslint interop Jul 2, 2018
.prettierrc Add eslint interop Jul 2, 2018
.travis.yml Linting Cleanup (#4905) Jul 18, 2018
.yarnrc Enable ignore-optional for yarn Apr 27, 2018
CHANGELOG.md Make codebase prettier Jul 2, 2018
LICENSE Update copyright notice. (#4931) Jul 19, 2018
MANIFEST.in Include docs in tarball (#3897) Feb 26, 2018
README.md [WIP] remove "Beta" (#4920) Jul 19, 2018
RELEASE.md Update prerelease workflow (#4906) Jul 17, 2018
appveyor.yml Don't install firefox in appveyer Jun 29, 2018
clean.py wip update packaging Dec 2, 2017
environment.yml Update environment.yml for new binder May 30, 2017
lerna.json Use npm for publish command. Apr 11, 2018
package.json Linting Cleanup (#4905) Jul 18, 2018
pytest.ini wip update packaging Dec 2, 2017
readthedocs.yml Avoid installing jlab at all (#4929) Jul 19, 2018
setup.cfg Include LICENSE file in wheels Jun 8, 2018
setup.py [WIP] remove "Beta" (#4920) Jul 19, 2018
setupbase.py Codespell run on the code base Jul 12, 2018
tsconfigbase.json Only emit the list of compiled files when doing a watch. Jun 9, 2018
tslint.json Linting Cleanup (#4905) Jul 18, 2018
yarn.lock Linting Cleanup (#4905) Jul 18, 2018


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


Build Status Documentation Status Google Group Join the Gitter Chat Binder

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. It offers 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. Eventually, JupyterLab will replace the classic Jupyter Notebook.

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

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

Read the latest version of our documentation on ReadTheDocs.

Getting started


You can install JupyterLab using conda, pip, or pipenv.

Instructions on how to install the project from the git sources are available in our contributor documentation.


If you use conda, you can install as:

conda install -c conda-forge jupyterlab


If you use pip, you can install it as:

pip install jupyterlab

If installing using pip install --user, you must add the user-level bin directory to your PATH environment variable in order to launch jupyter lab.


If you use pipenv, you can install it as:

pipenv install jupyterlab
pipenv shell

or from a git checkout:

pipenv install git+git://github.com/jupyterlab/jupyterlab.git#egg=jupyterlab
pipenv shell

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

pipenv shell
jupyter lab

Installing with Previous Versions of Jupyter Notebook

If you are using a version of Jupyter Notebook earlier than 5.3, then you must also run the following command 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 your browser. See our documentation for additional details.

Prerequisites and Supported Browsers

Jupyter notebook version 4.3 or later. To check the notebook version:

jupyter notebook --version

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

  • Firefox
  • Chrome
  • Safari

See our documentation for additional details.



If you would like to contribute to the project, please read our contributor documentation.

JupyterLab follows the official Jupyter Code of Conduct.

Extending JupyterLab

To start developing your own extension, see our developers documentation and API docs.


We use 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 of contributors. Our maintainer team is accompanied 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, UC Berkeley (Real-time collaboration, document architecture).
  • 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 help provide context about who we are and how our team functions. If you would like to be listed, please submit a pull request with your information.

Getting help

We encourage you to ask questions on the mailing list, and you may participate in development discussions or get live help on Gitter. Please use our issues page to provide feedback or submit a bug report.