{"adoption": {"forks": 332, "observed_at": "2026-08-28T04:03:26.710271+00:00", "stars": 1065}, "canonical_url": "https://ross.abutalabs.com/products/cursor2api-go", "card": {"archived": false, "artifact_type": "service", "description": "Free gemini-3-flash  | cursor不倒我不倒🙏 ❌ 这次倒下啦", "domain": ["large-language-models", "apis", "self-hosted", "backend"], "enriched": true, "function": ["http-server", "api-framework", "auth", "llm-inference", "proxy"], "health_score": 65, "homepage": null, "language": "JavaScript", "license": "NOASSERTION", "license_family": "other", "maturity": "maintenance", "member_repos": ["Xchat1/cursor2api-go"], "name": "Xchat1/cursor2api-go", "platform": ["go", "self-hosted", "windows", "cross-platform"], "pushed_at": "2026-04-04T01:16:48+00:00", "repo": "Xchat1/cursor2api-go", "stars": 1065, "tags": ["openai-compatible-api", "cursor-proxy", "api-translation", "gemini", "reverse-proxy", "chat-completions", "docker", "linux", "macos"], "topics": [], "urls": [], "use_cases": ["use cursor models through an openai-compatible endpoint", "expose gemini-3-flash as a chat completions api", "connect cursor web to existing openai sdk tooling", "self-host a proxy for cursor ai models", "add tool calling support to cursor-backed models", "run an llm api gateway on docker"], "what_it_is": "A Go service that converts Cursor's web interface into an OpenAI chat/completions-compatible API, exposing models like gemini-3-flash with derived *-thinking variants. It supports API key authentication, tool calling, health checks, and deployment via Docker, Docker Compose, or systemd.", "when_to_avoid": ["you need a commercially licensed or officially supported solution (PolyForm Noncommercial license)", "you require guaranteed uptime, since the proxy depends on Cursor's web service and has historically gone down", "you want direct official API access to Gemini models"], "when_to_choose": ["you need an OpenAI-compatible API backed by Cursor's web models", "you want a self-hosted Go service with Docker or systemd deployment", "you need tool calling and thinking-model variants over a proxy endpoint"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/cursor2api-go", "repo": "Xchat1/cursor2api-go", "role": "main", "score": 51}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:26.710271+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:55:28.453207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "35d44731d8cd900eb0994e85bb509e9a74afb8465d07aa123372e5dc24811fe2", "fetched_at": "2026-08-28T04:03:26.710271+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Xchat1/cursor2api-go"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:26.710271+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:55:28.453207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "35d44731d8cd900eb0994e85bb509e9a74afb8465d07aa123372e5dc24811fe2", "fetched_at": "2026-08-28T04:03:26.710271+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Xchat1/cursor2api-go"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:55:28.453207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "35d44731d8cd900eb0994e85bb509e9a74afb8465d07aa123372e5dc24811fe2", "fetched_at": "2026-08-28T04:03:26.710271+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Xchat1/cursor2api-go"}], "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:03:26.710271+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:26.710271+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:26.710271+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:55:28.453207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "35d44731d8cd900eb0994e85bb509e9a74afb8465d07aa123372e5dc24811fe2", "fetched_at": "2026-08-28T04:03:26.710271+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Xchat1/cursor2api-go"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:26.710271+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:26.710271+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:55:28.453207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "35d44731d8cd900eb0994e85bb509e9a74afb8465d07aa123372e5dc24811fe2", "fetched_at": "2026-08-28T04:03:26.710271+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Xchat1/cursor2api-go"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:26.710271+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:26.710271+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:26.710271+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:55:28.453207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "35d44731d8cd900eb0994e85bb509e9a74afb8465d07aa123372e5dc24811fe2", "fetched_at": "2026-08-28T04:03:26.710271+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Xchat1/cursor2api-go"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:26.710271+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:26.710271+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:55:28.453207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "35d44731d8cd900eb0994e85bb509e9a74afb8465d07aa123372e5dc24811fe2", "fetched_at": "2026-08-28T04:03:26.710271+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Xchat1/cursor2api-go"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:55:28.453207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "35d44731d8cd900eb0994e85bb509e9a74afb8465d07aa123372e5dc24811fe2", "fetched_at": "2026-08-28T04:03:26.710271+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Xchat1/cursor2api-go"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:55:28.453207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "35d44731d8cd900eb0994e85bb509e9a74afb8465d07aa123372e5dc24811fe2", "fetched_at": "2026-08-28T04:03:26.710271+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Xchat1/cursor2api-go"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:55:28.453207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "35d44731d8cd900eb0994e85bb509e9a74afb8465d07aa123372e5dc24811fe2", "fetched_at": "2026-08-28T04:03:26.710271+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Xchat1/cursor2api-go"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 75, "longevity": 24, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 337, "days_push": 152, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 51, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}