JupyterLab IDE Customization


I would like to customize JupyterLab to offer a “Python-IDE like” experience on top of its notebooks. This would allow users to write python code, run and debug it, and show console outputs. For instance, I believe Quantopian research UI was essentially a customized JupyterLab (here is an example of what it looked like)

I am looking for one (or both) of the following two things:

  1. Help sourcing info. Could anyone point me to interesting references, with maybe tutorial showing how to achieve this level of customization?
  2. A Software Dev interested in working on JupyterLab customization in the context of a Quantopian like project for crypto.

Thank you!

JupyterLab already has a visual debugger integrated in recent versions. For coding assistance you may be interested in GitHub - jupyter-lsp/jupyterlab-lsp: Coding assistance for JupyterLab (code navigation + hover suggestions + linters + autocompletion + rename) using Language Server Protocol. There are other excellent extensions, so I believe that customization is really about picking the extensions and contributing back to improve features as needed.


@krassowski thank you for the help! I was able to find the debugger you were talking about in the latest lab version. Do you know if there is a way to make it work to run “*.py” files? Or maybe you would be aware of another extension to do that? Right now I can only debug notebook cells, not python scripts. I can import a script from a notebook and debug, but I would like to be able to run/debug a script from jupyter directly.

To debug in Python scripts you need to attach a kernel to the script. You can easily do that from context menu (right click on the editor) choosing “Create Console for Editor” as explained in this comment:


I agree that this should probably be better documented.

1 Like

@krassowski thanks again, that helps, but doesn’t seem to be available in my install. The toggle for debug doesn’t show up when dealing with a python file for some reason. Is there any documentation I could find about this?

1 Like

I see, it indeed does not seem do work in JupyterLab 3.2. I think there was a regression, possibly related to Removed debug switch, added bug button state update by 3coins · Pull Request #10727 · jupyterlab/jupyterlab · GitHub.

1 Like