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

    pip 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.0.tar.gz (51.5 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.0-py3-none-any.whl (23.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ralph_loop-0.1.0.tar.gz
  • Upload date:
  • Size: 51.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for ralph_loop-0.1.0.tar.gz
Algorithm Hash digest
SHA256 16b4e488d0b833b2b09d583b9cf7551a15e5162623b9622e4b32b8303799a472
MD5 59bcaf3c0c05c46ec88c2e9b39f70a3f
BLAKE2b-256 0670f26966df0f6c6fc2b8afa521c6af5b06ac86798dc2092ce4afd7f55d3230

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ralph_loop-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 23.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for ralph_loop-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 52be20b3d005b4c9d7ad9d5392d914acf1435797245e9f07c74ef652c0d9ecd3
MD5 6e34d068186ab8755b3037dc8d0a8492
BLAKE2b-256 05cbf4ef44ea64b31cfef94f3376c75f9d3f04f0102ce873ece749dac7f1e940

See more details on using hashes here.

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