JupyterLab 3.0 now ships with a Debugger front-end by default.

This means that notebooks, code consoles and files can now be debugged from JupyterLab directly!


For the debugger to be enabled and visible, a kernel with support for debugging is required.

Here is a list of kernels that are known to be supporting the Jupyter Debug Protocol:

  • xeus-python: Jupyter kernel for the Python programming language

  • xeus-robot: Jupyter kernel for Robot Framework

  • ipykernel: IPython Kernel for Jupyter

Other Jupyter Kernels can also support debugging and be compatible with the JupyterLab debugger by implementing the Jupyter Debugger Protocol.

If you know of other kernels with support for debugging, please open a PR to add them to this list.

Here is an example of how to install ipykernel and xeus-python in a new conda environment:

conda create -n jupyterlab-debugger -c conda-forge jupyterlab=3 "ipykernel>=6" xeus-python
conda activate jupyterlab-debugger


For Python, both ipykernel (6.0+) and xeus-python support debugging.

Enable the debugger, set breakpoints and step into the code:

A GIF showing how to enable the debugger within the kernel.

Tutorial Notebook

There is also a tutorial notebook to try the debugger that is available on the jupyter-ide-demo repo. and can be run on Binder here.