Autolith is a Common Lisp terminal programming agent that runs inside a live SBCL image rather than wrapping another agent process. Instead of editing files and waiting for a rebuild, it can inspect, test, and modify its own running Lisp runtime, with changes taking effect immediately and recorded in an append-only mutation journal. It is a genuinely different paradigm from file-based coding agents like Cursor or Claude Code.
What is Autolith? A Common Lisp agent with a live runtime
Autolith, built by Lambda Symbolics, is a self-modifiable, general-purpose Lisp AI agent that executes inside a live Steel Bank Common Lisp (SBCL) image. The binary release carries its own SBCL 2.6.6, so you are not installing a wrapper that shells out to a separate agent process — the agent is the Lisp image, and the Lisp image is the agent. The prompt input is the REPL itself, and the harness can inspect and extend the very runtime it runs on.
The project launched on GitHub on 2026-07-11 and is actively maintained, with the repository pushed as recently as 2026-09-01. As of that date the repo, lambda-symbolics/autolith, had roughly 278 stars, 21 forks, and 4 open issues. It drew significant attention on Hacker News, where the story “Autolith: A programming agent with a live runtime” received 128 points and 61 comments, with the author (Lucius) responding throughout the thread.
The core feature set breaks into four pillars:
- Repository work — filesystem, shell, and search tools for ordinary coding tasks.
- Oversized context — recursive inference (via
rlm.complete) that lets the agent work with corpora larger than its model window. - Continuity — portable conversations, memories, agendas, checkpoints, and crash recovery.
- Live Lisp — an SBCL runtime the agent can inspect, test, and extend in real time.
How the live-runtime paradigm differs from file-based coding agents
Most coding agents you have used — Cursor, Claude Code, GitHub Copilot — operate on a file-based model. They read source files, generate edits, write them back to disk, and then rely on an external build or test step to see whether the change works. The agent is effectively a smart text editor with a shell.
Autolith inverts this. Because it runs inside a live SBCL image, it can redefine functions, methods, classes, macros, conditions, and global settings in its own running process. A change takes effect immediately, with no rebuild, no restart, and no separate interpreter to invoke. The agent can test a new function, observe the result, and keep iterating inside the same image.
| Aspect | File-based agents (Cursor, Claude Code) | Autolith (live runtime) |
|---|---|---|
| Unit of change | Text edits on disk | Live redefinition in a running image |
| Feedback loop | External build/test step | Immediate in-image evaluation |
| Self-inspection | Limited to reading files | Full SBCL introspection of its own runtime |
| Self-modification | Not possible | Redefines its own functions live |
| Rollback | Git history | Image generations |
| Language | Any (language-agnostic) | Common Lisp |
This is why the author describes the project as “pretty close to a Lisp Machine.” A Lisp Machine was a computer whose operating system and applications were written in Lisp and could be modified while running. Autolith recreates that experience for an AI agent.
Self-modification and image generations: the recovery model
The most distinctive capability is self-modification. Autolith can inspect and replace functions, methods, classes, macros, conditions, and global settings in its running image. Because the change happens in the live process, it takes effect immediately. Every mutation is recorded in an append-only mutation journal, giving you a durable, replayable history of what the agent changed about itself.
That journal can be retained as a private image commit — a manifest plus an executable Lisp replay script stored in a separate private Git history. This means the agent’s self-modifications are not just ephemeral in-memory state; they can be versioned and replayed like any other code change.
The recovery model is where the design gets serious about reliability. Autolith creates “generations” of the image that it can roll back to. If a self-modification breaks something, the agent can revert to a prior generation. Even a full crash is not a showstopper: the agent reloads into a recovery image, diagnoses what went wrong, and can optionally fix the issue before continuing. The author’s framing is blunt — “even a full frontal lobotomy is not a showstopper” — meaning the agent can survive catastrophic self-inflicted damage and recover.
This is a fundamentally different reliability posture from a file-based agent. A file-based agent that corrupts its own config can be reset by reverting files. Autolith can roll back its entire running brain to a known-good generation and then reason about what happened.
Handling oversized context with recursive inference (RLM)
One of the hardest problems for coding agents is context. When a repository is larger than the model’s context window, most agents either truncate, retrieve chunks, or stuff as much as possible into the prompt. Autolith takes a different approach with its Recursive Language Model (RLM) implementation.
The rlm.complete mechanism interns a corpus larger than the model window as a content-addressed object. The model does not receive the full text. Instead, it receives only a label, a size, and a digest, and then drives a heap-isolated Lisp environment under explicit call and token budgets. In other words, the agent can work with a body of code that does not fit in its context by treating it as a queryable object and recursively pulling in only what it needs.
This differs from the RLM approach used by Prime Agent. In Autolith, the top-level agent is a traditional agent, but it has RLM tools available for exploratory work — processing many files at once and doing backward context research. The RLM is a tool the agent reaches for when the context grows beyond what a single prompt can hold, rather than the primary mode of operation.
The practical effect is that Autolith can reason about a large codebase without losing the thread of a long task, because it does not have to compress everything into one prompt. It can keep a bounded working context and expand into the corpus on demand.
The Lisp advantage debate: does a niche language hurt agent performance?
A recurring criticism of Lisp-based agents is that LLMs are trained overwhelmingly on mainstream languages, so a niche language like Common Lisp should hurt performance. This argument is often traced to danluu’s writing on programming-language tokens in training data. The Autolith author pushes back, and the HN thread turned into a genuine debate.
The counter-argument has several parts. First, Lisp’s syntax is extremely regular — there is essentially one syntactic form, the s-expression — which is easy for a model to generate correctly. Second, SBCL offers outstanding out-of-the-box debuggability and introspectability: you can inspect the running system, trace functions, and see exactly what is happening, which is exactly what an agent needs. Third, the image paradigm means the agent’s environment is inspectable and modifiable in ways that a compiled binary is not.
The author also notes that GPT models are especially good at Lisp, in part because counting parentheses is a well-defined mechanical task. The harness even detects Lisp file edits and gives hints when an edit leads to unbalanced files, catching the classic failure mode before it compounds.
The author has been experimenting with Scheme and Common Lisp alongside LLMs for roughly three years, and only recently concluded they are “good enough” to build a serious agent on. That timeline matters: this is not a weekend experiment but a considered bet that the Lisp image paradigm is an asset for LLM agents, not a liability.
Installation, providers, and platform support
Autolith installs via a curl-into-sh script or through Nix, which the documentation recommends. The current version at the time of research was v0.40.1.
Platform support is broad for a Lisp project:
- Linux — x86-64 and aarch64
- macOS — x86-64 and arm64
- FreeBSD — x86-64
- NetBSD — x86-64
- OpenBSD — x86-64
The binary release bundles its own SBCL 2.6.6, so you do not need a separate Lisp installation to get started.
Provider support is also extensive. Autolith works with ChatGPT Codex, Grok, Nous Research, Fireworks AI, Anthropic API, OpenRouter, OpenCode, and Mistral AI. The default model is gpt-5.6-sol. Because the prompt input is the REPL, switching providers is a configuration change rather than a different workflow.
Security caveats: a development agent, not a sandbox
The most important caveat is security. Autolith executes model-generated code with the user’s privileges. Its process boundaries are designed to protect reliability — so a crash or a runaway loop does not take down your whole system — but they do not protect against hostile code.
This is a critical distinction. If you point Autolith at a repository and it runs code, that code runs as you. A malicious prompt, a compromised model output, or a prompt-injection attack in a file the agent reads could cause it to execute arbitrary commands with your permissions. The author is explicit about this: the process boundaries protect reliability, not against hostile code.
In practical terms, Autolith is a development agent for people who understand and accept that the model’s output is executed with full user privileges. It is not a security sandbox, and you should not treat it as one. Run it in an environment where you are comfortable with the agent having your permissions, and be careful about what repositories and prompts you feed it.
How Autolith compares to Cursor, Claude Code, and Prime Agent
To understand where Autolith fits, it helps to compare it against the mainstream and the adjacent.
Cursor and Claude Code are file-based agents. They are language-agnostic, work on any codebase, and are excellent at generating and applying edits. But they cannot modify their own runtime, and their feedback loop depends on external builds and tests. Autolith trades language-agnosticism for a deep, self-modifying relationship with a live Lisp image. If your stack is Lisp, Autolith offers a level of introspection and live iteration that file-based agents cannot match. If your stack is JavaScript or Python, Autolith is not the right tool.
Prime Agent is the closest mainstream reference for the RLM concept, but Autolith’s implementation differs. In Prime Agent, the recursive language model is central to the architecture. In Autolith, the top-level agent is traditional, and RLM is a tool for exploratory and oversized-context work. Autolith’s differentiator is not RLM per se but the live-runtime self-modification and image-generation recovery.
Samizdat (by yogthos, built on Jolt/Chez Scheme) is the closest sibling project. The two authors exchanged ideas on Zulip and independently built their own Lisp agent harnesses. A shared insight from that collaboration: you want a set of canned workflows as a starter pack, which the tool copies into each project and then keeps adjusting based on where it gets stuck. This is a design philosophy both projects share — the agent learns the project’s workflow by iterating on it.
| Tool | Language | Self-modifying runtime | Oversized context | Recovery |
|---|---|---|---|---|
| Cursor | Any | No | Truncation/retrieval | Git |
| Claude Code | Any | No | Truncation/retrieval | Git |
| Prime Agent | Any | No | RLM (central) | Checkpoints |
| Samizdat | Scheme | Yes | — | — |
| Autolith | Common Lisp | Yes | RLM (tool) | Image generations |
Verdict: who should try Autolith
Autolith is not a general-purpose replacement for Cursor or Claude Code. It is a specialized tool for a specific audience: Common Lisp developers who want an agent that can live inside their runtime, modify it, and recover from its own mistakes.
Try Autolith if you work in Common Lisp and want an agent that can introspect and extend a live SBCL image, if you are curious about the Lisp Machine paradigm applied to AI agents, or if you want to experiment with self-modifying agents and image-generation recovery. The RLM approach to oversized context is also worth studying even if you never use Lisp, because it is a genuinely different answer to the context-window problem.
Skip Autolith if you work primarily in mainstream languages, if you need a security sandbox rather than a privileged development agent, or if you are not comfortable with the model executing code with your full user privileges. For those use cases, a file-based agent is the safer and more appropriate choice.
Autolith is a compelling proof that the live-runtime paradigm is viable for AI agents. Whether it becomes mainstream depends on whether the Lisp ecosystem — and the willingness to run model-generated code with full privileges — grows to match its ambition.
FAQ
What is Autolith? Autolith is a Common Lisp terminal programming agent that runs inside a live SBCL image. It can inspect, test, and modify its own running runtime, with changes taking effect immediately and recorded in an append-only mutation journal.
How is Autolith different from Cursor or Claude Code? Cursor and Claude Code are file-based agents that edit text on disk and rely on external builds for feedback. Autolith redefines functions and classes live in its own running Lisp image, giving immediate feedback and the ability to self-modify.
What is a “live runtime” in Autolith? A live runtime means the agent runs inside a running SBCL Lisp image that it can inspect and extend in real time. It can replace its own functions, methods, macros, and settings without a rebuild or restart.
How does Autolith handle large codebases?
Autolith uses recursive inference (RLM) via rlm.complete. It interns a corpus larger than the model window as a content-addressed object and drives a heap-isolated Lisp environment under explicit call and token budgets, pulling in only what it needs.
Is Autolith safe to run? Autolith executes model-generated code with your user privileges. Its process boundaries protect reliability, not against hostile code, so it is a development agent rather than a security sandbox. Run it only where you are comfortable with the agent having your permissions.
