Cursor on the Claude plan you already pay for

Needs a public HTTPS tunnel, and the anthropic: prefix. Two base URLs, one key. Anthropic-shaped clients talk to http://localhost:3456; OpenAI-shaped clients — chat/completions and, since 6.3, the Responses API — talk to http://localhost:3456/v1. The key is dario (any value works until you set DARIO_API_KEY, which then has to match).

Setup

Cursor

Cursor's BYOK is backend-mediated: the app sends your base URL up to Cursor's servers and they make the call, behind an SSRF guard that rejects localhost by design (confirmed by Cursor staff, threads linked in the long-form guide). So:

dario proxy                                     # terminal 1
cloudflared tunnel --url http://localhost:3456   # terminal 2 → https://<random>.trycloudflare.com

In Cursor → Settings → Models: enable Override OpenAI Base URL with https://<random>.trycloudflare.com/v1, key dario, and add models as anthropic:opus / anthropic:sonnet / anthropic:haiku. The anthropic: prefix routes to the Claude backend without the claude- substring that makes Cursor switch to a tool format the OpenAI path can't parse, and it dodges Cursor's built-in-name collision. Use Agent mode (Cmd/Ctrl+I); Chat sends no tools. Treat the tunnel URL as a credential. Full walkthrough with every gotcha: agent-compat.md#cursor.

Before that

Install dario, log in, leave it running

Three commands, once. The proxy binds 127.0.0.1:3456 and holds your login; every tool on the machine shares it. Add a ChatGPT plan with dario add altman and the two fail over to each other.

terminal
$ npm install -g @askalf/dario
$ dario login        # your Claude plan: Pro, Max 5x or Max 20x
  Login successful.
$ dario proxy        # leave it running
  dario · http://localhost:3456
  Your Claude subscription is now an API.
0 runtime dependencies SLSA-attested every release Nothing phones home MIT, independent, unofficial
Other tools

Same URL, same key

Something not listed? If it reads ANTHROPIC_BASE_URL or OPENAI_BASE_URL, or has a "Base URL" field, it works. The compatibility matrix says which tools are exercised end-to-end, which are inferred from a shared code path, and which are untested — one honest cell per tool.