Skip to content
create a read-eval-print loop out of any command
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

repl.c creates a read-eval-print loop out of any command. It is a simple and readable C program that requires GNU readline.

In other words, it's a REPL for command-line interfaces that always require a "prefix" command. If you're tired of having to type git everytime you want to issue a git command:

$ git init
$ git add .
$ git status
$ git commit
$ git push
$ git status

... then you can do this instead:

$ repl git
git > init
git > add .
git > status
git > commit
git > push
git > status

The program automatically prefixes each command with git, so that you don't have to type it.


The following commands install repl in /usr/local/bin and repl.1, its man page, in /usr/local/man:

$ make
$ make install

If you want to install it somewhere different from /usr/local, edit the Makefile and modify the PREFIX variable.

To uninstall both binary and man page, run make uninstall.

REPL(1) - General Commands Manual


repl - create a REPL out of any command


repl command


When invoked, the repl utility puts the user in a read-eval-print loop, in which it reads input from the user, appends it to the command provided by the single argument, and lets the shell evaluate the full string.

Built on GNU readline, it supports history and Emacs key bindings.

repl is useful for command-line interfaces built on a "prefix command" that has to be typed over and over preceding the actual command, like git(1).


$ repl git
git > status
On branch master
Your branch is up to date with 'origin/master'.
git >


repl is written by John Ankarström, available {on the web|by e-mail} at john{.|@}

OpenBSD 6.4 - January 10, 2019

You can’t perform that action at this time.