A Jupyter kernel for Clojure - run Clojure code in Jupyter Lab, Notebook and Console.
examples folder of the repository are there 3 example notebooks showing some of the
features of clojupyter. See this
There are 3 example notebooks because Jupyter offers several distinct
user interfaces - Jupyter Lab, Jupyter Notebook and Jupyter Console -
which have different feature sets for which clojupyter offers
different support. We have one example notebook showing the features
shared by Lab and Notebook and for each showing their distinct
features. According to the Jupyter development roadmaps, Jupyter
Notebook will eventually be phased out and completely replaced by
You can also use existing JVM charting libraries since you can render any Java BufferedImage.
Clojupyter can be used in several ways, please read Usage Scenarios to
find out which type of use model best fits you needs, and how to install Clojupyter in that
To start Jupyter Notebook do:
and choose 'New' in the top right corner and select 'Clojure (clojupyter...)' kernel.
To start Jupyter Lab do:
You can also start the Jupyter Console by:
jupyter-kernelspec list to list all available kernels. So e.g. in case of installing clojupyter using conda the start command is:
If you are using Clojupyter as a library, you can use Clojupyter's command line interface to perform
operations such as listing, installing, and removing Clojupyter kernels.
For example, in a Clojure repository which includes Clojuputer, you can get the list of available
bash> clj -m clojupyter.cmdline list-commands
Clojupyter v0.2.3 - List commands
You can invoke Clojupyter commands like this:
clj -m clojupyter.cmdline <command>
or, if you have set up lein configuration, like this:
lein clojupyter <command>
See documentation for details.
See Command Line Interface for more details.
Development progress is based on voluntary efforts so we can't make any promises, but the
wish list for clojupyter development looks something like this:
- [ ] Front-end: Support reindentation, Parinfer, syntax highlighting in code blocks
- [ ] Connect running kernel to running Clojure instances
- [ ] Clarify/simplify external access to rendering - eliminate dependency from Oz to clojupyter
- [ ] Support interactive Jupyter Widgets
Feed-back on development priorities is welcome, use the issue
list for input and suggestions.
If you submit a pull request that ends up getting merged, we will give you commit access.
Can you improve this documentation? These fine people already did:
Klaus Harbo, roryk, Rory Kirchner, Aria Haghighi, Song Mingxu, Bost, Peter Denno, William Farmer, Rasmus Buchmann, Jieshun, Kane Blueriver & didier amyotEdit on GitHub