A modern, Bash-like shell that uses Clojure syntax for command composition and data manipulation.
Closh is a Bash-like shell built on Clojure that allows developers to use Clojure syntax for shell scripting and interactive command execution. It solves the problem of Bash's obscure syntax and text-only pipelines by enabling structured data manipulation and a more consistent programming model.
Developers familiar with Clojure who want a more powerful and expressive shell, as well as Unix shell users frustrated with Bash's limitations for complex tasks.
Closh offers the familiarity of traditional shell commands combined with Clojure's powerful data-processing capabilities, providing a unified environment where shell scripting and application development share the same language and idioms.
Bash-like shell based on Clojure
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Enables seamless mixing of shell commands with Clojure functions for structured data manipulation, directly addressing Bash's text-only limitation as shown in demo pipelines like `ls |> (group-by first)`.
Aims to innovate beyond traditional shells with planned UI enhancements like better readline support and data helpers, reflecting a forward-thinking design per the roadmap.
Supports standard commands like `ls` and `git` identically to Bash, lowering the barrier to entry for Unix users while adding Clojure extensibility.
Runs on Linux and macOS, with experimental WSL 2 support, offering a consistent experience across major development environments despite Windows limitations.
Explicitly on hiatus as of 2022, with no active development, making it unreliable for long-term adoption or bug fixes despite its promising concept.
Admits many limitations: JVM version lacks abbreviations, Lumo version has no script mode and prompt quirks, and synchronous execution relies on hacks, per the Limitations section.
Small community and sparse documentation compared to established shells, with limited third-party integrations, increasing the learning curve for troubleshooting.
Depends on JVM or Node.js, introducing startup lag and memory usage unlike native shells, and the roadmap notes need for a low-level pipeline library to improve performance.
closh is an open-source alternative to the following products: