Greger uses Claude with a set of built-in tools for editing code, running shell commands, searching the internet, etc. It also has a simple interface for adding custom tools.
The entire chat is a plain Emacs buffer, with markdown-like syntax. Which means that you can yank and kill and edit it like any other text file.
Every file that Greger changes gets tracked as a separate commit in Git, so you can roll back if it goes off the rails.
Most of Greger was written in Greger, with some light human review and refactoring. Claude is okay at Lisp, but I had to add a check for parens balance before accepting Claude's edits.