-
Notifications
You must be signed in to change notification settings - Fork 4.4k
Jupyter kernels
Doug Torrance edited this page Oct 1, 2025
·
197 revisions
Kernel Zero is IPython, which you can get through ipykernel, and is still a dependency of jupyter. The IPython kernel can be thought of as a reference implementation, as CPython is for Python.
Here is a list of available Jupyter kernels. If you are writing your own kernel, feel free to add it to the table!
| Language(s) Version | Name | Jupyter/IPython Version | 3rd party dependencies | Example Notebooks | Notes |
|---|---|---|---|---|---|
| LFortran | Main repository at GitHub | ||||
| JupyterQ (KX Official Kernel) | Jupyter | kdb+ ≥ v3.5 64-bit, Python ≥ 3.6, embedPy | Notebook Examples | ||
| Dockerfile | dockerfile-kernel | JupyterLab | Docker | User should be in the docker group. | |
| C++ (root C++) | https://root.cern/install/ | ||||
| Dot/graphviz | jupyter-dot-kernel | Jupyter >= 4.0 | graphviz version 2.40.1 | ||
| ESP8266/ESP32 | MicroPython | Jupyter | USB or Webrepl | developer notebooks | relies on the micro-controller's paste-mode |
| Elixir >= 1.5 | IElixir | Jupyter >= 4.0 | Erlang OTP >= 19.3, Rebar |
example Boyle example example usage with Matrex library |
IElixir Docker image, IElixir Notebook in Docker |
| Emacs Lisp | ielisp | Jupyter | emacs-zmq | ||
| Erlang | IErlang | IPython 2.3 | rebar | ||
| Erlang >= 19, Elixir >= 1.4, LFE 1.2 | ierl | Jupyter >= 4.0 | Erlang, (optional) Elixir | ||
| F# | IFSharp | Jupyter 4 | Features | ||
| Forth | IForth | IPython >= 3 | |||
| Forth | peforth | IPython 6/Jupyter 5 | Example | python debugger in FORTH syntax | |
| Fortran 2008/2015 | Coarray-Fortran | Jupyter 4.0 | GFortran >= 7.1, OpenCoarrays, MPICH >= 3.2 | Demo, Binder demo | Docker image |
| GAP >= 4.10 | GAP Kernel | Jupyter | Binder demo | A Jupyter kernel for the computational algebra system GAP. | |
| Galileo >= 0.1.3 | iGalileo | Jupyter >= 4, JupyterLab | Docker image | ||
| Ghc >= 7.6 | IHaskell | Demo | |||
| Gnuplot | Gnuplot Kernel | Example | MetaKernel | ||
| Go >= 1.21 | GoNB | Jupyter >= 5 |
Tutorial Binder Live Demo |
||
| Go >= 1.4 | IGo | Unmaintained, use gophernotes | |||
| Go >= 1.6 | gopherlab | Jupyter 4.1, JupyterLab | ZeroMQ (4.x) | examples | Deprecated, use gophernotes |
| Go >= 1.8 | lgo | Jupyter >= 4, JupyterLab | ZeroMQ (4.x) | Example | Docker image |
| Go >= 1.9 | Gophernotes | Jupyter 4, JupyterLab, nteract | ZeroMQ 4.x.x | examples | docker image |
| GrADS >= 2.0 | GrADS kernel | ||||
| Guile 2.0.12 | Guile | Jupyter 5.2 | guile-json, openssl | ||
| HiveQL | HiveQL Kernel | Jupyter >= 5 | pyhive | Display HiveQL queries in HTML tables | |
| Home Assistant | PyScript | Jupyter | Home Assistant | Tutorial | |
| Hy | Hy Kernel | Jupyter | Tutorial | treats Hy as Python pre-processor | |
| Hy | Calysto Hy | Jupyter | Tutorial | based on MetaKernel (magics, shell, parallel, etc.) | |
| IDL | idl_kernel | IDL seem to have a built-in kernel starting with version 8.5 | |||
| Intel Assembly Language | Emu86 Kernel | Jupyter | Tutorial | ||
| Io.js | jove | ||||
| J 805-807 (J901beta) | J | Jupyter Notebook/Lab | Examples | ||
| Java & Rascal | Bacatá | Jupyter | ZeroMQ & Rascal | Example | A Jupyter kernel generator for domain-specific languages. |
| Java 11+, Groovy, Javascript, Kotlin, Scala, Apache Spark, and more | Ganymede | Jupyter >= 4.0 | JShell, Apache Maven Resolver | Examples | |
| Java 9 | IJava | Jupyter | Java JDK >= 9 | Binder online demo | Based on the new JShell tool |
| Java 11+ | DFLib JJava | Jupyter | Jupyter and JVM | Started as a fork of iJava. Modern, active and well-supported. Provides extensions API for custom library integrations | |
| JavaScript, Ruby, Python, R, and more | IPolyglot | Jupyter | GraalVM | Example Polyglot Notebook | Dockerfile |
| Julia >= 0.3 | IJulia | ||||
| Jython 2.7 | IJython | ||||
| Jython>=2.7.0 | Jython | Jupyter>=4.0 | Java>=7 | Java based JSR223 compliant | |
| Kotlin | kotlin-jupyter | Jupyter | Java >= 8 | Samples | |
| Livescript >= 1.5 | jp-LiveScript | Based on IJavascript and jpCoffeescript | |||
| Lua | Lua Kernel | ||||
| Lua | IPyLua | Fork of Lua Kernel | |||
| Lua | ILua | ||||
| Lua | Lua (used in Splash) | ||||
| Mac Os X | Pharo Smalltalk | IPython >= 3 | Binder demo | Paro 64 bits native kernel, zeromq | |
| Macaulay2 | Macaulay2 Jupyter Kernel | Macaulay2 | Demo | ||
| Mathics | IMathics | ||||
| MATLAB >= 2016b | imatlab | ipykernel >= 4.1 | |||
| Matlab | MATLAB Kernel | Jupyter | pymatbridge | Example | MetaKernel |
| Matlab | MKernel | Jupyter | ipykernel, matlabengine, wurlitzer | Example | Optimized for both Jupyter and Quarto |
| Maxima | Maxima-Jupyter | Jupyter | Quicklisp | ||
| MIPS32 Assembly Language | MIPS Jupyter Kernel | Jupyter | Python3, SPIM | Example | Driven by Python3 and Pexpect |
| MIT Scheme 9.2 | mit-scheme-kernel | Jupyter 4.0 | |||
| Mochi | Mochi Kernel | ||||
| MongoDB | iMongo | ||||
| Natural languages | iTTS | speech-dispatcher | Example | Currently cannot output sound into files or blobs because of limitations of speech-dispatcher | |
| NodeJS, Babel, Clojurescript | jupyter-nodejs | Jupyter, iPython 3.x | Examples | ||
| NodeJs 12 | nelu-kernelu | Jupyter | NodeJs 12.3+ | Examples | An advanced NodeJs Jupyter kernel supporting comms and displays among other things. |
| NodeJs >= 0.10 | IJavascript | ||||
| OCaml >= 4.01 | IOCaml | IPython >= 1.1 | opam | ||
| OCaml >= 4.02 | OCaml-Jupyter | Jupyter >= 4.0 | opam | Example | Docker image |
| Octave | IOctave | Jupyter | Example | MetaKernel | |
| Octave | xeus-octave | Jupyter | Example | ||
| PARI/GP >= 2.9 | pari_jupyter | Jupyter 4 | |||
| PHP >= 5.4 | IPHP | IPython >= 2 | composer | DEPRECATED, use Jupyter-PHP | |
| PHP >= 7.0.0 | Jupyter-PHP | Jupyter 4.0 | composer, php-zmq | ||
| Perl 5 | IPerl | ||||
| Perl 6 | IPerl6 | ||||
| Perl 6.C | Jupyter-Perl6 | Jupyter | Rakudo Perl 6 | ||
| Perl 6.c | Perl6 | Jupyter >= 4 | zeromq 4 | ||
| Pike >= 7.8 | Pike | IPython >= 3 | Wrapper, Based on Bash Kernel | ||
| PostScript | IPostScript |
gs (ghostscript) |
|||
| Powershell | PowerShell | IPython >= 3 | Wrapper, Based on Bash Kernel | ||
| Processing.js >= 2 | Calysto Processing | MetaKernel | |||
| Prolog | Prolog | MetaKernel | |||
| Purescript | IPurescript | ||||
| Pyspark (Python 2 & 3), Spark (Scala), SparkR (R) | sparkmagic | Jupyter >=4.0 | Livy | Notebooks, Docker Images | This kernels are implemented via the magics machinery of the ipython kernel to use Spark via Livy |
| Python | MetaKernel Python | MetaKernel | |||
| Python 2.7 | AIML chatbot | Jupyter 4 | pyAIML | Examples | |
| Python 2.7 or >=3.4 | SPARQL | Jupyter 4 | rdflib, SPARQLWrapper | Examples | Optional GraphViz dependency |
| Python 2.7, >= 3.3 | IPyKernel | Jupyter 4.0 | pyzmq | ||
| Python >= 3.3 | sas_kernel | Jupyter 4.0 | SAS 9.4 or higher | ||
| Python >= 3.5, scala >= 2.11 | spylon-kernel | ipykernel >=4.5 | Apache Spark >=2.0 | Example | MetaKernel |
| Python >=3.4 | SoS | Jupyter 4 | Support kernels for bash, python2/3, matlab/octabe, javascript, julia, R, Stata, SAS, and more | Examples | Workflow system, Multi-Kernel support |
| Python>=3.7.5, Groovy>3 | Micronaut | Micronaut | Examples | Compatible with BeakerX | |
| Python | Jupyter on Golem | JupyterLab >= 4.0.2 | yagna >=0.12.2, jupyter >= 1.0.0, pandas >=2.0.2, tensorflow-cpu >= 2.12.0, matplotlib >= 3.7.1 | Examples | Python kernel, which enables JupyterLab to run Python Notebooks on decentralized Golem Network |
| Q | KDB+/Q Kernel (IKdbQ) | IPython >= 3.1 | qzmq, qcrypt | ||
| Q | KDB+/Q Kernel (KdbQ Kernel) | Jupyter | |||
| Q | PyQ Kernel | Jupyter | Python for kdb+ | ||
| Q# | IQSharp | Jupyter 4 | QuantumKatas | ||
| R 3.2 | IRKernel | IPython 3.0 | rzmq | ||
| R >= 4.0 | RKernel | Jupyter | R packages: tools, utils, pbdZMQ (>= 0.2-1), jsonlite (>= 0.9.6), uuid, digest, R6, svglite, repr, htmltools, htmlwidgets, base64enc; Python package: jupyter-server-proxy | Example Notebooks | A kernel for R, a language and environment for statistical computing and graphics. This kernel relies on the the more recent R6 class system and fully supports interactive widgets based on ipywidgets version 8 |
| Racket >= 6.10 | IRacket | IPython >= 3 | Racket, ZeroMQ | Example | |
| Raku | Raku-Jupyter-Kernel | Jupyter | Raku | examples | |
| Redis | Redis Kernel | IPython >= 3 | Wrapper | ||
| Ruby >= 2.3 | IRuby | ||||
| Rust >= 1.29.2 | EvCxR Jupyter Kernel | Jupyter 4, JupyterLab, nteract | ZeroMQ 4.x.x | Examples, Binder online demo | |
| SQL | Teradata SQL kernel and extensions | JupyterLab >= 3.0 | Example Notebooks | ||
| SQL | mariadb_kernel | Jupyter Notebook/Lab | Internal Dependencies, MariaDB Server | Binder notebook | A Jupyter kernel for the MariaDB Open Source database |
| SWI-Prolog | SWI-Prolog | Jupyter >=4.0 | https://hub.docker.com/r/jm1337/jupyter-prolog-notebook/ | ||
| Sbt >= 1.0.0 | Isbt | Jupyter 4.3.0 | sbt | example | |
| Scala | IScala | ||||
| Scala, Python, R | Apache Toree (Spark Kernel) | Jupyter | Spark >= 1.5 | Example | |
| Scala>=2.10 | almond (Jupyter-scala) | IPython>=3.0 | examples | Docs | |
| Scheme | Calysto Scheme | Reference Guide | MetaKernel | ||
| Scilab | IScilab | Jupyter | Example | MetaKernel | |
| SetlX | ISetlX | Jupyter | Example | ||
| Singular 4.1.0 | jupyter_kernel_singular | Jupyter | Demo | Optional PySingular for better performance, surf for images, details | |
| Skulpt Python | Skulpt Python Kernel | Examples | MetaKernel | ||
| GNU Smalltalk | GNU Smalltalk Kernel | Jupyter | GNU Smalltalk | ||
| Stata | stata_kernel | Jupyter >=5 | Stata >=14 | Communicates natively with Stata | |
| Stata | iPyStata | Jupyter | Stata | Example Notebook | Implemented using magics machinery of ipython. |
| Stata >= 17 | pystata-kernel | Communicates with Stata through the pystata official Python bindings | |||
| Stata >= 17 | nbstata | Jupyter >= 5.2 | pystata, ipydatagrid | stata example | |
| StuPyd | StuPyd Kernel | Jupyter >= 4 | Python3, antlr4-python3-runtime >= 4.7.1 | nbviewer demo | |
| Systemtap >= 4.9, Python >= 3.10 | ISystemtap | ipykernel>=6.15 | NodeJS | ISystemtap.ipynb | Podman image |
| TaQL | TaQL | Jupyter | python-casacore | TaQL tutorial | |
| Tcl 8.5 | Tcl | Jupyter | Based on Bash Kernel | ||
| Tcl 8.6 | Tcl | Jupyter | Binder demo | Written from scratch with a patched Tcl zmq binding | |
| Torch 7 (LuaJIT) | ITorch | IPython >= 2.2 and <= 5.x | |||
| Typescript 3.7.2, JavaScript ESNext | tslab | Node.js | Example notebooks | Jupyter kernel for JavaScript and TypeScript - npm | |
| Typescript >= 2.0 | ITypeScript | Node.js >= 0.10.0 | |||
| V1.1 | Common Workflow Language (CWL) Kernel | examples directory | |||
| VPython | IVisual | Ball-in-Box | |||
| Vim script | A Jupyter kernel for Vim script | Jupyter | |||
| Whitespace 0.1 | Whitenote | Jupyter>=5 | Go>=1.19 | example.ipynb | Docker image |
| Wolfram Mathematica | Wolfram Language for Jupyter | Wolfram Engine, i.e., a Wolfram Desktop or Mathematica installation; wolframscript is optional but recommended |
A Jupyter kernel for the Wolfram Language (Mathematica). | ||
| Wolfram Mathematica | IWolfram | Wolfram Mathematica(R), Metakernel | MetaKernel | ||
| Xonsh | Xonsh | Example | MetaKernel | ||
| YACAS | Yacas | ||||
| Zsh >= 5.3 | Z shell | IPython >= 3 | Example |
Many kernels are available for installation on PyPI.
- Brython Magics - A magic trick to allow you to use Brython code (client-side) in other notebooks
- pixiedust_node - PixieDust extension that enable a Jupyter Notebook user to invoke Node.js commands.
Making kernels for Jupyter in the documentation.
Testing kernels against message specification (work in progress)
Tool to test a kernel against specification (work in progress)