Cursor
Cursor can send its OpenAI requests to any OpenAI-compatible endpoint by overriding the OpenAI base URL and supplying your own key.
Setup
Open Settings → Models (also labeled Models & API Keys).
Under API Keys, expand OpenAI API Key and paste your UberLLM key (
ull_...).Enable Override OpenAI Base URL and set it to:
https://api.uberllm.dev/v1Add a custom model by name that exists in the UberLLM catalog — for example
deepseek/deepseek-v3.1— in the model list.Click Verify. Cursor sends a test request to confirm the key and base URL resolve.
Important behavior
- Overriding the OpenAI base URL reroutes Cursor's OpenAI model requests to
UberLLM. Add the UberLLM model(s) you want by name and select one of them;
Cursor's built-in OpenAI model names (e.g.
gpt-*) will also be sent to your override URL, so use a model id that UberLLM actually serves. - Some of Cursor's newest first-party "Composer"/agent models do not support custom API keys and will ignore the override. Use the standard model selector with your added custom model for BYO-endpoint chat/edit.
- If Verify does nothing, confirm the base URL ends in
/v1and that the model name you added is present inGET https://api.uberllm.dev/v1/models.
Verify from the terminal
If Cursor's built-in verify is unclear, confirm the endpoint independently:
curl https://api.uberllm.dev/v1/chat/completions \
-H "Authorization: Bearer $UBERLLM_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"deepseek/deepseek-v3.1","messages":[{"role":"user","content":"ping"}]}'
A 200 with a choices[0].message body means Cursor will work with the same
settings.