Major architectural change to make Ralph available as global commands: 🌟 New Global Installation System: - Add install.sh script for global installation to ~/.local/bin - Creates ralph, ralph-monitor, ralph-setup global commands - Installs templates and scripts to ~/.ralph/ directory - Automatic dependency checking and PATH configuration 🚀 Enhanced User Experience: - ralph-setup my-project (run from anywhere, no directory constraints) - ralph --monitor (start from any project directory) - ralph-monitor (global monitoring command) - No more ../ralph_loop.sh relative path requirements 🔧 Improved Architecture: - Global template system in ~/.ralph/templates/ - Smart path detection (global commands vs local scripts) - Maintains backward compatibility during transition - Clean separation of installation vs project files 📚 Updated Documentation: - All examples now use global commands (ralph vs ../ralph_loop.sh) - Clear installation instructions with ./install.sh - Global command reference in CLAUDE.md - Streamlined Quick Start workflow This makes Ralph much more professional and user-friendly by eliminating directory structure requirements and providing standard Unix command experience.
4.3 KiB
4.3 KiB
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Repository Overview
This is the Ralph for Claude Code repository - an autonomous AI development loop system that enables continuous development cycles with intelligent exit detection and rate limiting.
Core Architecture
The system consists of four main bash scripts that work together:
- ralph_loop.sh - The main autonomous loop that executes Claude Code repeatedly
- ralph_monitor.sh - Live monitoring dashboard for tracking loop status
- setup.sh - Project initialization script for new Ralph projects
- create_files.sh - Bootstrap script that creates the entire Ralph system
Key Commands
Installation
# Install Ralph globally (run once)
./install.sh
# Uninstall Ralph
./install.sh uninstall
Setting Up a New Project
# Create a new Ralph-managed project (run from anywhere)
ralph-setup my-project-name
cd my-project-name
Running the Ralph Loop
# Start with integrated tmux monitoring (recommended)
ralph --monitor
# Start without monitoring
ralph
# With custom parameters and monitoring
ralph --monitor --calls 50 --prompt my_custom_prompt.md
# Check current status
ralph --status
Monitoring
# Integrated tmux monitoring (recommended)
ralph --monitor
# Manual monitoring in separate terminal
ralph-monitor
# tmux session management
tmux list-sessions
tmux attach -t <session-name>
Ralph Loop Configuration
The loop is controlled by several key files and environment variables:
- PROMPT.md - Main prompt file that drives each loop iteration
- @fix_plan.md - Prioritized task list that Ralph follows
- @AGENT.md - Build and run instructions maintained by Ralph
- status.json - Real-time status tracking (JSON format)
- logs/ - Execution logs for each loop iteration
Rate Limiting
- Default: 100 API calls per hour (configurable via
--callsflag) - Automatic hourly reset with countdown display
- Call tracking persists across script restarts
Intelligent Exit Detection
The loop automatically exits when it detects project completion through:
- Multiple consecutive "done" signals from Claude Code
- Too many test-only loops indicating feature completeness
- All items in @fix_plan.md marked as completed
- Strong completion indicators in responses
Project Structure for Ralph-Managed Projects
Each project created with ./setup.sh follows this structure:
project-name/
├── PROMPT.md # Main development instructions
├── @fix_plan.md # Prioritized TODO list
├── @AGENT.md # Build/run instructions
├── specs/ # Project specifications
├── src/ # Source code
├── examples/ # Usage examples
├── logs/ # Loop execution logs
└── docs/generated/ # Auto-generated documentation
Template System
Templates in templates/ provide starting points for new projects:
- PROMPT.md - Instructions for Ralph's autonomous behavior
- fix_plan.md - Initial task structure
- AGENT.md - Build system template
File Naming Conventions
- Files prefixed with
@(e.g.,@fix_plan.md) are Ralph-specific control files - Hidden files (e.g.,
.call_count,.exit_signals) track loop state logs/contains timestamped execution logsdocs/generated/for Ralph-created documentation
Global Installation
Ralph installs to:
- Commands:
~/.local/bin/(ralph, ralph-monitor, ralph-setup) - Templates:
~/.ralph/templates/ - Scripts:
~/.ralph/(ralph_loop.sh, ralph_monitor.sh, setup.sh)
Integration Points
Ralph integrates with:
- Claude Code CLI: Uses
npx @anthropic/claude-codeas the execution engine - tmux: Terminal multiplexer for integrated monitoring sessions
- Git: Expects projects to be git repositories
- jq: For JSON processing of status and exit signals
- Standard Unix tools: bash, grep, date, etc.
Exit Conditions and Thresholds
MAX_CONSECUTIVE_TEST_LOOPS=3- Exit if too many test-only iterationsMAX_CONSECUTIVE_DONE_SIGNALS=2- Exit on repeated completion signalsTEST_PERCENTAGE_THRESHOLD=30%- Flag if testing dominates recent loops- Completion detection via @fix_plan.md checklist items