Cursor: using the VIDAI Control Plane as the backend¶
Cursor's Models settings let you override the OpenAI base URL and set an OpenAI API key. Point them at the control plane and every chat, edit, agent, and inline suggestion Cursor makes through its OpenAI-compatible path flows through us.
TL;DR¶
- Cursor → Settings → Cursor Settings → Models.
- Toggle on Override OpenAI Base URL and set:
- Under OpenAI API Key, paste your VIDAI API key.
- Under Model Names, add a model registered on the control
plane (e.g.
gpt-4o-mini) and mark it enabled. - Click Verify — Cursor pings the endpoint and confirms.
Prerequisites¶
- Cursor installed (any recent build with the Models settings panel).
- Control plane base URL and an API key from API Keys.
- A model registered on the Models page. The model's name is what you'll paste into Cursor's Model Names list.
What runs through the control plane¶
Cursor uses a mix of first-party models (Cursor Small, cursor-fast) and your configured OpenAI-compatible endpoint. Once you've completed the TL;DR:
- Chat with your configured model → control plane.
- Cmd+K inline edits with your configured model → control plane.
- Agent mode / Composer when your configured model is selected → control plane.
- Tab completions and any of Cursor's first-party models stay on Cursor's own infrastructure — those are outside the control plane.
To route all Cursor LLM traffic through the control plane, select your model as the active one on every surface (chat picker, Composer picker, agent picker).
Attribution¶
Every Cursor request authenticates with the single VIDAI API key you pasted. For a team deployment where you want per-user attribution, mint one API key per Cursor user (or share a key per team). The Chargeback tab's "Chargeback by API key" section will then show each Cursor seat's spend.
Add multiple models¶
Cursor's Model Names list accepts multiple entries. Add each model your team should be able to pick — Cursor lists them in the model picker:
Cross-provider from Cursor¶
A model registered on the control plane that routes to a non-OpenAI upstream is callable from Cursor the same way. Add its name to Cursor's Model Names list — Cursor sees it as "just another OpenAI model" and the control plane handles the translation to Anthropic / Gemini / Vertex / Bedrock underneath.
Verify it works¶
After completing the TL;DR:
- In Cursor, open a chat with your configured model selected.
- Send
reply with exactly: ok. - Confirm the response.
- In the control plane, check Request Logs — a row appears attributed to the API key you set.
If something's off¶
Raise an issue at github.com/vidaiUK/vidai-quickstart/issues with your Models config (masking the key) and the Cursor version. We'll get it sorted.
Where to go next¶
- Client integrations overview
- API Keys — mint per-seat keys for team deployments
- Chargeback — per-Cursor-seat spend
- Guardrails — apply policies across Cursor traffic