Skip to main content

Autonomous development loop with context rotation

Project description

Ralph

Stop cleaning up after your AI coding agent.

Ralph supervises Claude Code (and other agents soon) to actually finish what they start. When Claude loses track, declares "done" prematurely, or forgets earlier decisions -- Ralph catches it.

Who This Is For

  • You use Claude Code or similar AI coding tools
  • You're building real projects, not just experimenting
  • You've been frustrated by half-finished AI output
  • You want better results, even if it costs more tokens

Quick Start

  1. Install and initialize

    pipx install ralph-loop
    ralph init
    
  2. Describe what you want built (in PROMPT.md)

    # Goal
    Add a contact form that emails submissions to me.
    
    # Success Criteria
    - [ ] Form has name, email, message fields
    - [ ] Validates email format before sending
    - [ ] Shows success message after submission
    - [ ] Emails go to contact@mysite.com
    
  3. Let Ralph supervise the build

    ralph run
    

    Ralph keeps Claude working until all criteria are actually met. Verified 3 times to make sure nothing was missed.

How It Works

Claude Code is powerful, but on bigger tasks it can:

  • Lose context as the conversation grows
  • Forget decisions made earlier in the session
  • Declare "done" when things clearly aren't

Ralph solves this by breaking big tasks into fresh-context chunks.

After each chunk, Ralph:

  1. Saves what Claude learned and accomplished (so nothing is lost)
  2. Starts a fresh session (so context stays clean)
  3. Hands off the state (so Claude picks up where it left off)

When Claude says "done", Ralph doesn't just trust it. It verifies 3 times with fresh eyes. If anything was missed, work continues.

Result: Tasks that used to fail halfway through now complete reliably.

The Tradeoff

Ralph uses more tokens than running Claude directly. Each rotation is a fresh API call, and verification adds more.

But: You'll spend less time debugging, less time re-prompting, and less time cleaning up half-finished work. For many tasks, the extra tokens are worth it.

Commands

Command Description
ralph init Initialize Ralph in the current directory
ralph run Supervise Claude until the goal is complete
ralph status Show current progress
ralph reset Start fresh
ralph history View logs from previous sessions

Configuration

The .ralph/ directory contains local state and should not be committed:

# .gitignore
.ralph/

Documentation

Built By

Ralph was created by Ilja Weber to solve my own frustrations with AI coding agents declaring "done" too early.

Follow for updates:

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ralph_loop-0.1.2.tar.gz (52.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ralph_loop-0.1.2-py3-none-any.whl (23.2 kB view details)

Uploaded Python 3

File details

Details for the file ralph_loop-0.1.2.tar.gz.

File metadata

  • Download URL: ralph_loop-0.1.2.tar.gz
  • Upload date:
  • Size: 52.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ralph_loop-0.1.2.tar.gz
Algorithm Hash digest
SHA256 d33c41869df84bdae71b5cd62d4c05b3ebe7f4b1800aea3e7b101dd1890a82f9
MD5 786e15fe6222e6288c401f5b1a6dbeb9
BLAKE2b-256 728cb03ccc7b42eccc7c6326ddac305694706bf97f571082d3c1fcb0e5a6b1ac

See more details on using hashes here.

Provenance

The following attestation bundles were made for ralph_loop-0.1.2.tar.gz:

Publisher: publish.yml on iwebercodes/ralph

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ralph_loop-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: ralph_loop-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 23.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ralph_loop-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 620feecb948d5bd2d92537c7a546fc25ae5a7b87376a06a8708955faaaf7e45d
MD5 9d32fb49cc28b97a4802b49a2d3f3402
BLAKE2b-256 6457182953a77a2419adf2da9184e785d418626d3981b1409520a6d8be8fe425

See more details on using hashes here.

Provenance

The following attestation bundles were made for ralph_loop-0.1.2-py3-none-any.whl:

Publisher: publish.yml on iwebercodes/ralph

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page