Made with Lisp
Ogamita clautolisp

Run your AutoLISP without opening a CAD.

An AutoLISP and Visual LISP implementation hosted in Common Lisp, with a written language specification, a conformance suite, and a front end that drives AutoCAD and BricsCAD from the command line. AGPL plus commercial licensing.

AutoLISP code normally runs in exactly one place: inside an interactive CAD session, on a developer's desktop. That makes continuous integration awkward, automated testing rare, and portability between AutoCAD and BricsCAD a matter of folklore.

clautolisp executes AutoLISP as a plain command-line program, on a machine with no CAD installed at all. Your code loads, runs, prints, reads and writes files, manipulates entities against an in-memory drawing database, and reports a process exit status — so a test suite is just another job in your pipeline.

When the real product is what matters, the same command line drives it: alfe forwards the identical workload to an installed AutoCAD or BricsCAD and brings the output back to your terminal.

Why It Matters

Built for teams whose CAD customisations are real software: versioned, reviewed, tested, and expected to keep working across vendors and releases.

AutoLISP in your CI

A headless interpreter with a portable pass/fail exit-status channel. Run your test suite on every commit, on a Linux runner, without a CAD licence or a GUI session.

A written specification

AutoLISP has no HyperSpec. We wrote one: a source-backed reference covering 957 named operators, with vendor divergence notes and explicit provenance for every normative statement.

Portability made explicit

Five selectable dialects. Constructs that only one vendor supports still run, but say so — an advisory warning at the exact source site, or a hard error when you ask for one.

Tools a Lisp deserves

A structural editor, a form-level debugger and navigator, a session dribble, apropos and describe over the whole language, and a clipboard that round-trips s-expressions.

The Numbers

Current state of the 1.6 release line.

957Operators documented in the specification.
100%Of the documented language surface bound in the implementation.
3,900+Conformance tests, in pure AutoLISP, runnable on any host.
5Dialects: strict, AutoCAD, BricsCAD, clautolisp, lax.
3Engines driven from one command line: clautolisp, AutoCAD, BricsCAD.
5Release lanes: Linux x86-64, arm64 and arm32, macOS arm64, Windows x86-64.

How It Works

One AutoLISP surface, several engines behind it, and a specification to arbitrate the differences.

1. Write once

Your .lsp sources stay exactly as they are. Nothing is transpiled, wrapped, or preprocessed. The reader accepts vendor syntax, including the literals Common Lisp would refuse.

2. Choose an engine

Run in-process for speed and isolation, or hand the same workload to an installed CAD. The CAD bridge injects a small runtime and speaks to it over a file protocol — the only IPC AutoLISP has.

3. Compare the results

The conformance harness produces a machine-readable report per engine and version. Aligning those reports is how a vendor divergence stops being a rumour and becomes a test.

The same test run, headless and then against the real product:

$ clautolisp -l tests/all.lsp -x '(C:MAIN)'   # no CAD needed
$ echo $?
0

$ alfe --bricscad -l tests/all.lsp -x '(C:MAIN)' # same code, real BricsCAD
$ echo $?
0

What You Get

Five coordinated components, installed side by side with their manuals.

clautolisp The interpreter, as a standalone CLI: file, expression, and interactive REPL modes; five dialects; an in-memory drawing database covering entities, XData, dictionaries, symbol tables and selection sets; encoding dispatch across SYSCODEPAGE and DWGCODEPAGE; an optional native DWG codec. Also loadable as an ASDF library, with read-autolisp shipped separately for tool integrators.
alfe The AutoLISP front end. One CLI, four backends: in-process clautolisp, clautolisp as a subprocess, BricsCAD, and AutoCAD. Discovers installed CAD binaries, handles batch and automation modes, and reports progressive diagnostics instead of a single opaque failure line.
autolisp-spec The language reference: 957 operator entries in HyperSpec-derived formats, with syntax, return values, side effects, exceptional situations, compatibility notes and source notes. Browse it online, or build it as HTML, Info and PDF. Ships with alref, a library that answers apropos and describe from inside any AutoLISP host.
autolisp-test The conformance suite: over 3,900 tests written in pure AutoLISP, loadable identically by clautolisp, AutoCAD and BricsCAD. Three profiles, orthogonal platform and runtime tags, per-host expected-failure overlays, and canonical reports that diff across implementations.
autolisp-benchmark The performance suite: seven operation classes — arithmetic, lists, strings, serialization, file I/O, entity manipulation, and memory — timed on the same hardware across every engine, reported as throughput and cost per iteration.

Development Tools

The interpreter is also a working environment, not only a runtime.

sedit

A structural editor for AutoLISP forms: navigate and edit modes, wrap, slurp, barf, splice, split, join, byte-preserving formatting, and a system clipboard that carries s-expressions across applications.

aldo

A debugger built around the form, not the line. Stops land on the current poll point inside a laid-out, marked-up source form; an editing command installs the corrected definition into the running system.

Introspection

Apropos and describe over the whole language, host system-variable discovery, a recorded command log for assertions, encoding sniffing, and a dribble that logs a whole REPL session for review.

Platforms

Built and tested on every lane it ships to.

Operating systems Linux (x86-64, arm64, arm32), macOS (arm64), Windows (x86-64). Continuous integration builds and tests each lane.
Host Common Lisp SBCL and CCL on x86-64; SBCL on arm64. The implementation is portable Common Lisp as far as practical.
CAD hosts BricsCAD V26 and AutoCAD, driven through alfe on macOS and Windows.
Distribution Per-platform release archives with programs, ASDF-loadable libraries, native DWG codec, and documentation; or a source build with make install into any prefix.

Licensing and Support

Use clautolisp under the AGPL, or license it commercially. Consulting and maintenance contracts are available in either case.

Open source: AGPL-3.0-or-later

Free to use, study, modify and redistribute under the AGPL. If you modify clautolisp and make it reachable over a network, your modifications must be offered to its users. The specification document is separately licensed under CC-BY-SA.

Commercial licence

If you embed clautolisp in a proprietary product, link the library into closed-source tooling, or run a modified version as a service without offering its source, a commercial licence from Ogamita Ltd keeps you compliant. Available on demand.

Consulting

Porting AutoLISP code bases between AutoCAD and BricsCAD, putting existing customisations under test, building headless CAD pipelines, and specification or audit work on difficult language behaviour.

Maintenance and support

Maintenance contracts with agreed response commitments, priority handling of defects that block you, and targeted implementation of the language features your code depends on.