Kernels (Programming Languages)

The Jupyter team maintains the IPython project which is shipped as a default kernel (as ipykernel) in a number of Jupyter clients. Many other languages, in addition to Python, may be used in the notebook.

The community maintains many other language kernels, and new kernels become available often. Please see the list of available kernels for additional languages and kernel installation instructions to begin using these language kernels.


Kernels are programming language specific processes that run independently and interact with the Jupyter Applications and their user interfaces. ipykernel is the reference Jupyter kernel built on top of IPython, providing a powerful environment for interactive computing in Python.

jupyter-client contains the authoritative description of the Jupyter messaging protocol which is used by clients to communicate with the kernels.

Xeus facilitates the implementation of kernels for Jupyter and provides a number of kernels such as xeus-cling (C++), xeus-sql (SQL) and many more.


interactive computing in Python. Documentation | Repo


the wrapper around IPython which enables using IPython as a kernel Repo


library facilitating the implementation of kernels for Jupyter. It implements the Jupyter Kernel protocol so developers can focus on implementing the interpreter part of the kernel. Documentation | Repo

See also

Jupyter kernels

A full list of kernels available for other languages. Many of these kernels are developed by third parties and may or may not be stable.