Skip to content
Stand-alone ClojureScript REPL
C Clojure Shell CSS Roff CMake Other
Branch: master
Clone or download

Latest commit

Latest commit 4b61b2a Mar 22, 2020


Type Name Latest commit message Commit time
Failed to load latest commit information.
doc 2.25.0 Mar 22, 2020
int-test Update to use https (#919) May 7, 2019
planck-c 2.25.0 Mar 22, 2020
planck-cljs Update to ClojureScript 1.50.597 (#1024) Nov 20, 2019
planck-man 2.25.0 Mar 22, 2020
planck-sh Accept but ignore JVM-related dep-opts Apr 15, 2018
script Use Paredit for indentation (#974) Jun 17, 2019
site Fix missing image on official site (#933) May 22, 2019
.drone.yml Make C compiler warnings be errors in CI (#953) Jun 2, 2019
.gitignore Use Paredit for indentation (#974) Jun 17, 2019
.travis.yml Make C compiler warnings be errors in CI (#953) Jun 2, 2019 2.25.0 Mar 22, 2020
LICENSE Add EPL Jul 22, 2015 2.25.0 Mar 22, 2020


A stand-alone ClojureScript REPL for macOS and Linux based on JavaScriptCore.

Home page:


On macOS:

brew install planck

On Ubuntu:

sudo add-apt-repository ppa:mfikes/planck
sudo apt-get update
sudo apt-get install planck

For other Linux distros, download a binary or see Building below.


cljdoc badge

Launch Planck by entering planck or plk at the terminal.

The plk script executes planck, while integrating with the clojure CLI tool to add support for deps.edn and classpath-affecting options such as -Aalias.

Get help on command-line options by issuing planck -h or plk -h.

Ported Clojure Functionality

It is possible to write Clojure-idiomatic scripts like the following:

(require '[planck.core :refer [line-seq with-open]]
         '[ :as io]
         '[ :as shell])

(with-open [rdr (io/reader "input.txt")]
  (doseq [line (line-seq rdr)]
    (println (count line))))

(shell/sh "say" "done")

Many of the familiar functions and macros unique to Clojure have been ported:

clojure.core/ -> planck.core/

file-seq, find-var, load-reader, load-string, line-seq, intern, ns-aliases, ns-refers, ns-resolve, read, read-line, read-string, resolve, slurp, spit, with-in-str, with-open ->

as-file, as-relative-path, as-url, delete-file, file, input-stream, make-input-stream, make-output-stream, make-parents, make-reader, make-writer, output-stream, reader, resource, writer ->

sh, with-sh-dir, with-sh-env


If using macOS or Ubuntu, you can install pre-built binaries as described above under "Installing". The instructions here can be used to build, test, and optionally install Planck on your machine.


See Building Wiki for setting up OS-specific build tooling and dependencies.

Pre-made build environments for various environments are available in build-envs.



The resulting binary will be planck-c/build/planck.

Specify --fast to quickly build a development version that skips Closure optimization:

script/build --fast

If you specify -Sdeps or -R<alias>, it will be passed through to the underlying clojure command during the build process. This can be used to specify a ClojureScript dep to use.


Build Status Travis (macOS & Linux on x86)

Build Status Drone (Linux on ARM)



The following will install Planck under the prefix /usr/local:

sudo script/install

If you'd like to install Planck under a different prefix, you may pass -p. For example:

sudo script/install -p /usr


Planck™ copyright © 2015–2020 Mike Fikes and Contributors

Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version.

You can’t perform that action at this time.