Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

IOCaml logo

Build Status


IOCaml is an OCaml kernel for the IPython notebook. This provides a REPL within a web browser with a nice user interface including markdown based comments/documentation, mathjax formula and the possibility of generating all manner of HTML based output media from your code.

See also

This repository hosts the iocaml-kernel package.

Example picture


Installation requires opam and OCaml >= 4.01.0. To use the OCaml server

$ opam install iocaml

which will install the kernels and server. The individual kernels can be instaled with

$ opam install iocaml-kernel
$ opam install iocamljs-kernel


Simply run iocaml from the command-line. This should automatically start the iocaml web interface and open a browser window

$ iocaml

When opening a new notebook,an iocaml-kernel process should be automatically started. For example enter let a = 12 + 30, hit ctrl-enter, and you should see the response val a : int = 42.

Note that starting up the kernel might take a while the first time, during which your input prompt will look like In [*].


The kernel can also be used with the IPython/Jupyter server.

Note: To use IOCaml with the latest IPython/Jupyter notebook, you'll need to start it with --Session.key='':

jupyter notebook --Session.key=''

This disables some security measures that iocaml doesn't yet support.

Command line options

The following options may be given to the IOCaml-kernel (via the IPython profile config) or IOCaml-server.

  • -log <filename> open log file
  • -init <file> load file instead of default init file
  • -completion enable tab completion
  • -object-info enable introspection

The following option is for use with IPython

  • -connection-file <filename> connection file name