rep
January 4, 2026 · View on GitHub
https://github.com/eraserhd/rep
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?
Installation
On Unix-like systems:
.... $ make && sudo make install ....
On Windows, this can be built with Mingw:
....
mingw32-make.exe ....
Usage, Options, and Examples
See https://github.com/eraserhd/rep/blob/develop/rep.1.adoc[the rep manpage].
Building with Nix
You can use https://nixos.org/nix/download.html[Nix] as the build tool.
.... $ nix-build . ....
A result symlink will appear in the current directory point to the build
output.
Running Tests
To run all the tests that CI runs, the way CI runs them (do this before issuing a pull request):
.... $ nix-build release.nix ....
Using with Kakoune
The rc/ folder contains scripts which add a ,e user mode to Kakoune. To
link this to Kakoune's autoload directory, do the following:
.... make && make install ln -sf /usr/local/share/kak/autoload/plugins/rep.kak ~/.config/kak/autoload/ ....
rep must be in the path for the plugin to work.
License
Copyright © 2018 Jason M. Felice
Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version.