GitHub - eraserhd/rep: A single-shot nREPL client designed for shell invocation

A single-shot nREPL client designed for shell invocation.

This connects to a running nREPL server (like kind started with lein repl, for example), sends some code to be evaluated, and prints the results and output.

$ rep '(clojure.tools.namespace.repl/refresh)'
:reloading ()
:ok
$ rep -S '(cider.piggieback/cljs-repl :app)' '(.clear js/localStorage)'
nil

Unlike other nREPL clients, rep does not try to maintain a persistent connection, meaning that thread-local variables and bindings like *e and *1 will not persist across invocations of rep. Perhaps there are other limitations because of this?