Cursor
Point Cursor at a public DurinDoor URL with an OpenAI-compatible custom model.
Cursor's servers call the custom model endpoint. Use a gateway URL those servers can reach, a DurinDoor key, and a model ID or combo. A loopback URL or private Tailscale-only address is insufficient.
The dashboard guide requires Cursor Pro for this feature. Availability and settings can depend on your Cursor version and plan.
Prepare the endpoint
Enable Tunnel or Cloud Endpoint under Endpoint. Require API keys and set a strong dashboard password before exposing the gateway. Then open CLI Tools → Cursor and copy the URL, key, and model. Cursor is a guide card; it does not edit Cursor settings.
Dashboard guide
The card hides its step list until Tunnel or Cloud Endpoint is enabled. Follow these steps in Cursor:
Open Settings, then Models.
Enable the "OpenAI API key" option.
Paste the base URL. The card substitutes {{baseUrl}} and always appends /v1 if it is missing.
Paste the API key. The localhost placeholder sk_durindoor is the wrong value here because the request is not local.
Click "View All Model", then "Add Custom Model".
Select the DurinDoor model id (or type a combo name).
Do not paste http://localhost:20128/v1 into Cursor. Enable Tunnel or Cloud Endpoint on Endpoint, then copy that public URL. Do not expose the dashboard with the default password.
Manual config
In Cursor, OpenAI-compatible custom API:
Base URL: https://example.invalid/v1
API key: YOUR_DURINDOOR_API_KEY
Model: provider/model-idReplace the host with the tunnel or cloud URL from /dashboard/endpoint. Use a combo name if you want fallback to stay inside DurinDoor when you change providers later.
Create a dedicated key for Cursor so you can revoke it without affecting other clients.
Check it works
Send a short chat in Cursor using the custom model. Open Usage. If no row appears, Cursor is still on a built-in model or the base URL never left Cursor's cloud.
| Symptom | Check |
|---|---|
| Card shows no steps | Tunnel or Cloud Endpoint is off |
| Invalid API key | Paste the full DurinDoor secret, not an OpenAI platform key |
| Model not found | Use an id from GET /v1/models or a combo name |
| No usage row | Cursor is not using the custom OpenAI provider |