# [JupyterLab](http://jupyter.github.io/jupyterlab/) An extensible computational environment for Jupyter. **This is a very early pre-alpha developer preview and not suitable for general usage yet. Features and implementation are subject to change.** With JupyterLab, you can create a computational environment for Jupyter that meets your workflow needs. Here's a quick preview of JupyterLab: JupyterLab Demo ## Getting started ### Prerequisites Jupyter notebook version 4.2 or later ### User installation Install JupyterLab from the command line: ```bash pip install jupyterlab jupyter serverextension enable --py jupyterlab ``` Start up JupyterLab with the command: ```bash jupyter lab ``` JupyterLab should open automatically in your browser. You can also access it by opening a browser to the notebook server's URL (e.g., `http://localhost:8888`). ---- ## Documentation - [API Docs](http://jupyter.github.io/jupyterlab/) - [Architecture tutorial - useful for individuals developing JupyterLab](http://jupyterlab-tutorial.readthedocs.io/en/latest/index.html) ---- ## Development of JupyterLab The remainder of this document provides information for individuals that are developing JupyterLab. ### Prerequisites - Jupyter notebook version 4.2 or later - npm (preferably version 5 or later) ### Installation First fork the JupyterLab repo in the GitHub UI. Then clone the repo locally and building using these commands: ```bash git clone https://github.com//jupyterlab.git cd jupyterlab npm install pip install -e . # will take a long time to build everything jupyter serverextension enable --py jupyterlab ``` ### Run JupyterLab Start up Jupyterlab with the command: ```bash jupyter lab ``` Open a browser to the notebook server's URL (e.g., `http://localhost:8888`). ### Run Tests Follow the source build instructions first. Enter: ```bash npm test ``` ### Build and Run the Examples To install and build the examples in the `examples` directory: - Follow the source build instructions first. - Requires a Python install with the Jupyter notebook (version 4.2 or later). - Run the command: ```bash npm run build:examples ``` To run an example: - Change into the specific example's directory in the `examples` directory - run `python main.py` ### Build API Docs Follow the source build instructions first. Enter: ```bash npm run docs ``` Navigate to `docs/index.html`. ---- ## High level Architecture The JupyterLab application is made up of two major parts: - an npm package - a Jupyter server extension (Python package) Each part is named `jupyterlab`. The [developer tutorial documentation](http://jupyterlab-tutorial.readthedocs.io/en/latest/index.html) provides additional architecture information. ## The NPM Package The npm package source files are in the `src/` subdirectory. **Prerequisites** - [node](http://nodejs.org/) (preferably version 5 or later) - Jupyter notebook server version 4.2 or later (to run examples) ```bash npm install --save jupyterlab ``` ### Build the NPM Package from Source ```bash git clone https://github.com/jupyter/jupyterlab.git cd jupyterlab npm install npm run build:all ``` **Rebuild** ```bash npm run clean npm run build:all ``` ## The Jupyter Server Extension The Jupyter server extension source files are in the `jupyterlab/` subdirectory. To use this extension, you need the Jupyter notebook server version 4.2 or later. ### Build the JupyterLab server extension When you make a change to JupyterLab npm package source files, run: ```bash npm run build:serverextension ``` to build the changes and refresh your browser to see the changes. To have the system build after each change to the source files, run: ```bash npm run watch:serverextension ``` and refresh the browser after each successful update. ## Bundle for the Browser Follow the package install instructions first. Any bundler that understands how to `require()` files with `.js` and `.css` extensions can be used with this package. **Note:** This npm module is fully compatible with Node/Babel/ES6/ES5. Simply omit the type declarations when using a language other than TypeScript. ## Supported Runtimes The runtime versions which are currently *known to work* are listed below. Earlier versions may also work, but come with no guarantees. - IE 11+ - Firefox 32+ - Chrome 38+ Note: "requirejs" must be included in a global context (usually as a `