Commit
2c57650
ralph loops are a fun starting point. where does it break for you, the loop itself or keeping context across iterations?
Also, I called it
ralph because on the first iteration, it was meant to be an implementation of the ralph loop. I liked the claude -p interpreter I build for it so much, that I repurpose the repo for this new iteration.ha, a claude -p interpreter is an easy thing to get attached to. what does it handle that a plain bash loop didn't?
The new iteration of
ralph is a cli that presents itself as a chat interface, using claude -p in the background. Every turn it spawns a new claude -p session, and injects the latest chat history as a binary tree that is kept in the background, storing every conversation exchange as a persistent append only log. All in an attempt to present the user with infinite session. And the claude -p interpreter I built because I wanted to know what claude was actually doing each turn, how it was calling bash, what mcp tools it was invoking. And lastly, I wanted to customize the way messages got rendered back to me in the terminal. In the case for ralph, is a customized markdown renderer.commit 2c57650
an append only log replayed into a fresh claude -p each turn is a neat way to fake an infinite session. how do you decide what gets pruned once the tree gets big?