Jupyter Notebook can colloquially refer to two different concepts, either the user-facing application to edit code and text, or the underlying file format which is interoperable across many implementations.
Applications Jupyter Notebook (formerly IPython Notebook) is a
web-based interactive computational environment for creating
notebook documents. Jupyter Notebook is built using several
open-source libraries, including
IPython,
ZeroMQ,
Tornado,
jQuery,
Bootstrap, and
MathJax. A Jupyter Notebook application is a browser-based
REPL containing an ordered list of input/output cells which can contain code, text (using GitHub Flavored
Markdown), mathematics,
plots and
rich media. Jupyter Notebook is similar to the notebook interface of other programs such as
Maple,
Mathematica, and
SageMath, a computational interface style that originated with Mathematica in the 1980s. Jupyter interest overtook the popularity of the Mathematica notebook interface in early 2018. JupyterLab is a newer user interface for Project Jupyter, offering a flexible user interface and more features than the classic notebook UI. The first stable release was announced on February 20, 2018. In 2015, a joint $6 million grant from
The Leona M. and Harry B. Helmsley Charitable Trust,
The Gordon and Betty Moore Foundation, and
The Alfred P. Sloan Foundation funded work that led to expanded capabilities of the core Jupyter tools, as well as to the creation of JupyterLab. GitHub announced in November 2022 that JupyterLab would be available in its online Coding platform called Codespace. In August 2023, Jupyter AI, a Jupyter extension, was released. This extension incorporates
generative artificial intelligence into Jupyter notebooks, enabling users to explain and generate code, rectify errors, summarize content, inquire about their local files, and generate complete notebooks based on natural language prompts. JupyterHub is a multi-user server for Jupyter Notebooks. It is designed to support many users by spawning, managing, and proxying many singular Jupyter Notebook servers.
Documents A Jupyter Notebook document is a
JSON file, following a versioned schema, usually ending with the ".ipynb" extension. The main parts of the Jupyter Notebooks are: Metadata, Notebook format and list of cells. Metadata is a data Dictionary of definitions to set up and display the notebook. Notebook Format is a version number of the software. List of cells are different types of Cells for Markdown (display), Code (to execute), and output of the code type cells. While JSON is the most common format, it is possible to forgo some features (like storing images and metadata), and save notebooks as markdown documents using extensions like Jupytext. Jupytext is often used in conjunction with version control to make diffing and merging of notebooks simpler. == See also ==