{"slug": "show-hn-ungate-use-claude-and-gpt-subscriptions-in-cursor-without-api-costs", "title": "Show HN: Ungate – use Claude and GPT subscriptions in Cursor without API costs", "summary": "Ungate, a new Cursor extension by developer orchidfiles, lets users run Claude, ChatGPT, and MiniMax subscriptions in Cursor without paying API token costs. The extension, installable via `cursor --install-extension orchidfiles.ungate`, uses OAuth for Claude and ChatGPT, API keys for MiniMax, and supports streaming, tool calls, vision, and reasoning tiers. It also fixes a Cursor bug that disables the OpenAI API Key setting by automatically re-enabling it.", "body_md": "A Cursor-first extension for using Claude, ChatGPT, and MiniMax subscriptions in Cursor\n\ninstead of paying for API tokens.\n\nUngate lets you use Claude, ChatGPT, and MiniMax in Cursor through account subscriptions instead of direct API token billing. Claude and ChatGPT authenticate via OAuth; MiniMax uses provider API credentials.\n\nCursor allows a custom OpenAI Base URL. Ungate listens on that URL and translates requests to the target provider API, including streaming, tool calls, and vision where supported.\n\nThe extension manages the tunnel that makes the proxy reachable to Cursor's backend and shows its settings in a Webview panel. From there you configure providers, copy the public proxy URL, and copy the proxy API key that Cursor uses to authenticate to your local proxy.\n\nThe status bar item shows separate API and tunnel state. Hover it to inspect the current tunnel URL and use quick actions for opening the dashboard, restarting the tunnel, and copying the tunnel URL.\n\nCursor also has a bug where `OpenAI API Key`\n\nturns itself off in settings every few hours. Ungate can keep it enabled automatically and lets you control this behavior from the status bar tooltip and the dashboard.\n\n```\nsequenceDiagram\n  participant U as Chat\n  participant B as Cursor backend\n  participant C as Cloudflare tunnel\n  participant D as Ungate proxy\n  participant P as Provider API\n\n  U->>B: Request\n  B->>C: Forward request\n  C->>D: Process request\n  D->>P: Provider call\n\n  P-->>D: Stream response\n  D-->>C: Process response\n  C-->>B: Forward response\n  B-->>U: Response\n```\n\n- OpenAI-to-provider request translation\n- Streaming responses\n- Tool calls mapping\n- Image support\n- OAuth authentication via Claude or ChatGPT account\n- MiniMax API key authentication\n- MiniMax\n`<think>...</think>`\n\nreasoning separation - Request analytics\n- Analytics split by provider: Claude, OpenAI, and MiniMax\n- Built-in web UI panel\n- Keeps\n`OpenAI API Key`\n\nenabled when Cursor turns it off on its own\n\n| Capability | Claude | OpenAI | MiniMax |\n|---|---|---|---|\n| Authentication | OAuth | OAuth | API key |\n| Streaming | Yes | Yes | Yes |\n| Tool calls | Yes | Yes | Yes |\n| Vision | Yes | No | Yes |\n| Reasoning tiers | Yes | No | No |\n| Analytics | Yes | Yes | Yes |\n\n- Cursor with custom OpenAI provider support enabled.\n- System Node.js installed on the machine. Ungate starts its local API through the system Node runtime. Supported versions: Node 22, 24, 26 (Node 20 and 23 are not supported).\n- Outbound internet access for OAuth and provider APIs.\n- A reachable public tunnel URL because Cursor backend cannot call\n`localhost`\n\n.\n\nInstall from the marketplace:\n\n```\ncursor --install-extension orchidfiles.ungate\n```\n\nOr search `@id:orchidfiles.ungate`\n\nin the Extensions panel.\n\nInstall the extension, then open the dashboard by clicking the `Ungate`\n\nitem in the status bar.\n\nChoose the provider you want to use and authenticate with it.\n\nFor Claude and ChatGPT, sign in through OAuth.\n\nFor MiniMax, enter your API key and choose a Base URL: `Global`\n\n, `China`\n\n, or `Custom`\n\n.\n\n- In the\n`Tunnel`\n\nsection, click`Start tunnel`\n\n, then copy the public URL shown in the panel. - Paste it into\n`Cursor Settings → Models → OpenAI Base URL`\n\n. - Copy the proxy API key from the same panel and paste it into\n`Cursor Settings → Models → OpenAI API Key`\n\n.\n\nIf Cursor turns `OpenAI API Key`\n\noff on its own, Ungate can turn it back on automatically. You can control this from the status bar tooltip and the dashboard.\n\n- In the\n`Models`\n\nsection, copy the model IDs you want and add them as custom models in Cursor. - If you use MiniMax, add\n`MiniMax-M2.7`\n\nas a custom model in Cursor. - Select one of your custom models in Cursor and start chatting.\n\nAfter setup, then send one test message from Cursor using a custom model ID.\n\nIf Cursor turns `OpenAI API Key`\n\noff on its own, Ungate should turn it back on automatically.\n\n- Cursor built-in model IDs can bypass\n`OpenAI Base URL`\n\nand go directly to provider APIs. - Use only custom model IDs copied from Ungate\n`Models`\n\nin Cursor settings. - If Cursor still bypasses base URL, restart Cursor and re-check model selection.\n\n- OAuth and provider credentials are stored locally on your machine.\n- Request metadata for analytics is stored in the local SQLite database.\n- Tunnel URL and proxy API key are secrets and should be treated like credentials.\n- Anyone with both values can send requests through your proxy.\n- Rotate your proxy key from the dashboard when you suspect leakage.\n\n```\ngit clone https://github.com/orchidfiles/ungate.git\ncd ungate\npnpm install\npnpm run package:build\ncursor --install-extension \"apps/extension/out/ungate.vsix\"\n```\n\nRun the build in watch mode in one step with `Command Palette -> Run Task -> build:watch all`\n\n.\n\nOr run it manually in the terminal:\n\n```\npnpm --filter @ungate/dev-kit build\npnpm --filter @ungate/shared build:watch\npnpm --filter @ungate/api build:watch\npnpm --filter @ungate/web build:watch\n```\n\nAfter the build, press `F5`\n\nto test the extension in Cursor debug mode.\n\nYou can also run the API separately from the extension on another port:\n\n```\ncd apps/api\n\n# use the default database:\nPORT=4784 node dist/main.js\n\n# use a separate dev database:\nDB_PATH=$HOME/.ungate/data-dev.db PORT=4784 node dist/main.js\n```\n\n| Symptom | Check | Fix |\n|---|---|---|\n| Cursor ignores base URL | Selected model is built-in | Switch to custom model ID from Ungate `Models` |\n`401` from proxy |\nCursor API key field | Paste proxy API key from Ungate dashboard |\n`404` or timeout through tunnel |\nTunnel status in Ungate panel | Restart tunnel from dashboard |\n| OAuth session expired | Provider connection status | Reconnect provider in dashboard |\n| Model missing in Cursor | Custom model list in Cursor | Add model ID manually from Ungate `Models` |\nAPI never starts, `[native] No prebuilt binary for ABI ...` in logs |\nNode.js version | Install a supported Node version (22, 24, 26) |\n\n`localhost`\n\ndoes not work as`OpenAI Base URL`\n\nbecause Cursor calls the endpoint from its backend.- Tunnel is required for Cursor backend to reach your proxy.\n- Built-in provider model IDs can bypass custom base URL routing.\n- Provider switch flow: connect provider in Ungate, add its model ID in Cursor, then select that custom model.\n- Analytics data and API key is stored in local SQLite files under\n`$HOME/.ungate/`\n\n.\n\nMIT\n\nBug reports and feature requests: [GitHub issues](https://github.com/orchidfiles/ungate/issues)\n\nEverything else: [orchid@orchidfiles.com](mailto:orchid@orchidfiles.com)\n\nMade by the author of [orchidfiles.com](https://orchidfiles.com) — essays from inside startups.\n\nIf you found `ungate`\n\nuseful, you'll probably enjoy the essays.", "url": "https://wpnews.pro/news/show-hn-ungate-use-claude-and-gpt-subscriptions-in-cursor-without-api-costs", "canonical_source": "https://github.com/orchidfiles/ungate", "published_at": "2026-08-11 09:55:50+00:00", "updated_at": "2026-08-11 10:11:42.146576+00:00", "lang": "en", "topics": ["developer-tools", "ai-tools", "ai-products"], "entities": ["Ungate", "Cursor", "Claude", "ChatGPT", "MiniMax", "OpenAI", "orchidfiles"], "alternates": {"html": "https://wpnews.pro/news/show-hn-ungate-use-claude-and-gpt-subscriptions-in-cursor-without-api-costs", "markdown": "https://wpnews.pro/news/show-hn-ungate-use-claude-and-gpt-subscriptions-in-cursor-without-api-costs.md", "text": "https://wpnews.pro/news/show-hn-ungate-use-claude-and-gpt-subscriptions-in-cursor-without-api-costs.txt", "jsonld": "https://wpnews.pro/news/show-hn-ungate-use-claude-and-gpt-subscriptions-in-cursor-without-api-costs.jsonld"}}