Does Cursor still integrate with LiteLLM?

The cursor agent confirms that the LiteLLM endpoint is reachable and returns a status of 200 and the public model that my corporate LiteLLM proxy is consuming.

I create a custom model which is the name of the Public Model but when attempting to use that model when prompting it says “Model Name is Invalid”?

Is there a way to get this working?

Oh, hi @Grant_Godley, you should ask your moderators the exact string name of the models that are available to you via this proxy! The model name is case sensitive, meaning that even 1 wrong character and it won’t allow you to use it properly! hope this help

Hey, this is a known limitation. Cursor validates the model name against an internal list of known models, and any name that is not in that list gets rejected as Model Name is Invalid. The case sensitivity tip above won’t help. The issue isn’t the casing, it’s that a custom name from your LiteLLM proxy fails validation, even when you’re using your own API key.

We’re tracking this on our side, but we don’t have an exact ETA yet.

A workaround that sometimes works is to map your LiteLLM model to a model name that Cursor already recognizes, like gpt-4o or claude-sonnet-4, then call it by that name from Cursor. Not ideal, but it can bypass the validation.

I’ve spent 2 hours trying every single tutorial to use LiteLLM proxy and custom models.
I’ve read many posts in the forum with people being blocked.
Is there an doc that shows how to add model properly ? I see people complaining since january, I guess the problem is known by now?

Hey, thanks for the report. There isn’t docs for this exact case, not because we forgot to write them, but because the cause is a validation bug, not a bad setup. Cursor checks the custom model name against its internal list of known models, and any name that isn’t on that list gets rejected as Model Name is Invalid, even when you’re using your own API key and your own endpoint. So no matter how many tutorials you try, a custom name from a LiteLLM proxy won’t pass.

Yeah, this is a known issue. I can’t share an ETA for a fix yet.

A workaround that sometimes works is to map your LiteLLM model to a name Cursor already knows, like gpt-4o or claude-sonnet-4, then call it from Cursor using that name. Not perfect, but it bypasses validation. Let me know if it helps.