{"adoption": {"forks": 320, "observed_at": "2026-08-28T04:06:34.109851+00:00", "stars": 2286}, "canonical_url": "https://ross.abutalabs.com/products/openrelay", "card": {"archived": false, "artifact_type": "application", "description": "几百个免费 AI 模型配额，一键接入本地项目。| Hundreds of free AI model quotas, one-click access to local projects. ", "domain": ["large-language-models", "developer-tools", "artificial-intelligence", "self-hosted"], "enriched": true, "function": ["proxy", "llm-inference", "api-gateway", "developer-tools", "chatbot"], "health_score": 98, "homepage": null, "language": "TypeScript", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["romgX/openrelay"], "name": "romgX/openrelay", "platform": ["windows", "cross-platform", "self-hosted"], "pushed_at": "2026-08-12T10:24:55+00:00", "repo": "romgX/openrelay", "stars": 2286, "tags": ["llm-proxy", "model-router", "free-ai-quotas", "claude-code", "aider", "cursor", "openai-compatible", "provider-aggregation", "failover", "macos", "linux"], "topics": ["ai", "ai-proxy", "claude", "claude-code", "cursor", "developer-tools", "kiro", "openai", "proxy", "windsurf", "openclaw", "aider", "cerebras", "copilot", "free-ai", "free-api", "groq", "llm-proxy", "model-router"], "urls": [], "use_cases": ["use my Claude Pro subscription quota in Aider or Claude Code", "route Cursor and Windsurf through a local LLM proxy", "aggregate free AI API quotas from Groq and Cerebras in one endpoint", "set up failover between multiple AI model providers", "one-click configure environment variables for AI CLI tools", "expose Claude Desktop quota to any Anthropic-compatible tool", "manage all my AI provider quotas from a single dashboard"], "what_it_is": "OpenRelay is a desktop application that aggregates AI model quotas from local tools (Claude Desktop, Kiro, Windsurf, Copilot, etc.) and direct API providers (Groq, Cerebras, Gemini, DeepSeek, Ollama, etc.) behind a single local OpenAI/Anthropic-compatible endpoint. It includes a web panel for one-click configuration of CLI tools like Claude Code, Aider, and Goose, with custom model groups and automatic failover.", "when_to_avoid": ["you need a production-grade, multi-tenant API gateway for a team or company", "you only use a single provider and don't need quota aggregation", "you require fully open-source software, since OpenRelay uses an Open Core license"], "when_to_choose": ["you have multiple AI subscriptions or free quotas locked to specific tools and want to reuse them anywhere", "you use AI coding CLIs (Claude Code, Aider, Goose) and want one-click provider switching", "you want a local OpenAI/Anthropic-compatible proxy with automatic failover across providers"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/openrelay", "repo": "romgX/openrelay", "role": "main", "score": 76}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:34.109851+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:40:54.036500+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c8f4205892f6e4699dad612757893aac8a7233e7d9bddc8f374f7259054167c9", "fetched_at": "2026-08-28T04:06:34.109851+00:00", "kind": "readme", "missing": false, "url": "https://github.com/romgX/openrelay"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:34.109851+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:40:54.036500+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c8f4205892f6e4699dad612757893aac8a7233e7d9bddc8f374f7259054167c9", "fetched_at": "2026-08-28T04:06:34.109851+00:00", "kind": "readme", "missing": false, "url": "https://github.com/romgX/openrelay"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:40:54.036500+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c8f4205892f6e4699dad612757893aac8a7233e7d9bddc8f374f7259054167c9", "fetched_at": "2026-08-28T04:06:34.109851+00:00", "kind": "readme", "missing": false, "url": "https://github.com/romgX/openrelay"}], "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:34.109851+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:34.109851+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:34.109851+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:40:54.036500+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c8f4205892f6e4699dad612757893aac8a7233e7d9bddc8f374f7259054167c9", "fetched_at": "2026-08-28T04:06:34.109851+00:00", "kind": "readme", "missing": false, "url": "https://github.com/romgX/openrelay"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:34.109851+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:34.109851+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:40:54.036500+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c8f4205892f6e4699dad612757893aac8a7233e7d9bddc8f374f7259054167c9", "fetched_at": "2026-08-28T04:06:34.109851+00:00", "kind": "readme", "missing": false, "url": "https://github.com/romgX/openrelay"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:34.109851+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:34.109851+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:34.109851+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:40:54.036500+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c8f4205892f6e4699dad612757893aac8a7233e7d9bddc8f374f7259054167c9", "fetched_at": "2026-08-28T04:06:34.109851+00:00", "kind": "readme", "missing": false, "url": "https://github.com/romgX/openrelay"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:34.109851+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:34.109851+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:40:54.036500+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c8f4205892f6e4699dad612757893aac8a7233e7d9bddc8f374f7259054167c9", "fetched_at": "2026-08-28T04:06:34.109851+00:00", "kind": "readme", "missing": false, "url": "https://github.com/romgX/openrelay"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:40:54.036500+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c8f4205892f6e4699dad612757893aac8a7233e7d9bddc8f374f7259054167c9", "fetched_at": "2026-08-28T04:06:34.109851+00:00", "kind": "readme", "missing": false, "url": "https://github.com/romgX/openrelay"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:40:54.036500+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c8f4205892f6e4699dad612757893aac8a7233e7d9bddc8f374f7259054167c9", "fetched_at": "2026-08-28T04:06:34.109851+00:00", "kind": "readme", "missing": false, "url": "https://github.com/romgX/openrelay"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:40:54.036500+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c8f4205892f6e4699dad612757893aac8a7233e7d9bddc8f374f7259054167c9", "fetched_at": "2026-08-28T04:06:34.109851+00:00", "kind": "readme", "missing": false, "url": "https://github.com/romgX/openrelay"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 97, "longevity": 12, "rhythm": 85}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": ["young"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 179, "days_push": 21, "days_rel": 21, "gap_med": 0.0, "n_releases_24m": 81}, "score": 76, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}