Writing Small CLI Programs in Common Lisp

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • roswell

    intended to be a launcher for a major lisp environment that just works.

    Common Lisp itself has Roswell, which I am disappointed to see is not even mentioned in the article.

    https://github.com/roswell/roswell

  • cligen

    Nim library to infer/generate command-line-interfaces / option / argument parsing; Docs at

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

  • janet-sh

    Shorthand shell like functions for janet.

    The arguments I have seen are based on Janet using arrays/tuples rather than cons cells. Here is the author addressing this on reddit a while back. https://old.reddit.com/r/programming/comments/aqwedz/janet_i...

    The debate continues in the thread. Either way, I think Janet is very useful for situations where you want something lisp like and also want/need small executables. I've experimented with it quite a bit and have found it really useful for putting together cli apps. The sh package is really useful for gluing together other shell programs. https://github.com/andrewchambers/janet-sh

  • rich

    Rich is a Python library for rich text and beautiful formatting in the terminal.

    I read this entire thread thinking - this is neat and all but it’s a handful of lines of almost english language in a .py file.

    Click is a neat upgrade from argparse if you’re ever tempted (assuming something like “pip install —-user” is viable in your situation which isn’t true for everyone).

    I’ve seen, but haven’t used https://typer.tiangolo.com/ - i have used his FastAPI and thought that was nicely done (even if python async is a bit annoying to test).

    Talking of python cli libs I haven’t tried but will do one day - rich: https://github.com/willmcgugan/rich

  • hofmod-cli

    Hofstadter generator for Golang CLIs

    I try to avoid pip and dependencies for these python scripts. This goal has it's limits.

    Click is nice if you want a command with multiple sub commands. I use Go + Cobra at that point via https://github.com/hofstadter-io/hofmod-cli

  • termp

    Trivial utility: are we in a terminal window or in a dumb one? (like Emacs' Slime)

    About uiop:quit, that sometimes are in the middle of a script: lately I have wrapped it around a check of the nature of the terminal: if the terminal is dumb ($TERM), we are very likely inside Emacs/Slime, so we don't quit. https://github.com/vindarel/termp

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts