{"adoption": {"forks": 142, "observed_at": "2026-08-28T04:05:48.766884+00:00", "stars": 1883}, "canonical_url": "https://ross.abutalabs.com/products/open-ralph-wiggum", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Type `ralph \"prompt\"` to start open code in a ralph loop. Also supports a prompt file & status check. Open Code, Claude Code, Codex, Copilot", "domain": ["developer-tools", "artificial-intelligence"], "enriched": true, "function": ["agent-framework", "cli", "developer-tools", "workflow-automation"], "health_score": 90, "homepage": null, "language": "TypeScript", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["Th0rgal/open-ralph-wiggum"], "name": "Th0rgal/open-ralph-wiggum", "platform": ["cli", "cross-platform", "windows"], "pushed_at": "2026-06-02T16:13:41+00:00", "repo": "Th0rgal/open-ralph-wiggum", "stars": 1883, "tags": ["ralph-wiggum", "agentic-loop", "claude-code", "opencode", "codex", "copilot-cli", "cursor-agent", "qwen-code", "ai-coding-agents", "autonomous-coding", "bun", "typescript", "ai-agents", "command-line", "automation", "nodejs", "macos", "linux"], "topics": ["claude-code", "open-code", "opencode", "ralph", "ralph-wiggum"], "urls": [], "use_cases": ["run an AI coding agent in a loop until the task is done", "automate iterative coding with Claude Code or Codex", "let an AI agent autonomously build a REST API", "run headless AI coding agent with a prompt file", "check status of an ongoing agentic coding loop", "switch between multiple AI coding CLIs with one tool"], "what_it_is": "A CLI tool that runs AI coding agents (Claude Code, Codex, Copilot CLI, Cursor Agent, Qwen Code, OpenCode) in an autonomous iterative 'Ralph loop' until a task completes. Built with Bun and TypeScript, it accepts a prompt or prompt file and supports agent switching via a flag.", "when_to_avoid": ["you need a GUI or IDE plugin rather than a CLI", "you want a single-shot AI code completion instead of an iterative loop", "you don't use any of the supported AI coding agent CLIs"], "when_to_choose": ["you want to run an AI coding agent autonomously over many iterations", "you use multiple agent CLIs (Claude Code, Codex, Copilot, Cursor, OpenCode) and want one wrapper", "you follow the Ralph Wiggum technique for agentic development"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/open-ralph-wiggum", "repo": "Th0rgal/open-ralph-wiggum", "role": "main", "score": 72}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:48.766884+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:13:40.770400+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e5969983e8a5921218175084f5be6443fa497bd2f754569cae8351f3aa5e1e54", "fetched_at": "2026-08-28T04:05:48.766884+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Th0rgal/open-ralph-wiggum"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:48.766884+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:13:40.770400+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e5969983e8a5921218175084f5be6443fa497bd2f754569cae8351f3aa5e1e54", "fetched_at": "2026-08-28T04:05:48.766884+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Th0rgal/open-ralph-wiggum"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:13:40.770400+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e5969983e8a5921218175084f5be6443fa497bd2f754569cae8351f3aa5e1e54", "fetched_at": "2026-08-28T04:05:48.766884+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Th0rgal/open-ralph-wiggum"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:05:48.766884+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:48.766884+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:48.766884+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:13:40.770400+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e5969983e8a5921218175084f5be6443fa497bd2f754569cae8351f3aa5e1e54", "fetched_at": "2026-08-28T04:05:48.766884+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Th0rgal/open-ralph-wiggum"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:48.766884+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:48.766884+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:13:40.770400+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e5969983e8a5921218175084f5be6443fa497bd2f754569cae8351f3aa5e1e54", "fetched_at": "2026-08-28T04:05:48.766884+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Th0rgal/open-ralph-wiggum"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:48.766884+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:48.766884+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:48.766884+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:13:40.770400+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e5969983e8a5921218175084f5be6443fa497bd2f754569cae8351f3aa5e1e54", "fetched_at": "2026-08-28T04:05:48.766884+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Th0rgal/open-ralph-wiggum"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:48.766884+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:48.766884+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:13:40.770400+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e5969983e8a5921218175084f5be6443fa497bd2f754569cae8351f3aa5e1e54", "fetched_at": "2026-08-28T04:05:48.766884+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Th0rgal/open-ralph-wiggum"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:13:40.770400+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e5969983e8a5921218175084f5be6443fa497bd2f754569cae8351f3aa5e1e54", "fetched_at": "2026-08-28T04:05:48.766884+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Th0rgal/open-ralph-wiggum"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:13:40.770400+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e5969983e8a5921218175084f5be6443fa497bd2f754569cae8351f3aa5e1e54", "fetched_at": "2026-08-28T04:05:48.766884+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Th0rgal/open-ralph-wiggum"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:13:40.770400+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e5969983e8a5921218175084f5be6443fa497bd2f754569cae8351f3aa5e1e54", "fetched_at": "2026-08-28T04:05:48.766884+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Th0rgal/open-ralph-wiggum"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 85, "longevity": 17, "rhythm": 86}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 239, "days_push": 92, "days_rel": 99, "gap_med": 14.5, "n_releases_24m": 7}, "score": 72, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}