{"adoption": {"forks": 119, "observed_at": "2026-08-28T04:04:46.760527+00:00", "stars": 1454}, "canonical_url": "https://ross.abutalabs.com/products/ralphex", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Extended Ralph loop for autonomous AI-driven plan execution", "domain": ["developer-tools", "large-language-models"], "enriched": true, "function": ["agent-framework", "workflow-automation", "developer-tools", "cli", "code-review"], "health_score": 100, "homepage": "https://ralphex.com", "language": "Go", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["umputun/ralphex"], "name": "umputun/ralphex", "platform": ["cli", "windows", "go"], "pushed_at": "2026-08-26T18:03:51+00:00", "repo": "umputun/ralphex", "stars": 1454, "tags": ["ralph-loop", "claude-code", "codex", "autonomous-coding", "ai-orchestration", "multi-agent-review", "git-automation", "ai-agents", "automation", "command-line", "linux", "macos", "docker"], "topics": ["automation", "claude-code", "codex", "ralph-loop", "ralph-wiggum", "review"], "urls": [], "use_cases": ["run claude code autonomously on a multi-task implementation plan", "execute a coding plan overnight without babysitting the agent", "keep ai coding agent context fresh across long features", "automate multi-agent code review of ai-generated code", "auto-commit and track progress of ai-driven development tasks", "get notified when an autonomous coding run finishes or fails", "monitor autonomous agent execution from a web dashboard"], "what_it_is": "ralphex is a standalone Go CLI tool that orchestrates coding agents like Claude Code and codex to autonomously execute structured implementation plans. Each task runs in a fresh agent session to avoid context degradation, followed by multi-phase AI code review and automatic git commits.", "when_to_avoid": ["you need an IDE plugin or GUI-driven coding assistant", "your workflow requires human approval at every step", "you don't use git or a compatible coding agent like Claude Code or codex", "you want the tool to write code itself rather than orchestrate existing agents"], "when_to_choose": ["you have a structured plan with tasks and validation commands to execute via Claude Code or codex", "long interactive agent sessions degrade quality and you want fresh context per task", "you want automated multi-agent code review and commits after each task", "you prefer a single binary with zero setup and optional Docker isolation"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/ralphex", "repo": "umputun/ralphex", "role": "main", "score": 76}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:46.760527+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:35:43.050289+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "34a3f941b8afd9d5cc6c4edbf7ca7b88a110993f2bf317465ef3ade089156e2f", "fetched_at": "2026-08-28T04:04:46.760527+00:00", "kind": "readme", "missing": false, "url": "https://github.com/umputun/ralphex"}, {"content_hash": "537e2bffbb282fabfe06db340d9a2c86f4a4301cd0043e1f73169856e06faa82", "fetched_at": "2026-08-29T11:44:56.026282+00:00", "kind": "homepage", "missing": false, "url": "https://ralphex.com"}, {"content_hash": "9fc32b24aceb7d5e113ae2f3061e5fd49db24d532fc99a601f5c470633bb9258", "fetched_at": "2026-08-29T11:44:56.029152+00:00", "kind": "site_page", "missing": false, "url": "https://ralphex.com/docs"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:46.760527+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:35:43.050289+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "34a3f941b8afd9d5cc6c4edbf7ca7b88a110993f2bf317465ef3ade089156e2f", "fetched_at": "2026-08-28T04:04:46.760527+00:00", "kind": "readme", "missing": false, "url": "https://github.com/umputun/ralphex"}, {"content_hash": "537e2bffbb282fabfe06db340d9a2c86f4a4301cd0043e1f73169856e06faa82", "fetched_at": "2026-08-29T11:44:56.026282+00:00", "kind": "homepage", "missing": false, "url": "https://ralphex.com"}, {"content_hash": "9fc32b24aceb7d5e113ae2f3061e5fd49db24d532fc99a601f5c470633bb9258", "fetched_at": "2026-08-29T11:44:56.029152+00:00", "kind": "site_page", "missing": false, "url": "https://ralphex.com/docs"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:35:43.050289+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "34a3f941b8afd9d5cc6c4edbf7ca7b88a110993f2bf317465ef3ade089156e2f", "fetched_at": "2026-08-28T04:04:46.760527+00:00", "kind": "readme", "missing": false, "url": "https://github.com/umputun/ralphex"}, {"content_hash": "537e2bffbb282fabfe06db340d9a2c86f4a4301cd0043e1f73169856e06faa82", "fetched_at": "2026-08-29T11:44:56.026282+00:00", "kind": "homepage", "missing": false, "url": "https://ralphex.com"}, {"content_hash": "9fc32b24aceb7d5e113ae2f3061e5fd49db24d532fc99a601f5c470633bb9258", "fetched_at": "2026-08-29T11:44:56.029152+00:00", "kind": "site_page", "missing": false, "url": "https://ralphex.com/docs"}], "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:04:46.760527+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:46.760527+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:46.760527+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:35:43.050289+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "34a3f941b8afd9d5cc6c4edbf7ca7b88a110993f2bf317465ef3ade089156e2f", "fetched_at": "2026-08-28T04:04:46.760527+00:00", "kind": "readme", "missing": false, "url": "https://github.com/umputun/ralphex"}, {"content_hash": "537e2bffbb282fabfe06db340d9a2c86f4a4301cd0043e1f73169856e06faa82", "fetched_at": "2026-08-29T11:44:56.026282+00:00", "kind": "homepage", "missing": false, "url": "https://ralphex.com"}, {"content_hash": "9fc32b24aceb7d5e113ae2f3061e5fd49db24d532fc99a601f5c470633bb9258", "fetched_at": "2026-08-29T11:44:56.029152+00:00", "kind": "site_page", "missing": false, "url": "https://ralphex.com/docs"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:46.760527+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:46.760527+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:35:43.050289+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "34a3f941b8afd9d5cc6c4edbf7ca7b88a110993f2bf317465ef3ade089156e2f", "fetched_at": "2026-08-28T04:04:46.760527+00:00", "kind": "readme", "missing": false, "url": "https://github.com/umputun/ralphex"}, {"content_hash": "537e2bffbb282fabfe06db340d9a2c86f4a4301cd0043e1f73169856e06faa82", "fetched_at": "2026-08-29T11:44:56.026282+00:00", "kind": "homepage", "missing": false, "url": "https://ralphex.com"}, {"content_hash": "9fc32b24aceb7d5e113ae2f3061e5fd49db24d532fc99a601f5c470633bb9258", "fetched_at": "2026-08-29T11:44:56.029152+00:00", "kind": "site_page", "missing": false, "url": "https://ralphex.com/docs"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:46.760527+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:46.760527+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:46.760527+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:35:43.050289+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "34a3f941b8afd9d5cc6c4edbf7ca7b88a110993f2bf317465ef3ade089156e2f", "fetched_at": "2026-08-28T04:04:46.760527+00:00", "kind": "readme", "missing": false, "url": "https://github.com/umputun/ralphex"}, {"content_hash": "537e2bffbb282fabfe06db340d9a2c86f4a4301cd0043e1f73169856e06faa82", "fetched_at": "2026-08-29T11:44:56.026282+00:00", "kind": "homepage", "missing": false, "url": "https://ralphex.com"}, {"content_hash": "9fc32b24aceb7d5e113ae2f3061e5fd49db24d532fc99a601f5c470633bb9258", "fetched_at": "2026-08-29T11:44:56.029152+00:00", "kind": "site_page", "missing": false, "url": "https://ralphex.com/docs"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:46.760527+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:46.760527+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:35:43.050289+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "34a3f941b8afd9d5cc6c4edbf7ca7b88a110993f2bf317465ef3ade089156e2f", "fetched_at": "2026-08-28T04:04:46.760527+00:00", "kind": "readme", "missing": false, "url": "https://github.com/umputun/ralphex"}, {"content_hash": "537e2bffbb282fabfe06db340d9a2c86f4a4301cd0043e1f73169856e06faa82", "fetched_at": "2026-08-29T11:44:56.026282+00:00", "kind": "homepage", "missing": false, "url": "https://ralphex.com"}, {"content_hash": "9fc32b24aceb7d5e113ae2f3061e5fd49db24d532fc99a601f5c470633bb9258", "fetched_at": "2026-08-29T11:44:56.029152+00:00", "kind": "site_page", "missing": false, "url": "https://ralphex.com/docs"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:35:43.050289+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "34a3f941b8afd9d5cc6c4edbf7ca7b88a110993f2bf317465ef3ade089156e2f", "fetched_at": "2026-08-28T04:04:46.760527+00:00", "kind": "readme", "missing": false, "url": "https://github.com/umputun/ralphex"}, {"content_hash": "537e2bffbb282fabfe06db340d9a2c86f4a4301cd0043e1f73169856e06faa82", "fetched_at": "2026-08-29T11:44:56.026282+00:00", "kind": "homepage", "missing": false, "url": "https://ralphex.com"}, {"content_hash": "9fc32b24aceb7d5e113ae2f3061e5fd49db24d532fc99a601f5c470633bb9258", "fetched_at": "2026-08-29T11:44:56.029152+00:00", "kind": "site_page", "missing": false, "url": "https://ralphex.com/docs"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:35:43.050289+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "34a3f941b8afd9d5cc6c4edbf7ca7b88a110993f2bf317465ef3ade089156e2f", "fetched_at": "2026-08-28T04:04:46.760527+00:00", "kind": "readme", "missing": false, "url": "https://github.com/umputun/ralphex"}, {"content_hash": "537e2bffbb282fabfe06db340d9a2c86f4a4301cd0043e1f73169856e06faa82", "fetched_at": "2026-08-29T11:44:56.026282+00:00", "kind": "homepage", "missing": false, "url": "https://ralphex.com"}, {"content_hash": "9fc32b24aceb7d5e113ae2f3061e5fd49db24d532fc99a601f5c470633bb9258", "fetched_at": "2026-08-29T11:44:56.029152+00:00", "kind": "site_page", "missing": false, "url": "https://ralphex.com/docs"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:35:43.050289+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "34a3f941b8afd9d5cc6c4edbf7ca7b88a110993f2bf317465ef3ade089156e2f", "fetched_at": "2026-08-28T04:04:46.760527+00:00", "kind": "readme", "missing": false, "url": "https://github.com/umputun/ralphex"}, {"content_hash": "537e2bffbb282fabfe06db340d9a2c86f4a4301cd0043e1f73169856e06faa82", "fetched_at": "2026-08-29T11:44:56.026282+00:00", "kind": "homepage", "missing": false, "url": "https://ralphex.com"}, {"content_hash": "9fc32b24aceb7d5e113ae2f3061e5fd49db24d532fc99a601f5c470633bb9258", "fetched_at": "2026-08-29T11:44:56.029152+00:00", "kind": "site_page", "missing": false, "url": "https://ralphex.com/docs"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 16, "rhythm": 82}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 226, "days_push": 7, "days_rel": 43, "gap_med": 0, "n_releases_24m": 76}, "score": 76, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}