README.md

March 24, 2026 · View on GitHub

ELPS — Embedded Lisp Interpreter

ELPS — An embedded Lisp interpreter for Go programs

Go ReferenceLuther SystemsInsideOutDiscord


ELPS (Ellipse) is a Lisp-1 dialect designed to be embedded within Go applications. It provides a standalone CLI for running, linting, formatting, debugging, and exploring ELPS Lisp code.

Install

go install github.com/luthersystems/elps@latest

Or build from source:

git clone https://github.com/luthersystems/elps.git
cd elps && make

Quick Start

Launch an interactive REPL:

$ elps repl
> (+ 3 1)
4
> (defun greet (name) (format-string "Hello, %s!" name))
> (greet "World")
"Hello, World!"
> ^D

Run a program:

$ elps run prog.lisp

Embed in a Go program:

env := lisp.NewEnv(nil)
env.Runtime.Reader = parser.NewReader()
env.Runtime.Library = &lisp.RelativeFileSystemLibrary{}
lisp.InitializeUserEnv(env)
lisplib.LoadLibrary(env)
env.LoadString(`(debug-print "hello world")`)

Editor Support

CLI

CommandDescription
elps run file.lispRun a Lisp source file
elps replStart an interactive REPL
elps lspStart the Language Server Protocol server
elps debug file.lispStart the debug adapter (DAP)
elps lint file.lispRun static analysis
elps fmt file.lispFormat source code
elps doc <query>Show function/package documentation
elps mcpStart the MCP server for AI tooling

Documentation

Examples

Community & Support