{"adoption": {"forks": 721, "observed_at": "2026-08-28T04:10:36.277345+00:00", "stars": 9611}, "canonical_url": "https://ross.abutalabs.com/products/ralph-claude-code", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Autonomous AI development loop for Claude Code with intelligent exit detection", "domain": ["developer-tools"], "enriched": true, "function": ["agent-framework", "cli", "developer-tools", "workflow-automation", "rate-limiting"], "health_score": 76, "homepage": null, "language": "Shell", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["frankbria/ralph-claude-code"], "name": "frankbria/ralph-claude-code", "platform": ["cli"], "pushed_at": "2026-07-18T02:33:21+00:00", "repo": "frankbria/ralph-claude-code", "stars": 9611, "tags": ["claude-code", "autonomous-loop", "exit-detection", "circuit-breaker", "git-backup", "tmux", "ai-agents", "automation", "command-line", "linux", "macos", "shell"], "topics": ["ai", "ai-agent", "ai-agents", "ai-development", "ai-development-tools", "claude-code", "claude-code-cli", "development-tools", "development-workflow"], "urls": [], "use_cases": ["run claude code autonomously until a task is done", "prevent infinite AI coding loops", "limit API usage during AI development sessions", "automate iterative code improvements with claude", "resume interrupted AI coding sessions", "get notified when an AI dev loop finishes", "back up and roll back changes made by an AI agent"], "what_it_is": "Ralph is a shell-based CLI tool that runs autonomous development loops with Claude Code, letting the AI iteratively improve a project until completion. It adds safeguards like dual-condition exit detection, rate limiting, circuit breakers, and git backup branches to prevent runaway loops and API overuse.", "when_to_avoid": ["you don't use Claude Code as your AI coding agent", "you prefer fully manual, review-every-change workflows", "you need a GUI-based AI development environment"], "when_to_choose": ["you use Claude Code and want hands-off, continuous development cycles", "you need safety rails like rate limits and exit detection for AI loops", "you want metrics, logging, and rollback for autonomous AI coding"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/ralph-claude-code", "repo": "frankbria/ralph-claude-code", "role": "main", "score": 59}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:10:36.277345+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:21:52.533499+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9b3f7aa0adbcac1004b1af0a3069acf188d07072eb61270bb3b2b46dbb0fd749", "fetched_at": "2026-08-28T04:10:36.277345+00:00", "kind": "readme", "missing": false, "url": "https://github.com/frankbria/ralph-claude-code"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:10:36.277345+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:21:52.533499+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9b3f7aa0adbcac1004b1af0a3069acf188d07072eb61270bb3b2b46dbb0fd749", "fetched_at": "2026-08-28T04:10:36.277345+00:00", "kind": "readme", "missing": false, "url": "https://github.com/frankbria/ralph-claude-code"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:21:52.533499+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9b3f7aa0adbcac1004b1af0a3069acf188d07072eb61270bb3b2b46dbb0fd749", "fetched_at": "2026-08-28T04:10:36.277345+00:00", "kind": "readme", "missing": false, "url": "https://github.com/frankbria/ralph-claude-code"}], "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:10:36.277345+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:10:36.277345+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:10:36.277345+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:21:52.533499+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9b3f7aa0adbcac1004b1af0a3069acf188d07072eb61270bb3b2b46dbb0fd749", "fetched_at": "2026-08-28T04:10:36.277345+00:00", "kind": "readme", "missing": false, "url": "https://github.com/frankbria/ralph-claude-code"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:10:36.277345+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:10:36.277345+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:21:52.533499+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9b3f7aa0adbcac1004b1af0a3069acf188d07072eb61270bb3b2b46dbb0fd749", "fetched_at": "2026-08-28T04:10:36.277345+00:00", "kind": "readme", "missing": false, "url": "https://github.com/frankbria/ralph-claude-code"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:10:36.277345+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:10:36.277345+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:10:36.277345+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:21:52.533499+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9b3f7aa0adbcac1004b1af0a3069acf188d07072eb61270bb3b2b46dbb0fd749", "fetched_at": "2026-08-28T04:10:36.277345+00:00", "kind": "readme", "missing": false, "url": "https://github.com/frankbria/ralph-claude-code"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:10:36.277345+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:10:36.277345+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:21:52.533499+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9b3f7aa0adbcac1004b1af0a3069acf188d07072eb61270bb3b2b46dbb0fd749", "fetched_at": "2026-08-28T04:10:36.277345+00:00", "kind": "readme", "missing": false, "url": "https://github.com/frankbria/ralph-claude-code"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:21:52.533499+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9b3f7aa0adbcac1004b1af0a3069acf188d07072eb61270bb3b2b46dbb0fd749", "fetched_at": "2026-08-28T04:10:36.277345+00:00", "kind": "readme", "missing": false, "url": "https://github.com/frankbria/ralph-claude-code"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:21:52.533499+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9b3f7aa0adbcac1004b1af0a3069acf188d07072eb61270bb3b2b46dbb0fd749", "fetched_at": "2026-08-28T04:10:36.277345+00:00", "kind": "readme", "missing": false, "url": "https://github.com/frankbria/ralph-claude-code"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:21:52.533499+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9b3f7aa0adbcac1004b1af0a3069acf188d07072eb61270bb3b2b46dbb0fd749", "fetched_at": "2026-08-28T04:10:36.277345+00:00", "kind": "readme", "missing": false, "url": "https://github.com/frankbria/ralph-claude-code"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 93, "longevity": 26, "rhythm": 35}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 371, "days_push": 47, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 59, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}