:::. ::: AUTOLITH v0.32.2 ;;`;; ;;; ───────────────────────────────────────── ,[[ '[[, [[[ model gpt-5.6-terra (effort high) c$$$cc$$$c $$' workspace ~/src/autolith/ 888 888,o88oo,.__ YMM ""` """"YUMMM Autolith executes model-generated code with your user privileges. Sandboxing is no substitute for human oversight Tip: (ste) toggles short, direct Simple Technical English replies. ❯ Ask Autolith anything. Type (help) for operations.
Autolith, or AL, is a terminal agent inside a live Common Lisp image. It can observe, self-modify, discover, introspect its own code, its live state and what it’s doing. This lets Autolith adapt to the user’s preferences or to what is needed for the task. This may sound unstable, but Autolith creates generations of this image your or it can rollback to. Even a full frontal lobotomy is not a showstopper as AL will just reload into a recovery image and diagnose and optionally fix the issue.
Autolith has a moderate focus on good ergonomics, good visuals, following XDG standards and similar, and minimal intrusiveness. It is not a “small game engine”, but it is pretty close to a Lisp Machine.
Autolith supports Linux x86-64 and macOS arm64 via Nix. Packaged binary releases are available for Linux x86-64, but not yet for macOS (good first issue? hmm?).
Nix supplies the complete runtime:
nix run github:luciusmagn/autolithA Linux curl-into-sh installer is also available. Inspect the installer script before piping it into a shell, or trust us with your life.
curl -fsSL https://sh.lambda-symbolics.com/autolith | shAuthenticate providers either with web flows or API keys:
autolith --auth chatgpt
autolith --auth anthropic
autolith --auth fireworks
autolith --auth opencodeThen start Autolith:
autolithIn Autolith, the message window is just a LISP repl with familiar interactivity, you can make prompts in regular prose, or you can enter a form when you need an exact local action or a computed prompt.
(describe 'application)
(resource.read :uri "workspace:.")
(prompt (read-file "review-notes.org"))The form runs in the active image.
Autolith has a well organized suite of self tools for inspecting and modifying itself live. You would think that doing live brain surgery on yourself would be catastrophic, but Autolith can triage and revert changes.
Similar set of lisp tools let Autolith avoid littering temporary Python3 scripts, instead doing these things in its bundled Common Lisp runtime, but in REPLs that are pristine and separate from the agent’s image. That’s one less system dependency, and it also lets Autolith observe its scripts better.
Autolith can decide if it wants to keep the same Lisp REPL alive or to create a pristine one, and can maintain multiple.
(lisp.eval :form "(+ 20 22)" :repl "scratch")
(lisp.describe :designator "APPLICATION" :target "self")
(self.status)lisp.* uses named, heap-isolated SBCL workers and can target read-only active
inspection explicitly. self.* changes or reports the active Autolith image.
When you type a message like:
Hello Autolith! How do you do?It is just syntactic sugar for:
(prompt "Hello Autolith! how do you do?")This omits the default value for the :to parameter:
(prompt :to 'autolith "Hello Autolith! how do you do?")So if you ask Autolith to delegate work (it is likely to do it on its own with mostmodels), so it can keep working
while the children run, you can talk to them as well.
If one visible child is named test-review, you steer the sub-agent by prompting it:
(prompt :to 'test-review
"Run the focused tests and report only failures.")As a convenience, its next useful verbal response returns to the primary terminal.
If you want to pull an update, you can do so easily:
(update)Or do autolith update in your shell.
Prose, callable commands, tools, and explicit Common Lisp share the REPL. This means that you can construct scripts easily, and you can call tools just like the clanker does it.
Exact forms can compute prompts or return results, and the model will see them.
For example, if you put your prompt to a file, you can just do:
(prompt (read-file "path"))You could do templating, too, if you like.
Autolith is not a fullscreen TUI application and it generally defers to the base 16 colors your terminal sets, therefore, it should look pretty good no matter what your terminal color scheme is, so long as you like it.
Autolith also emits prompt markers, so if your terminal can scroll jump between shell prompts, it can also scroll between messages to Autolith
The line editor is the fairly powerful clinedi, it should support all the editing niceties and shortcuts you are used to.
Conversations use append-only readable files. Memories and workspace agendas remain explicit.
Steering messages and follow-ups survive active-image crashes in a conversation-scoped vault. The vault is (intentionally) not resubmitted automatically, since you may want to diagnose the crash before you resume your previous work.
You can use the following commands to interact with the vault:
(vault) ; see what's in da vault
(vault-restore) ; re-submit follow-ups and steering messages in the vault
(vault-discard) ; delete vault contentsFinally, checkpoints, private mutation commits, generations, and a pristine recovery image keep live work reconstructible, so it’s hard to terminally lobotomize AL.
Autolith is ISC licensed. See LICENSE.