{"adoption": {"forks": 1001, "observed_at": "2026-08-28T04:06:29.065124+00:00", "stars": 2230}, "canonical_url": "https://ross.abutalabs.com/products/codex-console", "card": {"archived": false, "artifact_type": "application", "description": "codex-console 是一个集成化控制台项目，支持任务管理、批量处理、数据导出、自动上传、日志查看与打包支持。", "domain": ["artificial-intelligence", "developer-tools", "self-hosted", "security"], "enriched": true, "function": ["workflow-automation", "web-scraping", "email", "developer-tools", "gui"], "health_score": 96, "homepage": null, "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["dou-jiang/codex-console"], "name": "dou-jiang/codex-console", "platform": ["python", "cross-platform"], "pushed_at": "2026-08-06T05:59:19+00:00", "repo": "dou-jiang/codex-console", "stars": 2230, "tags": ["openai-account-registration", "codex", "bulk-registration", "captcha-solving", "sentinel-pow", "email-verification", "proxy-support", "account-management", "token-refresh", "web-console", "automation", "web-server", "docker"], "topics": [], "urls": [], "use_cases": ["bulk register OpenAI Codex accounts automatically", "solve Sentinel POW challenges during OpenAI signup", "retrieve and refresh OAuth tokens for Codex accounts", "manage subscribed accounts and view quota usage", "export and import account data for migration", "upload registered accounts to new-api or CPA services", "automate email verification code extraction from Outlook or CloudMail", "run batch account validation with controlled concurrency"], "what_it_is": "A Python-based integrated console for automating OpenAI/Codex account registration, login, token retrieval, subscription management, and uploading accounts to downstream services. It is a maintained fork of codex-manager with fixes for evolving OpenAI registration flows, including Sentinel POW solving, email verification handling, and batch task scheduling.", "when_to_avoid": ["you need a general-purpose OpenAI API client or SDK rather than account registration automation", "your use case involves fully compliant, single-account usage without bulk operations", "you cannot accept the legal and terms-of-service risks of automated account creation"], "when_to_choose": ["you need to automate OpenAI/Codex account registration at scale and keep up with upstream flow changes", "you want a self-hosted web console combining registration, token management, and account export in one tool", "you need semi-automated card binding and subscription status checking for accounts"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/codex-console", "repo": "dou-jiang/codex-console", "role": "main", "score": 72}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:29.065124+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:44:38.076572+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0e7d6fc3d1956a0e68e4fa758c9ec71c7e0ab717dfa51bd2e48b7b1df20aaa21", "fetched_at": "2026-08-28T04:06:29.065124+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dou-jiang/codex-console"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:29.065124+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:44:38.076572+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0e7d6fc3d1956a0e68e4fa758c9ec71c7e0ab717dfa51bd2e48b7b1df20aaa21", "fetched_at": "2026-08-28T04:06:29.065124+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dou-jiang/codex-console"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:44:38.076572+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0e7d6fc3d1956a0e68e4fa758c9ec71c7e0ab717dfa51bd2e48b7b1df20aaa21", "fetched_at": "2026-08-28T04:06:29.065124+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dou-jiang/codex-console"}], "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:06:29.065124+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:29.065124+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:29.065124+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:44:38.076572+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0e7d6fc3d1956a0e68e4fa758c9ec71c7e0ab717dfa51bd2e48b7b1df20aaa21", "fetched_at": "2026-08-28T04:06:29.065124+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dou-jiang/codex-console"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:29.065124+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:29.065124+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:44:38.076572+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0e7d6fc3d1956a0e68e4fa758c9ec71c7e0ab717dfa51bd2e48b7b1df20aaa21", "fetched_at": "2026-08-28T04:06:29.065124+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dou-jiang/codex-console"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:29.065124+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:29.065124+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:29.065124+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:44:38.076572+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0e7d6fc3d1956a0e68e4fa758c9ec71c7e0ab717dfa51bd2e48b7b1df20aaa21", "fetched_at": "2026-08-28T04:06:29.065124+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dou-jiang/codex-console"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:29.065124+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:29.065124+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:44:38.076572+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0e7d6fc3d1956a0e68e4fa758c9ec71c7e0ab717dfa51bd2e48b7b1df20aaa21", "fetched_at": "2026-08-28T04:06:29.065124+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dou-jiang/codex-console"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:44:38.076572+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0e7d6fc3d1956a0e68e4fa758c9ec71c7e0ab717dfa51bd2e48b7b1df20aaa21", "fetched_at": "2026-08-28T04:06:29.065124+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dou-jiang/codex-console"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:44:38.076572+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0e7d6fc3d1956a0e68e4fa758c9ec71c7e0ab717dfa51bd2e48b7b1df20aaa21", "fetched_at": "2026-08-28T04:06:29.065124+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dou-jiang/codex-console"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:44:38.076572+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0e7d6fc3d1956a0e68e4fa758c9ec71c7e0ab717dfa51bd2e48b7b1df20aaa21", "fetched_at": "2026-08-28T04:06:29.065124+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dou-jiang/codex-console"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 96, "longevity": 11, "rhythm": 77}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["young"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 165, "days_push": 27, "days_rel": 155, "gap_med": 3, "n_releases_24m": 4}, "score": 72, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}