Are you happy with your logging solution? Would you help us out by taking a 30-second survey? Click here


A Unix shell embedded in scheme

Subscribe to updates I use scsh

Statistics on scsh

Number of watchers on Github 229
Number of open issues 7
Average time to close an issue about 2 months
Main language Scheme
Average time to merge a PR 3 days
Open pull requests 0+
Closed pull requests 0+
Last commit over 3 years ago
Repo Created over 8 years ago
Repo Last Updated over 1 year ago
Size 1.03 MB
Organization / Authorscheme
Page Updated
Do you use scsh? Leave a review!
View open issues (7)
View scsh activity
View on github
Fresh, new opensource launches 🚀🚀🚀
Trendy new open source projects in your inbox! View examples

Subscribe to our mailing list

Evaluating scsh for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)


Scsh is a unix shell embedded in Scheme. What does that mean? Well, unix shells are powerful tools. They allow a user to concisely specify her commands and the communications between them (piping, redirecting, &c.). When she needs to do something more complex than running a set of commands with known inputs, however, things become complicated. General programming with sh can be unpleasant and error prone, to say the least.

Scheme is a simple, expressive general programming language. A user with some taste may want to use it to wield her computing machine. For simple commands, however, it is not the most concise. At the scale of the command line, even the overhead of parentheses matters. It would be nice to use each of these languages where their strengths lie.

Scsh is the solution. It allows the user to write commands in a language within Scheme that follows the unix way, but also allows her to specify more complex commands with the elegance of Scheme.

Getting Started


In order to run scsh, you'll need to be running on a POSIX complient operating system, the gnu build system, and scheme48 1.9.2

Installing scheme48 1.9.2

If scheme48 1.9.2 is not available in a package manager for your operating system, follow the instructions for installing from the source distribution here

Building scsh

Within a fresh checkout of scsh, run the following commands

$ git submodule update --init
$ autoreconf
$ ./configure
$ make

That'll pull all the scheme dependencies and build scsh. To try scsh before installing, run ./go from that same directory. That'll open up a repl with standard r5rs scheme in the environment, scsh's command language, and a large posix library (docs to come). To run scsh's test suite, run make test.

Installing scsh

Run make install to install scsh on your system. Standard gnu build system rules apply. So, for instance, if you'd like to install to a location other than the default (usually /usr/local/), rerun ./configure the appropriate flags.

scsh open issues Ask a question     (View All Issues)
  • over 4 years Build Fails When Spaces In Path
  • almost 5 years Tag for new release
  • almost 5 years Installation problem on NetBSD and OpenBSD
  • over 5 years Idiom for Parsing Command Line Arguments
  • over 5 years RPM Installer
  • almost 6 years scsh documentation
scsh list of languages used
Other projects in Scheme