Common Lisp
Powerful dynamic multiparadigm language that facilitates iterative and interactive development.
Around the OpenAI API
MCP servers
Machine Learning
Natural Language Processing
Expert Systems
Advanced
Educational
Audio
visual programming / computer-aided composition environment. [GPL3][2]. Developped at IRCAM, France.
a new implementation of the OpenMusic visual programming and computer-aided composition environment including a number of improvements on graphical interface, computational mode, and connection to external software libraries. [GPL3][2].
Algorithmic composition library which outputs Midi, Common Music Notation, pdf-score via Lilypond and sound via Common Lisp Music. [GPL3][2].
the repository of an an ancient version of Common Music (version 2.12.0), the presumably last version which ran on Common Lisp dating from around 2007-09, before work on Common Music shifted to (scheme-based) cm3.
a system for composing music via Lisp code, heavily inspired by SuperCollider’s patterns system, with aims to implement much of it, but in a more robust, expressive, consistent, reflective, and lispy way. Audio output through SuperCollider, with preliminary support for Incudine, and MIDI through ALSA.
A framework for musical expression in Lisp with a focus on music theory (built from scratch, unrelated to Common Music).
The time based musical event scheduler for Common Lisp. [Apache2.0][89].
A sound and music computing system. Includes CFFI and FFI interfaces for Common Lisp.
OM7
CLM
Build Systems
ASDF
Compilers, code generators
APL
C, C++
a source-to-source compiler that utilizes Lisp's macro system for meta programming of C-like languages. [GPL3][2].
a fun package which introduces the C language syntax into Common Lisp. (Yes, this package is not for practical coding, I think.) WTFPL Licence.
The SEL enables the programmatic modification and evaluation of software (C/C++ support using Clang, compiled assembler, and linked ELF binaries). [GPL3][2].
Cryptography
A library of crypto functions for Common Lisp. Not considered secure, but is still useful for the message digest functions. [Expat][14].
Common Lisp system for generating and parsing of OpenSSH keys. [BSD_3Clause][15].
Cryptocurrencies
parse the blockchain contained in a file and export some of its data to a text file, a SQL script or a database. It can also create a database using the RPC of a Peercoin daemon as source of data instead of a blockchain file. LGPL3. Not in Quicklisp.
This program gives you the probability of generating a POS or POW block within 10 minutes, 24 hours, 31 days, 90 days and 1 year, as well as the reward that can be expected. GUI in Qt. [GPL3][2]. Not in Quicklisp.
Database
See also
ORMs
Persistent object databases
a CLOS-based lisp-only database in RAM with transaction logging persistence. Manual. [licence][208].
if you want a highly-available replicated version of bknr.datastore. blog post.
A library providing easy-to-use persistent configuration storage. [zlib][33].
Graph databases
a library for interacting with Neo4J. Sends Cypher queries to a Neo4J server, and decodes the responses into something useful for processing in CL. [Apache2][89].
graph database & Prolog implementation. Takes design inspiration from CouchDB, neo4j and AllegroGraph. It implements an ACID-compliant object graph model with user-defined indexes and map-reduce views. It also implements a master / slave replication scheme for redundancy and horizontal read scaling. Querying the graph is accomplished via a number of Lisp methods or via a Prolog-like query language. [MIT][200].
Other DB wrappers
Fast, thread-safe interface to the Memcached object caching system. [Expat][14].
Bindings to LMDB, the Lightning Memory-mapped Database, an ACID key-value database with MultiVersion Concurrency Control.
To third parties
Migration tools
Data Formats
CSV
automatic (encoding, end of line, column width, csv delimiter etc) detection for text files. [MIT][200]. See also inquisitor for detection of asian and far eastern languages.
JSON
a correct, safe and fast JSON parser. [MIT][200]. * jzon is the only CL JSON library which correctly declines all invalid inputs per the official JSON test suite and accepts all valid inputs per that suite. * it doesn't crash on invalid input (jsown), doesn't choke on large datasets (Jonathan), and more. * "I believe jzon to be the superior choice and hope for it to become the new, true de-facto library in the world of JSON-in-CL once and for all."
Common Lisp JSON reading and writing for the Kzinti. [MIT][14]. - "Shasht is one of the two new libraries that I particularly like and is already in quicklisp. It is fast, it handles null correctly, it encodes CLOS objects, structures and hash-tables. It can also do incremental encoding." Sabra Crolleton.
JSON tools
Parser-agnostic JSON indexing (with JSON Pointer support), destructuring, and validation framework. [BSD][15].
A metaclass for bridging CLOS and JSON objects. [MIT][200]. * depends on YASON for JSON libraries that don't do it natively (jzon, shasht and cl-json are able to encode CLOS objects to JSON out of the box, and cl-json has the ability to decode* JSON objects into a "fluid-class" CLOS object.)
A JSON Object Signing and Encryption (JOSE) implementation for Common Lisp. BSD_2Clause.
JSON online services
XML
A common lisp library to ease interaction with CXML-dom, such as building Excel spreadsheets. [BSD][15].
To read Excel files
a modern and powerful Common Lisp library for reading and writing Microsoft Excel .xlsx and LibreOffice .ods files. MIT. * "allow developers to handle complex spreadsheets with minimal code while maintaining memory efficiency for large datasets." * full writing support. * robust format detection.
Text and binary parsers
Simple parser combinators for Common Lisp, in the style of Haskell’s parsec and Rust’s nom. [MPL-2.0][211].
a library for parsing sequences such as strings and lists using Parsing Expression Grammars (PEGs). Inspired by Esrap. GPL2.
An experimental implementation of parsing expression grammars (PEGs, a la Janet) in Common Lisp. MIT.
parser combinators for Common Lisp. SMUG makes it simple to create quick extensible recursive descent parsers without funky syntax or impenetrable macrology. [MIT][200].
a simple and pragmatic library for writing parsers and lexers based on combinatory parsing.
Data Structures
strings
lists and sequences
(purely) functional data structures
hash-tables
algorithms
heaps
queues
thread-safe, lock-free queues optimized for different use cases and hardware. The library offers three queue types, each designed for specific concurrency patterns and performance requirements. * On systems with many cores, cl-freelock demonstrates up to 3.2x performance improvements over competing libraries.
bigger collection libraries
Other data structures
Generic access of data structures
Docker images
base Docker image for Common Lisp projects with SBCL or CCL and the latest ASDF, Qlot and Roswell.
GitHub Action to Setup Common Lisp tools. * updates ASDF, installs Qlot, installs Roswell * for multiple implementations * for Ubuntu, OSX and Windows. * Example use: Trial's CI
Docker Arch Linux image with Common Lisp implementations (7 to this day). MIT.
C
Automatically parses header files into CFFI definitions. [FreeBSD][39].
A command line tool and library for creating Common Lisp language bindings from C header files. [MIT][200].
Clojure
Clojure collection and sequence APIs in Common Lisp, with optional Clojure collection syntax. [Eclipse][209].
Clojure-compatible threading/transformation/arrow macros for Common Lisp.
Erlang
Java
Objective-C
Python
A bridge between Python and Common Lisp. The goal is that Lisp programs can use Python libraries. Not available on Quicklisp. [MIT][200].
The library cl4py (pronounce as clappy) allows Python programs to call Common Lisp libraries. [MIT][200].
A library that allows Common Lisp code to access Python libraries. It is basically the inverse of cl4py. [MIT][200].
Game Development
Fully auto-generated Common Lisp bindings to Raylib and Raygui using claw and cffi-object. Apache 2.0.
Hand-written bindings to Raylib for improved performance and smaller dependency footprint. [MPL-2.0][211].
With this small framework you would be able to make simple 2D games: draw basic geometric forms, images and text, play sounds and listen to mouse and keyboard input. [MIT][200].
Graphics
A CL framework for the creation of electronic art, graphics, and lots more. [MIT][200].
A PNG (Portable Network Graphics) image format decoder in portable Common Lisp with an emphasis on speed. [MIT][200].
An up-to-date Common Lisp bindings library to the most recent GLFW OpenGL context management library.
the OpenCV (Open Source Computer Vision Library) binding library for CommonLisp. No license specified.
FFI bindings to the Horde3D graphics library. Not available on Quicklisp. [EPL 1.0][59]
GUI
supports Vulkan 1.0 and 1.2, including compute pipelines. Vulkan 1.1 and 1.3 are coming soon. MIT.
Cocoa interface for Clozure Common Lisp. Build Cocoa user interface windows dynamically using Lisp code and bypass the typical Xcode processes. It has good documentation and a tutorial.
Web views
Interfaces to other package managers
Isomorphic web frameworks
The Common Lisp Omnificent GUI. Uses web technology to produce graphical user interfaces for applications locally or remotely. [BSD_3Clause][15].
Quicklisp systems to debian packages, along with deb-packager (simply create a debian package by defining an s-expression). Both [MIT][200].
debhelper utility to let you compile your quicklisp-based Common Lisp code into a buildapp binary in a .deb with almost no effort. [MIT][200].
Homebrew formula builder for (command line) common lisp applications. Public domain.
WIP system for delivering Common Lisp applications as executable bundles. For now it only supports AppImage format for Linux and MSIX for Windows, but .APK for Android and later MacOSX and iOS bundle formats are planned too.
HTTP Cookie (jar) manager: parse and write (set-)cookie headers, compare cookies, optional cookie attribute sanity check. [MIT][200]
Hunchentoot plugins
a routes handling system on top of Hunchentoot. It supports dispatch based on HTTP method, arguments extraction from the url path, decorators, url generation from route name, etc. [MIT][200].
a library for executing CGI scripts from the hunchentoot webserver. [BSD][207].
Route multiple domains (virtual hosts) on a single hunchentoot acceptor using a single port. [Apache2.0][89].
Augments Hunchentoot error pages and logs with request and session information. [MIT][200].
Monitors hunchentoot connections and logs the connections stuck in the same state for a long time. - offers an option to shutdown the stuck connections sockets manually or automatically, thus unblocking the connection threads and preventing thread and socket leakage. [BSD_2Clause][17].
Clack plugins
A tiny routing library for Common Lisp targeting Clack. [BSD_3Clause][15].
a single sign-on middleware for Clack. It allows basic login with OAuth1.0a, OAuth2 and OpenID. At the time of writing, it supports authentication from Google, Twitter, LinkedIn, StackExchange, Reddit and Github. [Apache2.0][89].
a cache-busting static asset middleware for the clack. [MIT][200].
Browser tests
User login and password management
Web project skeletons and generators
OpenAPI, OData, OpenRPC
Static site generators
Third-party APIs
A library for working with Amazon's Simple Storage Service (S3) and CloudFront service.
The successor to the South (Simple OaUTH) library, implementing the full oAuth 1.0a protocol, both client and server sides. Using North you can easily become an oAuth provider or consumer.
an easy-to-use Common Lisp OAuth 2.0 client library. It is a port of the Racket OAuth 2.0 Client to Common Lisp.
Mobile
Implementations
Dynamic library delivery tools for SBCL. Create shared libraries that can be called from C or Python. MIT. Blog post. Tutorial.
Distributing binaries with Common Lisp and foreign libraries: libssl, libcrypto and libfixposix are statically baked in. [MIT][200].
Nightly builds of SBCL using MSYS2 UCRT64. See also Roswell's SBCL MSI builds.
packaged into NSIS installer and updated monthly (unofficial)
a new Common Lisp implementation that seamlessly interoperates with C++ libraries and programs using LLVM for compilation to native code. This allows Clasp to take advantage of a vast array of preexisting libraries and programs, such as out of the scientific computing ecosystem. [LGPL2.1][11] (and others).
A GNU implementation; contains a compiler and an interpreter. [Standard conformance][6]. [GNU GPL3][2]. They develop on Gitlab.
Lisp parsers
Language extensions
Lambda shorthands
Portability layers
A portable library to retrieve the arguments list and argument types of a function. [zlib][33].
a general definitions introspection library. It gives you the ability to retrieve definitions or bindings associated with designators such as symbols, packages, and names in general. [zlib][33].
when a lot of projects use the “trivial-backtrace” system that just gives them a string with a backtrace, Dissect allows you to capture, step, and completely inspect the stack trace on a variety of Lisp implementations. Also very useful for logging and other situations where execution is automatically continued, but the information of the current stack is still useful to store somewhere. [zlib][33].
Changing the syntax
For strings
CLOS extensions
A compatibility layer that rectifies many absent or incorrect MOP features. [Expat][14].
generic functions based on types. Simplified BSD License variant.
enable the use of arbitrary predicates for selecting and applying methods. [MIT][200].
allows standard generic function dispatch to be performed statically (at compile time) rather than dynamically (runtime). This is similar to what is known as "overloading" in languages such as C++ and Java. [MIT][200].
Writing terser defclass forms
Function extensions
Iteration
Python style generators for Common Lisp. Includes a port of itertools. [Apache2][89].
An (almost) complete port of Python's itertools package, complete with laziness where applicable, and not relying on cl-cont. [MIT][200].
A concise and extensible iteration facility that has the advantage of integrating well with FSet (see the Data Structures section), as it was written by the same author. In Quicklisp as part of misc-extensions. Public domain.
An implementation of CL:LOOP that can be used in any CL implementation without replacing the core CL:LOOP, is extensible and has a "batteries included" extension system with many useful iteration constructs.
Non-deterministic, logic programming
Common Interface to ISO Prolog implementations from Common Lisp. [MIT][200].
Reactive programming
an implementation of the dataflow programming paradigm, reactive spreadsheet-like expressiveness for CLOS. Used to build an algebra learning system. With documentation. Lisp LGPL.
Contract programming
Typing
an efficient, statically typed functional programming language that supercharges Common Lisp. [MIT][200].
provides missing but important type definitions such as proper-list, association-list, property-list and tuple. [LLGPL][8].
Coalton
Real-time, project-wide Coalton compilation with isolated processes for LSP integration. [MIT][200].
Functional IO interfaces. Includes terminal IO, file system IO, random variables, mutable variables, multithreading, and safely sharing state between threads.
Theorem provers
ACL2
Online
A learning video series on the Udemy platform (full content under paid access). By an active lisper and community contributor (@vindarel). Github home. . Thanks for supporting my work on Udemy. I can send a free link to students, just contact me.
Web Development
Reference
Library Manager
Utilities
a portable serialization package which gives you the ability to store all common-lisp data types into streams. MIT.
General caching facility. Cache any Lisp object on disk or in memory. [LLGPL][8].
a naive persisted, in memory (lazy loading), indexed, document store for Common Lisp. [MIT][200].
A fast Common Lisp binary serializer/deserializer. BSD_3Clause. See reddit announce (2025).
a library for reading and creating archive (tar, cpio) files. [BSD_3Clause][15]. A pure Common Lisp replacement for the tar program.
a configuration management library shipped with profile support. [MIT][200].
Parse date-time-string, liberally. Hides the difference between date-time formats, and enables to manage date and time as the one date-time format. [MIT][200].
A natural language date and time parse, to parse strings like "3 days from now". [BSD_3Clause][15].
Duration processing library built on top of local-time. [MIT][200].
that outputs only significant parts of a duration object. Has localization suport.
Miscellaneous date routines in Common Lisp, based around the ISO 8601 string representation. [LLGPL][8].
a calendar time library implemented on top of the LOCAL-TIME library. It features zoned calendar times and calculations.
manipulating date/time objects at a higher level. With series-compatible data structure. [BSD_3Clause][15].
a library for measuring time using (stop)clocks. It allows you to create a clock, pause it, resume it and change its speed. [Apache2.0][89].
A library for validating data against schemas of drafts 4, 6, 7, and 2019-09 of the JSON Schema standard. [LLGPL][8].
a data serialization/contract library for Common Lisp. Schemas can be property lists or class-based, allowing to check slots' types during make-instance. [LLGPL][8].
Ease common tasks at the REPL (print documentation, print external symbols, call hooks when loading a package,…). [BSD_2Clause][17].
tracing profiler for Common Lisp, with output suitable for display in Chrome’s/Chromium’s Tracing Viewer. [MIT][200].
A wrapper around SBCL's statistical profiler, to generate FlameGraph charts for Common Lisp programs. [BSD][15].
Superior Common Lisp trace functionality for debugging/profiling. Trace many functions at once, use before and after hooks. [BSD_2Clause][17].
a library for logging, tracing, record-and-replay testing and persistence. MIT.
A library for cutting down the verboseness of Common Lisp in places. [GNU GPL3][2].
A portable wrapper to generate Lisp cores on demand to start REPL blazing fast. It can preload provided systems to help build a collection of specialized Lisp cores.
a tool to generate documentation pages using an HTML template. Uses the existing README, adds docstrings, crossreferences and links to the CLHS. [zlib][33].
Exploratory programming environment and documentation generator. one may accomplish similar effects as with Literate Programming, but documentation is generated from code, not vice versa. Code is first, code must look pretty, documentation is code. [MIT][200].
a lighter core system, a JavaScript search index, multiple format output, HTML themes, RSS and Atom feed for the Changelog and more.
Extending Sphinx to cover Common Lisp. To build documentation with the same ease as sphinx would a Python project. [GPL3][2]
generates HTML (or LaTeX) formatted code listings of Common Lisp source files. [BSD_3Clause][15].
Reference manual generator for Common Lisp libraries. Builds a texinfo document that can be further processed into various formats, such as HTML or PDF. BSD.
A compatible re-implementation of the BibTeX program in Common Lisp, with a BST-to-CL compiler. [GNU LGPL2.1][11].
a server that generates documentation for the loaded systems on the fly.
A tool to search documentation of lisp symbols in the current lisp image.
A collection of utilities to help with pathname operations. [zlib][33].
deal with common problems with filesystems, such as listing files, probing file types, determining default directories, etc. no dependencies, doesn't access the filesystem.
access to common file attributes (uid, gid, permissions, ctime, mtime, atime).
Modern and consistent filepath manipulation for Common Lisp. [LGPL3][9].
File persistence, watching, data synchronization, (per user profile) path resolution, and structured data retrieval. Has pre-defined classes for configuration files, remote fetched files, data files, Lisp-readable files and many others. [BSD][15].
Shell-style glob pattern matching and filesystem globbing for Common Lisp. MIT.
Common Lisp library to access a git repository. It doesn't need git or libgit installed. [BSD][15].
an i18n library. Load translations from GNU gettext text or binary files or from its native format. Localisation helpers of plural forms. [LLGPL][8].
A library to retrieve the user's preferred language, so that your application may choose a sensible default. [zlib][33].
Allows writing docstrings in multiple languages, for truly internationally documented libraries. [zlib][33].
a linter for Common Lisp source code using SBCL, suited for Reviewdog (slides). [BSD_2Clause][17].
Literate Programming System built with interactive development in mind. [MIT][200].
Papyrus makes your markdown executable with the reader macro of Common Lisp.[MIT][200]
Logging library providing context sensitive logging of more than just strings to more than just local files or output streams. Features logstash support, json support, logger hierarchies, context sensitive logging, objects printed as an inspectable presentation,…
when you want to import and re-export many symbols at once and :include or :exclude some.
cross-platform Common Lisp libraries for generating PDF files. [FreeBSD][39].
a (thin) wrapper around the pslib library for generating PostScript files. Also cl-pslib-barcode. [LLGPL][8].
uses Sphinx and reStructured text to render nice and readable HTML documentation. [BSD][15].
Generate a ready-to-use Common Lisp project. Not in Quicklisp. [BSD_3Clause][15].
An opinionated cookiecutter template for Common Lisp videogame projects. Allows to choose backend middleware library between liballegro, raylib and SDL2. Contains CI scripts using docker-lisp-gamedev to automatically build binaries for Windows, MacOS and Linux.
A restricted environment for Common Lisp code evaluation [AGPL-3.0][agpl3].
a variant of READ secure against internbombing, excessive input and macro characters. [BSD_2Clause][17].
A Common Lisp library to reduce the risk of accidentally revealing secret values such as passwords.
an output stream that masks secret strings with , based on secret-values. MIT.
Retrieve machine state information about CPU time, memory usage, thread processing time, etc.
Provides a readtable namespace, akin to package namespaces. [3-clause BSD][15].
A currency conversion library using daily information published by the ECB. [FreeBSD][39].
A portable finalizer, weak hash-table and weak pointer API. Public domain.
cross-platform Common Lisp libraries for generating PDF files. [FreeBSD][39].
A development library for manipulating date and time information in a semi-standard manner. [3-clause BSD][15].
Developer utilities
Files and directories
Logging
Git
Other
HTTP clients
HTTP Servers
A web application environment inspired by Rack and WSGI. [LLGPL][8]. Provides a unified interface to a webserver of choice (default is Hunchentoot). With more getting started guide.
Web frameworks
REST-focused frameworks
Parsing html
HTML generators and templates
HTML generators and templates
the completness of Djula with the full usability of Common Lisp code in templates. [MIT][200].
Implementation of Google's Closure templates, where compiling a template creates a function that generates the result. [LLGPL][8].
An easily composable HTML5 generation library with the most simplistic syntax. [MIT][200].
Djula
URI and IP handling
URI and IP handling
Another URI library for Common Lisp. Supports userinfo, IPv6 hostname, encoding/decoding utilities,… [BSD_3Clause][15].
Javascript
Javascript
In development:
Utilities for **React**:
SDK for **[Datastar](https://data-star.dev/)**:
Parenscript
Deployment
Deployment
Kubernetes client library for Common LISP generated from the Swagger specification. [MIT][200].
Source-to-Image builder image based on CentOS or alternatively RHEL7 for building Common LISP images for OpenShift (and also Docker). It features an up-to-date SBCL with Quicklisp installation, SLIME or SLY integration and allows customization via environment variables. [Apache2][89]
An example of using Common Lisp (SBCL) as a custom runtime on AWS lambda. WTFPL.
Highly opionated Github Actions workflow builder for Common Lisp projects.
GitHub action to build an executable Common Lisp program on Ubuntu, MacOS and Windows. MIT.
Monitoring
Websockets
HTTPS
Numerical and Scientific
SIMD powered simple-math numerical operations on arrays for Common Lisp through CFFI [still experimental]. MIT.
an attempt to generate high performance code for parallel computers by JIT-compiling array definitions. It works on a more fundamental level than NumPy, by providing even more powerful N-dimensional arrays, but just a few building blocks for working on them.
Common Lisp data analysis library with emphasis on modularity and conceptual clarity. It aims to be a general purpose framework for analyzing small and large scale datasets, including binned data analysis and visualization.
Efficient and expressive arrayed vector math library with multi-threading and CUDA support.
Planning solvers
Matrix libraries
Lisp Linear Algebra. a high-level Common Lisp library built on on BLAS and LAPACK, but providing a more abstract interface with the purpose of freeing the user from low-level concerns and reducing the number of bugs in numerical code.
Matrix Algebra proGrams In Common Lisp based on BLAS/LAPACK and Expokit, by Rigetti Computing.
Units
Plotting
a Vega-lite DSL. includes functions for text-based plotting that work in the REPL, and JavaScript visualisations that are rendered in a browser.
an Emacs plugin that allows to display a Vega plot from a lisp-stat expression in a buffer.
an interface to the gnuplot plotting utility with the intention to resemble some of the plot commands of octave or matlab.
Parallelism and Concurrency
[CSP]-like channels for common lisp. With blocking, optionally buffered channels and a "CSP select" statement.
a Common Lisp library offering a way of spawning threads and being informed when one any of them crash and die.
a coroutine library. It uses the CL-CONT continuations library in its implementation.
Actors pattern
Event processing
A very simple task scheduling framework. saves the return values and the task environment in case of failure, so we can inspect it later.
Deeds is an Extensible Event Delivery System. It allows for efficient event delivery to multiple handlers with a complex event filtering system.
Data-flowish computation tree library for non-blocking concurrent Common Lisp.
Job processing
Regular expressions and string parsing
Scripting
Shell scripting made Lisp-like! Or, live-coding remote function calls for the shell. Write a command in the REPL, and run it instantly in the shell.
CIEL Is an Extended Lisp is a collection of dozens of libraries useful for mundane tasks (HTTP, JSON, regexps…). It also comes as a binary that is able to run scripts from sources. Scripts that use the built-in libraries start fast without a compilation step.
an infrastructure (managing a hidden multicall binary) to make Lisp scripting efficient and ergonomic. Kiln makes it practical to write very small scripts. Kiln scripts are fast and cheap to the point where it makes sense to expose even small pieces of Lisp functionality to the shell.
Readline, ncurses and other graphical TUI helpers
A Common Lisp library for building rich, responsive TUIs. model-view-update Elm architecture, reusable widgets (text input, spinner, progress bar…), mouse support, layout helpers…
a set of functions to edit lines as they are typed in, to maintain a list of previously-entered command lines, to recall and reedit them and perform csh-like history expansion. Emacs and vi editing modes.
an interface to libcurses in Common Lisp. It provides both a raw, low-level interface to libcurses via CFFI, and a more higher-level lispier interface.
[Termbox2] bindings. "termbox2 is a terminal I/O library for creating TUIs. It is a slim alternative to the ubiquitous ncurses library. Unlike ncurses, it has a tighter API, and comes with built-in support for popular terminals if a terminfo db is not present on the system."
helpers to turn existing code into a readline application, with a focus on defining the completion of the commands' arguments. Also comes as a ready to use executable, that transforms a user's lispy init file into readline commands.
print colorized text, horizontal lines, progress bars, (un)ordered lists and tables on ANSI-compliant terminals.
Toolkit to draw graphics using pure Unicode text only: boxes, backgrounds, checkboxes and radio buttons, lines, arrows, tables, trees… zlib.
Shells, shells interfaces
Mount Unix system into Common Lisp image. Unix concepts are directly/shallowly embedded into Lisp (Unix commands become Lisp macros, Unix file become Lisp variables, Unix streams become lazy Lisp sequences, etc).
utility for running external programs. Protects against shell interpolation, built with multi-threaded programs in mind, Windows support. uiop:run-program (synchronous) and uiop:launch-program (async) are shipped with ASDF and available on all modern implementations. See the CL Cookbook: running external programs.
extends Common Lisp to embed shell code in a manner similar to perl's backtick.
lish may someday be a lisp shell. supports tab-completion of executables in the path and Lisp symbols, allows to write and to mix shell commands and Lisp code, has a tiny REPL and an interactive debugger, and more. WARN: this is an old backup. The original repository is no more.
System administration
Updating executables
Other scripting utilities
an AWK implementation embedded into Common Lisp, to search files for lines and perform specified actions on its fields.
query language and terminal utility for querying and transforming Lisp, JSON and other text files. written in Common Lisp.
allow hundreds of Lisp applications to be realistically available at once, while allowing several of them to run concurrently. WCL accomplishes this by providing Common Lisp as a Unix shared library that can be linked with Lisp and C code to produce efficient applications. For example, the executable for a Lisp version of the canonical Hello World! program requires only 20k bytes on 32 bit x86 Linux. WCL also supports a full development environment, including dynamic file loading and debugging. A modified version of GDB is used to debug WCL programs, providing support for mixed language debugging. - a paper: "Delivering efficient Common Lisp applications under Unix".
Text Editor Resources
Parinfer is a way to edit lisp code that keeps both the indentation and the parenthesis balanced. It is easy to start with and yet it offers advanced features à la Paredit. It is available on many editors (Emacs, Vim, Neovim, Atom, Sublime Text, Visual Studio Code, LightTable, CodeMirror,…).
Emacs
Superior Lisp Interaction Mode for Emacs; a full-blown environment for Common Lisp inside of Emacs. Public domain.
SLY is a fork of SLIME and contains multiple changes and new features, such as Sly stickers.
A tiny Emacs initialization file to quickly set up vanilla Emacs for Common Lisp programming. Comes with a line-by-line explanation of every line of code in the initialization file.
A trivial way to get a native Common Lisp environment on Windows.
a Docker container for Common Lisp development environment. Ships SBCL, CCL, Roswell and Emacs 26 with Slime.
A portable and multiplatform Common Lisp environment: SBCL, Quicklisp, Emacs, Slime, Git.
Slime extensions
Sly extensions
an extension for Sly that enables the overlay of Common Lisp evaluation results directly into the buffer in the spirit of CIDER (Clojure), Eros (Emacs Lisp) and the Lem editor.
Unit Testing
an extensible, composable matchers library for fiveam. [Apache2.0][89].
An extensible and cross-compatible testing framework. With test dependencies, conditions, fixtures and restarts. [zlib][33].
A small stubbing and mocking library for Common Lisp. Can also check wether a stubbed function was called, how many times and with which arguments. [MIT][200].
Another mocking library. It has more features than Mockingbird, like pattern matching on the mocked call, etc.
a helper library to post test coverage to Coveralls. See SBCL's code coverage tool. [FreeBSD][39].
Why write programs in Common Lisp but tests like Java? Meet CheckL! a testing library that checks the current test value against the previous one and offers restarts.
a set of Hamcrest matchers that can be combined to create flexible expressions of intent. Helps make your unittests more readable by using assertions such as has-plist-entries, has-slots, has-length, contains, contains-in-any-order, has-all… [BSD_3Clause][15].
Vim & Neovim
Lem
LispWorks
Atom, Pulsar
Sublime Text
VSCode
JetBrains
Geany (experimental)
Notebooks
common-lisp-jupyter
REPLs
cl-repl
Text Processing
Calculate various string metrics efficiently in Common Lisp (Damerau-Levenshtein, Hamming, Jaro, Jaro-Winkler, Levenshtein, etc). [MIT][200].
Text language identification using Wikipedia data. No license specified.