@rahulmutt/pi-ralph
Pi extension that adds the /ralph command — a Ralph Wiggum loop that runs a prompt file over multiple fresh sessions
Package details
Install @rahulmutt/pi-ralph from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:@rahulmutt/pi-ralph- Package
@rahulmutt/pi-ralph- Version
0.4.0- Published
- Apr 22, 2026
- Downloads
- 621/mo · 242/wk
- Author
- rahulmutt
- License
- Apache-2.0
- Types
- extension
- Size
- 29.5 KB
- Dependencies
- 0 dependencies · 0 peers
Pi manifest JSON
{
"extensions": [
"./extensions/index.ts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
@rahulmutt/pi-ralph
A pi extension that adds the /ralph command — a Ralph Wiggum loop that runs a prompt file repeatedly across fresh sessions.
Install
pi install npm:@rahulmutt/pi-ralph
Or try it without installing:
pi -e npm:@rahulmutt/pi-ralph
Usage
/ralph <prompt-file>
/ralph [iterations] <prompt-file>
/ralph stop
Examples
/ralph prompts/implement.md
/ralph 5 prompts/implement.md
/ralph 2 "prompts/my prompt.md"
/ralph stop
Behavior
- iterations is optional and defaults to
3(max1000) /ralph stoprequests a graceful stop: the current iteration is allowed to finish, and the loop exits before starting the next iteration- Each iteration starts in a fresh session branched from the original, so context is cleared before the prompt runs
- Progress is persisted under
.ralph/:.ralph/RALPH.mdis the always-current summary.ralph/<YYYY>/<MM>/<DD>/RALPH-<HH>-<MM>-<SS>-<mmm>.mdstores the full per-invocation progression, appending the last message from each iteration into the same file.ralph/<YYYY>/<MM>/<DD>/RALPH-<HH>-<MM>-<SS>-<mmm>-iter-<NNN>.jsonlstores the transcript for each individual iteration, with all JSONL files from one/ralphrun sharing the same invocation prefix
- Prompt files may live under the project directory,
~/.pi, or~/.local - Paths with spaces can be quoted
How it works
The Ralph Wiggum loop:
- Waits for the agent to become idle
- Captures the current session as the parent
- For each iteration:
- Creates a new session (branched from the parent)
- Sends the prompt file contents as a user message
- Waits for the agent to finish
- Appends the iteration's last assistant message into the current invocation's
RALPH-*.md - Writes that iteration's transcript to its own
RALPH-*-iter-<NNN>.jsonl
This is useful for running the same prompt (e.g., an implementation plan) repeatedly, where each iteration picks up the next uncompleted task from a plan file.
License
MIT