{"adoption": {"forks": 147, "observed_at": "2026-08-28T04:04:17.081584+00:00", "stars": 1297}, "canonical_url": "https://ross.abutalabs.com/products/claude-to-chatgpt", "card": {"archived": false, "artifact_type": "service", "description": "This project converts the API of Anthropic's Claude model to the OpenAI Chat API format.", "domain": ["large-language-models", "apis", "backend", "artificial-intelligence"], "enriched": true, "function": ["api-framework", "http-server", "middleware", "llm-inference"], "health_score": 21, "homepage": null, "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["jtsang4/claude-to-chatgpt"], "name": "jtsang4/claude-to-chatgpt", "platform": ["cloud", "self-hosted", "python"], "pushed_at": "2024-08-18T08:35:25+00:00", "repo": "jtsang4/claude-to-chatgpt", "stars": 1297, "tags": ["api-proxy", "api-conversion", "anthropic-claude", "openai-compatible", "cloudflare-workers", "chatgpt", "docker", "web-server"], "topics": ["anthropic", "chatgpt", "claude", "claude-ai", "openai"], "urls": [], "use_cases": ["use claude with openai api clients", "expose claude as a chatgpt-compatible endpoint", "connect claude to chatgpt gui apps", "self-host an openai-compatible claude proxy", "swap gpt-3.5-turbo for claude in existing tools", "deploy claude api adapter on cloudflare workers"], "what_it_is": "A proxy service that translates Anthropic Claude API calls into the OpenAI Chat Completions API format, so Claude can be used anywhere the OpenAI API is expected. It supports streaming responses and can be deployed via Cloudflare Workers or Docker.", "when_to_avoid": ["you need current Claude model support, as the project targets claude-instant-1 and claude-2 and has not been updated since 2024", "you need a native Anthropic API client", "you require production-grade maintenance or security updates"], "when_to_choose": ["you have existing OpenAI-format tooling and want to use Claude models", "you want a serverless Cloudflare Workers deployment", "you need streaming chat completions backed by Claude"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/claude-to-chatgpt", "repo": "jtsang4/claude-to-chatgpt", "role": "main", "score": 20}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:17.081584+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:53:53.828189+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "433a92c3ee1edc6d7475ae66093bc9abd3f606b453d3b22efc8d2ebadf15c197", "fetched_at": "2026-08-28T04:04:17.081584+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jtsang4/claude-to-chatgpt"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:17.081584+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:53:53.828189+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "433a92c3ee1edc6d7475ae66093bc9abd3f606b453d3b22efc8d2ebadf15c197", "fetched_at": "2026-08-28T04:04:17.081584+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jtsang4/claude-to-chatgpt"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:53:53.828189+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "433a92c3ee1edc6d7475ae66093bc9abd3f606b453d3b22efc8d2ebadf15c197", "fetched_at": "2026-08-28T04:04:17.081584+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jtsang4/claude-to-chatgpt"}], "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:17.081584+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:17.081584+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:17.081584+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:53:53.828189+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "433a92c3ee1edc6d7475ae66093bc9abd3f606b453d3b22efc8d2ebadf15c197", "fetched_at": "2026-08-28T04:04:17.081584+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jtsang4/claude-to-chatgpt"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:17.081584+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:17.081584+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:53:53.828189+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "433a92c3ee1edc6d7475ae66093bc9abd3f606b453d3b22efc8d2ebadf15c197", "fetched_at": "2026-08-28T04:04:17.081584+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jtsang4/claude-to-chatgpt"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:17.081584+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:17.081584+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:17.081584+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:53:53.828189+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "433a92c3ee1edc6d7475ae66093bc9abd3f606b453d3b22efc8d2ebadf15c197", "fetched_at": "2026-08-28T04:04:17.081584+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jtsang4/claude-to-chatgpt"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:17.081584+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:17.081584+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:53:53.828189+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "433a92c3ee1edc6d7475ae66093bc9abd3f606b453d3b22efc8d2ebadf15c197", "fetched_at": "2026-08-28T04:04:17.081584+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jtsang4/claude-to-chatgpt"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:53:53.828189+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "433a92c3ee1edc6d7475ae66093bc9abd3f606b453d3b22efc8d2ebadf15c197", "fetched_at": "2026-08-28T04:04:17.081584+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jtsang4/claude-to-chatgpt"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:53:53.828189+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "433a92c3ee1edc6d7475ae66093bc9abd3f606b453d3b22efc8d2ebadf15c197", "fetched_at": "2026-08-28T04:04:17.081584+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jtsang4/claude-to-chatgpt"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:53:53.828189+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "433a92c3ee1edc6d7475ae66093bc9abd3f606b453d3b22efc8d2ebadf15c197", "fetched_at": "2026-08-28T04:04:17.081584+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jtsang4/claude-to-chatgpt"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 86, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1212, "days_push": 745, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 20, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}