Skip to content

Instant Clojure Dialect REPLs

A single command, no prerequisites, a working local REPL.

make -f <(curl -sL clojure.cc/repl.mk) <name>

The Makefile is hosted at clojure.cc/repl.mk. It uses Makes to auto-install both the dialect and its host language (Java, Go, Python, PHP, etc.) into a local cache directory. Your system stays clean.

Supported targets

Name Dialect Host language
bb Babashka Native (GraalVM)
clj Clojure Java
glj Glojure Go
gloat Gloat Go
hy Hy Python
janet Janet C
joker Joker Go
lein Leiningen Java
lg let-go Go
phel Phel PHP

Plus:

Name Purpose
shell Start a shell with all of the above installed
reset Delete the installation cache
help Print the help text

Examples

Launch a Glojure REPL:

make -f <(curl -sL clojure.cc/repl.mk) glj

Pin a Babashka version:

make -f <(curl -sL clojure.cc/repl.mk) bb BABASHKA-VERSION=1.12.218

Or simplify with a shell alias:

alias repl='make -f <(curl -sL clojure.cc/repl.mk)'

repl clj
repl bb BABASHKA-VERSION=1.12.218
repl shell

How it works

The launcher is a small Makefile that:

  1. Clones makeplus/makes into a temp directory ($TMPDIR/clojure-cc-repl/).
  2. Loads the language-specific module for the requested dialect.
  3. Downloads the host language toolchain (Java, Go, Python...).
  4. Downloads and installs the dialect.
  5. Drops you straight into its REPL.

Everything lives under that single temp directory and can be cleared with:

make -f <(curl -sL clojure.cc/repl.mk) reset

See makeplus/makes for the implementation details.

Want more dialects?

The launcher currently ships with the dialects listed above. If you'd like to see another Clojure dialect supported here, please open an issue on GitHub.