JupyterLab Overview
JupyterLab is the current-generation interface for the Jupyter ecosystem: a web-based IDE where notebooks, code consoles, files, terminals, and plugins live in one workspace with drag-and-drop layouts. It replaces the classic notebook UI as the default and supports every kernel and most classic-notebook extensions.
Why JupyterLab
- Layout freedom: open several notebooks, a terminal, and a file editor side by side; split and tab them like IDE panes.
- Integrated terminal and file manager - no second browser tab for the shell.
- Plugin architecture: features (git, variable inspector, language tools) are extensions installed from npm or the lab CLI.
- Same document model: .ipynb files are identical to classic notebooks; nothing is locked in.
Classic Notebook vs JupyterLab
| Classic Notebook | JupyterLab | |
|---|---|---|
| Layout | one notebook per tab | multi-document, resizable panels |
| Terminal | external | built-in |
| Extensions | nbextensions (fragile) | lab extensions (managed) |
| Status | maintained, fewer new features | active development, default UI |
Main Components
- Launcher: the home screen with buttons for new notebook, console, file, terminal.
- Activity bar (left): files, running kernels, command palette, settings.
- Notebook area: cells with the same keyboard model as the classic notebook.
- Status bar: kernel state, cell mode, and plugin indicators.
The Mental Model
Treat JupyterLab as a project workspace: a folder on disk, a server rooted at it, and a set of documents you open simultaneously. Everything you do in the UI maps to files on disk, so Lab is a front end, not a new document format.
Summary
JupyterLab is a web IDE for Jupyter: multi-document layouts with notebooks, consoles, terminals, and editors in one window, a plugin system for extensions, and full compatibility with .ipynb files and kernels. It is the default and actively developed interface; classic notebook remains available but feature development has moved to Lab.