{"adoption": {"forks": 4773, "observed_at": "2026-08-28T04:11:46.916165+00:00", "stars": 26418}, "canonical_url": "https://ross.abutalabs.com/products/9router", "card": {"archived": false, "artifact_type": "service", "description": "Unlimited FREE AI coding. Connect Claude Code, Codex, Cursor, Cline, Copilot, Antigravity to FREE Claude/GPT/Gemini via 40+ providers. Auto-fallback, RTK -40% tokens, never hit limits.", "domain": ["large-language-models", "developer-tools", "apis"], "enriched": true, "function": ["llm-inference", "api-gateway", "proxy", "middleware", "prompt-engineering"], "health_score": 99, "homepage": "https://9router.com", "language": "JavaScript", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["decolua/9router"], "name": "decolua/9router", "platform": ["cli", "cross-platform", "self-hosted"], "pushed_at": "2026-08-14T10:08:34+00:00", "repo": "decolua/9router", "stars": 26418, "tags": ["ai-gateway", "llm-router", "token-saver", "claude-code", "cursor", "openai-compatible", "auto-fallback", "free-ai-providers", "quota-tracking", "ai-agents", "nodejs", "docker"], "topics": ["claude-code", "cursor", "ai-agents", "ai-gateway", "anthropic", "chatgpt", "claude", "cline", "codex", "copilot", "deepseek", "free-ai", "gemini", "gemini-cli", "llm", "llm-gateway", "openai", "openai-proxy", "qwen", "token-saver"], "urls": [], "use_cases": ["route claude code to free ai providers", "avoid hitting rate limits while coding with ai", "save tokens on ai coding assistant requests", "use one endpoint for multiple llm providers", "automatically fall back to cheaper models when quota runs out", "connect cursor and cline to gemini or deepseek for free", "reduce tool output token costs in ai coding sessions"], "what_it_is": "9Router is a self-hosted AI gateway/router that connects AI coding tools like Claude Code, Cursor, Codex, and Cline to 60+ LLM providers through a single OpenAI-compatible endpoint. It provides 3-tier auto-fallback routing (subscription → cheap → free), token compression to save 20-40% on tokens, quota tracking, and multi-account round-robin.", "when_to_avoid": ["you need a fully managed cloud service with no local setup", "you only use a single provider and never hit limits", "you require enterprise SLAs or vendor support"], "when_to_choose": ["you hit subscription rate limits mid-coding and want automatic fallback", "you want to use free or cheap providers with your existing AI coding tools", "you want to cut token usage from tool outputs like git diffs", "you juggle multiple provider accounts and want round-robin load balancing"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/9router", "repo": "decolua/9router", "role": "main", "score": 75}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:11:46.916165+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T16:55:52.540340+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7ba097c86a974b04cfe272ff71d3c3f3adcb813e84d61ba10a2b0e1dfe6851cf", "fetched_at": "2026-08-28T04:11:46.916165+00:00", "kind": "readme", "missing": false, "url": "https://github.com/decolua/9router"}, {"content_hash": "2038a674d30f1c3f7f3ba2f177c5f9fa9a4976149897a6d8aab91fe37db9fdbc", "fetched_at": "2026-08-29T07:52:29.693997+00:00", "kind": "homepage", "missing": false, "url": "https://9router.com"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:11:46.916165+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T16:55:52.540340+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7ba097c86a974b04cfe272ff71d3c3f3adcb813e84d61ba10a2b0e1dfe6851cf", "fetched_at": "2026-08-28T04:11:46.916165+00:00", "kind": "readme", "missing": false, "url": "https://github.com/decolua/9router"}, {"content_hash": "2038a674d30f1c3f7f3ba2f177c5f9fa9a4976149897a6d8aab91fe37db9fdbc", "fetched_at": "2026-08-29T07:52:29.693997+00:00", "kind": "homepage", "missing": false, "url": "https://9router.com"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T16:55:52.540340+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7ba097c86a974b04cfe272ff71d3c3f3adcb813e84d61ba10a2b0e1dfe6851cf", "fetched_at": "2026-08-28T04:11:46.916165+00:00", "kind": "readme", "missing": false, "url": "https://github.com/decolua/9router"}, {"content_hash": "2038a674d30f1c3f7f3ba2f177c5f9fa9a4976149897a6d8aab91fe37db9fdbc", "fetched_at": "2026-08-29T07:52:29.693997+00:00", "kind": "homepage", "missing": false, "url": "https://9router.com"}], "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:11:46.916165+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:11:46.916165+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:11:46.916165+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T16:55:52.540340+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7ba097c86a974b04cfe272ff71d3c3f3adcb813e84d61ba10a2b0e1dfe6851cf", "fetched_at": "2026-08-28T04:11:46.916165+00:00", "kind": "readme", "missing": false, "url": "https://github.com/decolua/9router"}, {"content_hash": "2038a674d30f1c3f7f3ba2f177c5f9fa9a4976149897a6d8aab91fe37db9fdbc", "fetched_at": "2026-08-29T07:52:29.693997+00:00", "kind": "homepage", "missing": false, "url": "https://9router.com"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:11:46.916165+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:11:46.916165+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T16:55:52.540340+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7ba097c86a974b04cfe272ff71d3c3f3adcb813e84d61ba10a2b0e1dfe6851cf", "fetched_at": "2026-08-28T04:11:46.916165+00:00", "kind": "readme", "missing": false, "url": "https://github.com/decolua/9router"}, {"content_hash": "2038a674d30f1c3f7f3ba2f177c5f9fa9a4976149897a6d8aab91fe37db9fdbc", "fetched_at": "2026-08-29T07:52:29.693997+00:00", "kind": "homepage", "missing": false, "url": "https://9router.com"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:11:46.916165+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:11:46.916165+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:11:46.916165+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T16:55:52.540340+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7ba097c86a974b04cfe272ff71d3c3f3adcb813e84d61ba10a2b0e1dfe6851cf", "fetched_at": "2026-08-28T04:11:46.916165+00:00", "kind": "readme", "missing": false, "url": "https://github.com/decolua/9router"}, {"content_hash": "2038a674d30f1c3f7f3ba2f177c5f9fa9a4976149897a6d8aab91fe37db9fdbc", "fetched_at": "2026-08-29T07:52:29.693997+00:00", "kind": "homepage", "missing": false, "url": "https://9router.com"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:11:46.916165+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:11:46.916165+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T16:55:52.540340+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7ba097c86a974b04cfe272ff71d3c3f3adcb813e84d61ba10a2b0e1dfe6851cf", "fetched_at": "2026-08-28T04:11:46.916165+00:00", "kind": "readme", "missing": false, "url": "https://github.com/decolua/9router"}, {"content_hash": "2038a674d30f1c3f7f3ba2f177c5f9fa9a4976149897a6d8aab91fe37db9fdbc", "fetched_at": "2026-08-29T07:52:29.693997+00:00", "kind": "homepage", "missing": false, "url": "https://9router.com"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T16:55:52.540340+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7ba097c86a974b04cfe272ff71d3c3f3adcb813e84d61ba10a2b0e1dfe6851cf", "fetched_at": "2026-08-28T04:11:46.916165+00:00", "kind": "readme", "missing": false, "url": "https://github.com/decolua/9router"}, {"content_hash": "2038a674d30f1c3f7f3ba2f177c5f9fa9a4976149897a6d8aab91fe37db9fdbc", "fetched_at": "2026-08-29T07:52:29.693997+00:00", "kind": "homepage", "missing": false, "url": "https://9router.com"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T16:55:52.540340+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7ba097c86a974b04cfe272ff71d3c3f3adcb813e84d61ba10a2b0e1dfe6851cf", "fetched_at": "2026-08-28T04:11:46.916165+00:00", "kind": "readme", "missing": false, "url": "https://github.com/decolua/9router"}, {"content_hash": "2038a674d30f1c3f7f3ba2f177c5f9fa9a4976149897a6d8aab91fe37db9fdbc", "fetched_at": "2026-08-29T07:52:29.693997+00:00", "kind": "homepage", "missing": false, "url": "https://9router.com"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T16:55:52.540340+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7ba097c86a974b04cfe272ff71d3c3f3adcb813e84d61ba10a2b0e1dfe6851cf", "fetched_at": "2026-08-28T04:11:46.916165+00:00", "kind": "readme", "missing": false, "url": "https://github.com/decolua/9router"}, {"content_hash": "2038a674d30f1c3f7f3ba2f177c5f9fa9a4976149897a6d8aab91fe37db9fdbc", "fetched_at": "2026-08-29T07:52:29.693997+00:00", "kind": "homepage", "missing": false, "url": "https://9router.com"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 97, "longevity": 17, "rhythm": 81}, "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": 240, "days_push": 19, "days_rel": 48, "gap_med": 1.0, "n_releases_24m": 73}, "score": 75, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}