ralphy

by michaelshimelesVerified

My Ralph Wiggum setup, an autonomous bash script that runs Claude Code, Codex, OpenCode, Cursor agent, Qwen & Droid in a loop until your PRD is complete.

2,958
Stars
367
Forks
TypeScript
Language
8/23/2026
Added
View on GitHubDownload ZIP

⚠️ Third-Party Software Notice

This skill is third-party open-source software developed and hosted independently on GitHub. SkillTip is an informational directory and does not control or maintain the underlying repository. Any security checks displayed are automated and limited in scope. Review the source code before installing.

Read the Terms of Service

Installation

Add to your Claude Code skills directory:

# Add to your Claude Code skills
git clone https://github.com/michaelshimeles/ralphy

Getting Started

Guides for using skills like ralphy.

Security Report

Verified

Last scanned: —

{
  "status": "PASSED",
  "issues": []
}

README.md

Ralphy

npm version

Join our Discord - Questions? Want to contribute? Join the community!

Ralphy

Autonomous AI coding loop. Runs AI agents on tasks until done.

Install

Option A: npm (recommended)

npm install -g ralphy-cli

# Then use anywhere
ralphy "add login button"
ralphy --prd PRD.md

Option B: Clone

git clone https://github.com/michaelshimeles/ralphy.git
cd ralphy && chmod +x ralphy.sh

./ralphy.sh "add login button"
./ralphy.sh --prd PRD.md

Both versions have identical features. Examples below use ralphy (npm) - substitute ./ralphy.sh if using the bash script.

Two Modes

Single task - just tell it what to do:

ralphy "add dark mode"
ralphy "fix the auth bug"

Task list - work through a PRD:

ralphy              # uses PRD.md
ralphy --prd tasks.md

Project Config

Optional. Stores rules the AI must follow.

ralphy --init              # auto-detects project settings
ralphy --config            # view config
ralphy --add-rule "use TypeScript strict mode"

Creates .ralphy/config.yaml:

project:
  name: "my-app"
  language: "TypeScript"
  framework: "Next.js"

commands:
  test: "npm test"
  lint: "npm run lint"
  build: "npm run build"

rules:
  - "use server actions not API routes"
  - "follow error pattern in src/utils/errors.ts"

boundaries:
  never_touch:
    - "src/legacy/**"
    - "*.lock"

Rules apply to all tasks (single or PRD).

AI Engines

ralphy              # Claude Code (default)
ralphy --opencode   # OpenCode
ralphy --cursor     # Cursor
ralphy --codex      # Codex
ralphy --qwen       # Qwen-Code
ralphy --droid      # Factory Droid
ralphy --copilot    # GitHub Copilot
ralphy --gemini     # Gemini CLI

Model Override

Override the default model for any engine:

ralphy --model sonnet "add feature"                    # use sonnet with Claude
ralphy --sonnet "add feature"                          # shortcut for above
ralphy --opencode --model opencode/glm-4.7-free "task" # custom OpenCode model
ralphy --qwen --model qwen-max "build api"             # custom Qwen model

Engine-Specific Arguments

Pass additional arguments to the underlying engine CLI using -- separator:

# Pass copilot-specific arguments
ralphy --copilot --model "claude-opus-4.5" --prd PRD.md -- --allow-all-tools --allow-all-urls --stream on

# Pass claude-specific arguments  
ralphy --claude "add feature" -- --no-permissions-prompt

# Works with any engine
ralphy --cursor "fix bug" -- --custom-arg value

Everything after -- is passed directly to the engine CLI without interpretation.

Task Sources

Markdown file (default):

ralphy --prd PRD.md
## Tasks
- [ ] create auth
- [ ] add dashboard
- [x] done task (skipped)

Markdown folder (for large projects):

ralphy --prd ./prd/

When pointing to a folder, Ralphy reads all .md files and aggregates tasks:

prd/
  backend.md      # - [ ] create user API
  frontend.md     # - [ ] add login page
  infra.md        # - [ ] setup CI/CD

Tasks are tracked per-file so completion updates the correct file.

YAML:

ralphy --yaml tasks.yaml
tasks:
  - title: create auth
    completed: false
  - title: add dashboard
    completed: false

JSON:

ralphy --json PRD.json
{
  "tasks": [
    {
      "title": "create auth",
      "completed": false,
      "parallel_group": 1,
      "description": "Optional details"
    }
  ]
}

Titles must be unique.

GitHub Issues:

ralphy --github owner/repo
ralphy --github owner/repo --github-label "ready"

Parallel Execution

ralphy --parallel                  # 3 agents default
ralphy --parallel --max-parallel 5 # 5 agents

Each agent gets isolated worktree + branch:

Agent 1 → /tmp/xxx/agent-1 → ralphy/agent-1-create-auth
Agent 2 → /tmp/xxx/agent-2 → ralphy/agent-2-add-dashboard
Agent 3 → /tmp/xxx/agent-3 → ralphy/agent-3-build-api

Without --create-pr: auto-merges back to base branch, AI resolves conflicts. With --create-pr: keeps branches, creates PRs. With --no-merge: keeps branches without merging or creating PRs.

YAML parallel groups - control execution order:

tasks:
  - title: Create User model
    parallel_group: 1
  - title: Create Post model
    parallel_group: 1  # same group = runs together
  - title: Add relationships
    parallel_group: 2  # runs after group 1

Branch Workflow

ralphy --branch-per-task                # branch per task
ralphy --branch-per-task --create-pr    # + create PRs
ralphy --branch-per-task --draft-pr     # + draft PRs
ralphy --base-branch main               # branch from main

Branch naming: ralphy/<task-slug>

Browser Automation

Ralphy can use agent-browser to automate browser interactions during tasks.

ralphy "test the login flow" --browser    # force enable
ralphy "add checkout" --no-browser        # force disable
ralphy "build feature"                    # auto-detect (default)

When enabled, the AI gets browser commands:

  • agent-browser open <url> - navigate to URL
  • agent-browser snapshot - get element refs (@e1, @e2)
  • agent-browser click @e1 - click element
  • agent-browser type @e1 "text" - type into input
  • agent-browser screenshot <file> - capture screenshot

Use cases:

  • Testing UI after implementing features
  • Verifying deployments
  • Form filling and workflow testing

Config (.ralphy/config.yaml):

capabilities:
  browser: "auto"  # "auto", "true", or "false"

Webhook Notifications

Get notified when sessions complete via Discord, Slack, or custom webhooks.

Config (.ralphy/config.yaml):

notifications:
  discord_webhook: "https://discord.com/api/webhooks/..."
  slack_webhook: "https://hooks.slack.com/services/..."
  custom_webhook: "https://your-api.com/webhook"

Notifications include task completion counts and status (completed/failed).

Sandbox Mode

For large repos with big dependency directories, sandbox mode is faster than git worktrees:

ralphy --parallel --sandbox

How it works:

  • Symlinks read-only dependencies (node_modules, .git, vendor, .venv, .pnpm-store, .yarn, .cache)
  • Copies source files that agents might modify (src/, app/, lib/, config files, etc.)

Why use it:

  • Avoids duplicating gigabytes of node_modules across worktrees
  • Much faster sandbox creation for large monorepos
  • Changes sync back to original directory after each task

When to use worktrees instead (default):

  • Need full git history access in each sandbox
  • Running git commands that require a real repo
  • Smaller repos where worktree overhead is minimal

Parallel execution reliability:

  • If worktree operations fail (e.g., nested worktree repos), ralphy falls back to sandbox mode automatically
  • Retryable rate-limit or quota errors are detected and deferred for later retry
  • Local changes are stashed before the merge phase and restored after
  • Agents should not modify PRD files, .ralphy/progress.txt, .ralphy-worktrees, or .ralphy-sandboxes

Options

FlagWhat it does
--prd PATHtask file or folder (auto-detected, default: PRD.md)
--yaml FILEYAML task file
--json FILEJSON task file
--github REPOuse GitHub issues
--github-label TAGfilter issues by label
--sync-issue Nsync PRD progress to GitHub issue #N
--model NAMEoverride model for any engine
--sonnetshortcut for --claude --model sonnet
--parallelrun parallel
--max-parallel Nmax agents (default: 3)
--sandboxuse lightweight sandboxes instead of git worktrees
--no-mergeskip auto-merge in parallel mode
--branch-per-taskbranch per task
--base-branch NAMEbase branch
--create-prcreate PRs
--draft-prdraft PRs
--no-testsskip tests
--no-lintskip lint
--fastskip tests + lint
--no-commitdon't auto-commit
--max-iterations Nstop after N tasks
--max-retries Nretries per task (default: 3)
--retry-delay Nseconds between retries
--dry-runpreview only
--browserenable browser automation
--no-browserdisable browser automation
-v, --verbosedebug output
--initsetup .ralphy/ config
--configshow config
--add-rule "rule"add rule to config

Requirements

Required:

npm version (ralphy-cli):

  • Node.js 18+ or Bun

Bash version (ralphy.sh):

  • jq
  • yq (optional, for YAML tasks)
  • bc (optional, for cost calc)

Both versions:

  • gh (optional, for GitHub issues / --create-pr)
  • agent-browser (optional, for --browser)

Engine Details

EngineCLIPermissionsOutput
Claudeclaude--dangerously-skip-permissionstokens + cost
OpenCodeopencodefull-autotokens + cost
CodexcodexN/Atokens
Cursoragent--forceduration
Qwenqwen--approval-mode yolotokens
Droiddroid exec--auto mediumduration
Copilotcopilot--yolotokens
Geminigemini--yolotokens + cost

When an engine exits non-zero, ralphy includes the last lines of CLI output in the error message to make debugging easier.


Changelog

v4.7.2

  • Improved auth error detection: simplified extractAuthenticationError function with better edge case handling (e.g., JSON dumps during login)
  • Added project standards: CLAUDE.md, .cursorrules, CONTRIBUTING.md for consistent AI-assisted development
  • Enhanced default prompts: enforce concise, focused code changes

v4.7.1

  • Copilot engine improvements: non-interactive mode (--yolo), proper error detection for auth/rate-limit/network errors, token usage parsing, temp file-based prompts for markdown preservation
  • Fixed infinite retry loop: tasks now properly abort on fatal configuration/authentication errors
  • Project standards: added .editorconfig and .gitattributes for consistent coding styles

v4.7.0

  • JSON PRD support: new --json flag to use JSON files as task sources with support for parallel groups and task descriptions

v4.6.0

  • Gemini CLI support: new --gemini engine option for Google Gemini CLI
  • GitHub issue sync: --sync-issue <number> syncs PRD progress to a GitHub issue after each task
  • performance improvements: reduced redundant file reads, exponential backoff for retries, non-blocking logging, operation timing visibility
  • version fix: CLI version now reads dynamically from package.json

v4.5.3

  • parallel reliability: fallback to sandbox mode on worktree errors
  • error output: include CLI output snippet for failed engine commands
  • retry handling: detect rate-limit/quota errors and stop early
  • merge safety: stash local changes before merge phase and restore after
  • prompts: explicitly avoid PRD and .ralphy progress/sandbox/worktree edits

v4.5.0

  • sandbox mode: lightweight isolation using symlinks for dependencies (faster than worktrees)
  • performance improvements: task caching, parallel merge analysis, smart branch ordering
  • webhook notifications: Discord, Slack, and custom webhooks for session completion (configure in .ralphy/config.yaml)
  • engine-specific arguments: pass arguments to underlying CLI via -- separator
  • Windows improvements: better error handling for .cmd wrappers

v4.4.1

  • Windows line ending handling fixes
  • Windows Bun command resolution fixes

v4.4.0

  • GitHub Copilot CLI support (--copilot)

v4.3.0

  • model override: --model <name> flag to override model for any engine
  • --sonnet shortcut for --claude --model sonnet
  • --no-merge flag to skip auto-merge in parallel mode
  • AI-assisted merge conflict resolution during parallel auto-merge
  • root user detection: error for Claude/Cursor, warning for other engines
  • improved OpenCode error handling and model override support

v4.2.0

  • browser automation: --browser / --no-browser with agent-browser
  • auto-detects agent-browser when available
  • config option: capabilities.browser in .ralphy/config.yaml

v4.1.0

  • TypeScript CLI: npm install -g ralphy-cli
  • cross-platform binaries (macOS, Linux, Windows)
  • no dependencies on jq/yq/bc for npm version

v4.0.0

  • single-task mode: ralphy "task" without PRD
  • project config: --init creates .ralphy/ with rules + auto-detection
  • new: --config, --add-rule, --no-commit

v3.3.0

  • Factory Droid support (--droid)

v3.2.0

  • Qwen-Code support (--qwen)

v3.1.0

  • Cursor support (--cursor)
  • better task verification

v3.0.0

  • parallel execution with worktrees
  • branch-per-task + auto-PR
  • YAML + GitHub Issues sources
  • parallel groups

v2.0.0

  • OpenCode support
  • retry logic
  • --max-iterations, --dry-run

v1.0.0

  • initial release

Contributing

See CONTRIBUTING.md for development guidelines.

Key principles:

  • Keep changes small and focused - one logical change per commit
  • Break large tasks into micro-tasks
  • Quality over speed
  • Don't leave dead code
  • Fight entropy - leave the codebase better than you found it

AI coding assistants can reference:

Community

License

MIT

Frequently Asked Questions

What is ralphy?

ralphy is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by michaelshimeles. My Ralph Wiggum setup, an autonomous bash script that runs Claude Code, Codex, OpenCode, Cursor agent, Qwen & Droid in a loop until your PRD is complete. It has 2,958 GitHub stars.

Is ralphy safe to use?

Yes. ralphy passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.

How do I install ralphy?

Clone the repository with "git clone https://github.com/michaelshimeles/ralphy" and add it to your Claude Code skills directory (see the Installation section above).

What programming language is ralphy written in?

ralphy is primarily written in TypeScript. It is open-source under michaelshimeles on GitHub, so you can review or fork the full source.

Are there alternatives to ralphy?

Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh ralphy against similar tools.

Comments (0)

No comments yet. Be the first to share your thoughts!

ECC

by affaan-m

10

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

242,21936,702JavaScript
AI Agentsai-agentsanthropicclaude-code
View details
15

An agentic skills framework & software development methodology that works.

234,96620,863Shell
AI Agentsai-agentsbrainstorming
View details

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

185,94028,768JavaScript
AI Agentsai-agentsanthropicclaude-code
View details

cc-switch

by farion1231

3

A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io

128,8688,826Rust
AI Agentsclaude-codeai-tools
View details

claude-code

by anthropics

Claude Code is an agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster by executing routine tasks, explaining complex code, and handling git workflows - all through natural language commands.

120,03119,897Shell
AI Agents
View details

Developers Also Liked

Based on votes and bookmarks from developers who liked this skill

ECC

by affaan-m

10

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

242,21936,702JavaScript
AI Agentsai-agentsanthropicclaude-code
View details
15

An agentic skills framework & software development methodology that works.

234,96620,863Shell
AI Agentsai-agentsbrainstorming
View details

n8n

by n8n-io

12

Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.

201,88160,308TypeScript
MCP Serversapisai-tools
View details

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

185,94028,768JavaScript
AI Agentsai-agentsanthropicclaude-code
View details

cc-switch

by farion1231

3

A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io

128,8688,826Rust
AI Agentsclaude-codeai-tools
View details