@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

extension

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 (max 1000)
  • /ralph stop requests 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.md is the always-current summary
    • .ralph/<YYYY>/<MM>/<DD>/RALPH-<HH>-<MM>-<SS>-<mmm>.md stores 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>.jsonl stores the transcript for each individual iteration, with all JSONL files from one /ralph run 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:

  1. Waits for the agent to become idle
  2. Captures the current session as the parent
  3. 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