git clone ''

(ql:quickload :shellpool)


Shellpool is a way to run external programs from within a Common Lisp program. It features:

Note: Shellpool is not suitable for running sub-commands that need access to command-line input from the user or for TTY-based programs.


Related Lisp Libraries

If shellpool isn't quite right for you, here are some related Lisp libraries.

License and History

Shellpool is Copyright (C) 2014-2015 Kookamara LLC. It has an MIT/X11 style license. It was written by Jared Davis.

Shellpool is a successor to “tshell”, a mechanism for running external programs from Clozure Common Lisp. Tshell was developed by Centaur Technology and was distributed as a library for ACL2; it was also released under the MIT license. It was mainly used for running SAT solvers, which are programs that can easily get “stuck” on hard problems, and hence often need to be interrupted. It worked very well for this purpose.

Unfortunately tshell was inherently single-threaded and wasn't portable beyond CCL on Linux. Shellpool is a complete rewrite that solves these problems, by explicitly having a pool of shells (to support multiple threads), by adding compatibility wrappers (to support multiple Lisps), and by reworking the core Bash code (to support multiple OSes).

Shellpool has now replaced Tshell in the ACL2 books and is now being used, in production, on an everyday basis.