Devotd Github
NewAI agents

nodecode-ai/nodecode — a self-modifying agent in Common Lisp

nodecode-ai/nodecode is an agent that modifies a running Lisp program and keeps its definitions in the next run as well.

Repositorynodecode-ai/nodecode ↗

nodecode-ai/nodecode is an agent that modifies a running Lisp program and keeps its definitions in the next run as well.

GitHub description: A living agent organism in Lisp.

stars
★ 135
Forks
15
Language
Common Lisp
License
MIT
Read original source ↗View on GitHub ↗

nodecode-ai/nodecode is a self-modifying agent implemented in Common Lisp. According to the README, it runs as a single process on SBCL, and the only tool available to the model is an interpreter that evaluates code in the running Lisp program. The repository is published under the MIT license and has 135 stars.

The key point of this structure is that new capabilities are not added only as external tools. The README explains that when the agent encounters something it cannot handle, it can write code and add it as a definition to the running program. Definitions are stored in files and version-controlled, and loaded at startup, so they remain in the next run as well. It also introduces features for applying changes to the running program and for handling change history through a generation list and an undo feature. Tools and skills, and MCP servers, can be added as folder-level cells. The README also explains that the conversation history is not overwritten with a summary and that earlier entries can be read again.

It also presents a configuration that attaches a terminal and browser, mobile devices, and Discord, Telegram, and Slack connections to the same process. The idea of gathering memory, skills, and MCP in one place fits with the direction of extending the agent's capabilities inside the Lisp environment. However, the provided materials contain no recent release, so version-by-version change history cannot be confirmed. No performance figures are given either, so the design described in the README should be distinguished from the actual range of behavior.