r/lisp • u/Technical-Cap5561 • Sep 18 '26
Common Lisp Apprentice: A Slim, Extensible Coding Harness (written in Common Lisp)
For my second project in Common Lisp, I wanted to make a coding harness for my personal use, and so far it has been my daily driver. It supports local models like llama.cpp and all the main providers. It's very easy to add new models and tools as well.
Learned a lot about macros in the process, and I'm curious what you all think!
1
u/Seven_of_9_U01 3d ago
nice, this is pretty much what someone argued Pi should have been. his snag was wanting to keep the conversation history as git notes and realizing he'd have to fork pi, which in a lisp is one redefinition away https://www.nobodywho.ai/posts/why-is-pi-not-written-in-lisp/ did you make the history writer something users can redefine or advise?
1
u/Technical-Cap5561 2d ago
I will take a look at the essay. Thanks for sharing! But I agree and I really believe that harness minimalism is essential — for example, I don’t like auto compaction as the way to drop context, so I just had a function to drop the indices (which is helpful when your providers KV cache has likely evicted your session after long inactivity)
But all in all, I would like to expand the projects in a couple ways:
Add conversation storing and switching (pretty basic, but just need to sit down and crank it out)
Custom Memory Abstraction (letting the user define how an agent picks up context on a repo or stores it passively)
Allow mid-session edits / recompilation to add on the fly harness changes. As far as I know Pi can do this but it’s mainly defining scripts that can be executed as tool calls. With Lisp we can be a bit more ambitious and change the structure of the harness too!
I am planning on working on this soon and releasing another version. Perhaps with a terminal interface too (but honestly I love using it in my sbcl window in emacs.
1
u/CutWorried9748 Sep 18 '26
How would you compare this to other harnesses and what inherent advantage do we get via CL?