Autolith: A programming agent with a live runtime

vismit20002 pts0 comments

Autolith: a Common Lisp programming agent · Lambda Symbolics OÜ

%CE%BB">

Skip to content

Autolith: a programming agent with a live runtime

Autolith runs in a terminal and works directly in your repository.<br>It can read and edit files, search the workspace, run commands and<br>tests, keep project context, and use Common Lisp without leaving the<br>conversation.

Repository work. Filesystem, shell, and search tools with visible results.

Continuity. Portable conversations, memories, agendas, checkpoints, and recovery.

Live Lisp. An SBCL runtime it can inspect, test, and extend.

Read the source<br>See a session<br>Install Autolith

For developers who want an agent they can inspect, extend, and recover.

Autolith · Resident agent

curl -fsSL https://sh.lambda-symbolics.com/autolith | sh<br>click to copy, or, better yet, install via Nix

Install Autolith

Autolith targets Linux x86-64. The binary release carries its own<br>SBCL, Lisp dependencies, and native helpers; it checks for newer<br>tagged releases and asks before updating. Nix is the recommended<br>route when you want the complete build pinned from the start.

Yes, piping a URL into a shell is evil. Read the installer before<br>running it. Nix is the better installation path.

Autolith executes model-generated code with your user privileges.<br>Its process boundaries protect reliability, not against hostile<br>code. Use it as a development agent, not as a security sandbox.

Start Autolith · Binary, Nix, or source

After the binary installer<br>$ autolith --auth<br>$ autolith

Recommended · Nix<br>$ nix run github:luciusmagn/autolith -- --auth<br>$ nix run github:luciusmagn/autolith

Build from the repository<br>$ git clone https://github.com/luciusmagn/autolith<br>$ cd autolith<br>$ ./script/bootstrap<br>$ ./script/check<br>$ ./bin/autolith --auth<br>$ ./bin/autolith

Read the source and documentation<br>See a captured session

A session starts with a concrete request

This is a captured read-only session from autolith --immutable.<br>The prompt asks for one repository listing; the tool output is shortened<br>only by Autolith's normal terminal limit.

The transcript reveals itself in order: request, tool call, bounded<br>result, then the assistant's answer. It is the terminal's actual<br>formatting, not a simulated chat window.

Captured session · immutable mode

❯ you<br>Inspect this repository without changing files. Use one tool to list the<br>top-level files, then summarize what you found in one sentence.

◇ reasoning summary<br>│ Listing top-level files<br>▸ fs.list<br>/root/common-lisp/frob<br>READ ∙ running fs.list · 00:00

✓ fs.list cpu 0.001s · real 0.002s<br>│ /root/common-lisp/frob<br>│ d .git/<br>│ d .github/<br>│ d .qlot/<br>│ d bin/<br>│ d dist/<br>│ d docs/<br>│ d native/<br>│ d nix/<br>│ d recovery/<br>│ d script/<br>│ d src/<br>│ … +13 more lines

● autolith<br>The repository is a Common Lisp project with source, tests, recovery tooling,<br>documentation, build configuration, native assets, and GitHub/Nix/Quicklisp<br>support.

The agent and its tools run in one process

Autolith is a terminal programming agent, not a wrapper around another<br>agent process. Its Common Lisp image contains the provider<br>client, terminal interface, tool registry, conversation state,<br>persistent memories, workspace agenda, and the code that decides what<br>happens next.

It talks directly to the ChatGPT Codex subscription service. The Codex<br>CLI is neither launched nor bundled. Filesystem, shell, search,<br>memory, and Lisp operations remain explicit tools with visible results.

Fast search, optional immutable mode

Workspace search runs in-process through<br>fff , a fast Rust<br>search library. Autolith keeps the index warm instead of starting a<br>new search process for every query.

If you want inspection without active-image changes, start it with<br>--immutable . The mode retains read-only inspection and<br>recovery information while withholding evaluation, mutation,<br>persistence, checkpoint, and rollback tools.

Update the running agent without restarting it

Autolith can inspect and replace complete functions, methods,<br>classes, macros, conditions, and global settings in its running<br>image. An exploratory change takes effect immediately and is<br>recorded in an append-only mutation journal. It can be exercised,<br>discarded, or retained as a private image commit.

A useful change can then become a private image commit. The commit<br>contains a manifest and a complete executable Lisp replay script,<br>retained in a separate private Git history. It changes the active<br>agent without quietly patching the tracked source repository.

A representative mutation transaction

→ self.source APPLICATION-TOOL-CALL-ENTRY<br>← complete tracked DEFMETHOD

→ self.redefine<br>(defmethod application-tool-call-entry ...)<br>← compiled and installed in the active image

→ self.diff<br>← one reconstructible live mutation

→ self.commit "Improve tool-call presentation"<br>← private image commit commit-id<br>complete reconstruct.lisp retained in private Git

Different kinds of state stay separate

Source, conversations, useful facts, live mutations, exact heaps,...

autolith agent lisp repository read search

Related Articles