Problem
Cursor CLI exposes reasoning levels as separate model IDs (for example, gpt-5.6-sol-low, gpt-5.6-sol-high, and gpt-5.6-sol-max). OpenAI-compatible clients instead send a logical model plus reasoning_effort (Chat Completions) or reasoning.effort (Responses).
Today the proxy ignores those controls, so clients such as DeepSeek Harness cannot change reasoning level without treating every Cursor variant as a separate model.
Proposed behavior
Resolve the requested logical/explicit model against the live agent --list-models catalog:
gpt-5.6-sol + high -> gpt-5.6-sol-high
- preserve
-fast while changing effort
- normalize
off to Cursor's none, and accept xhigh / extra-high
- only select variants present in the live catalog
- return a clear 400 error when the family does not offer the requested level
This should apply to both Chat Completions and Responses. I have a tested implementation ready and will link the PR here.
Problem
Cursor CLI exposes reasoning levels as separate model IDs (for example,
gpt-5.6-sol-low,gpt-5.6-sol-high, andgpt-5.6-sol-max). OpenAI-compatible clients instead send a logical model plusreasoning_effort(Chat Completions) orreasoning.effort(Responses).Today the proxy ignores those controls, so clients such as DeepSeek Harness cannot change reasoning level without treating every Cursor variant as a separate model.
Proposed behavior
Resolve the requested logical/explicit model against the live
agent --list-modelscatalog:gpt-5.6-sol+high->gpt-5.6-sol-high-fastwhile changing effortoffto Cursor'snone, and acceptxhigh/extra-highThis should apply to both Chat Completions and Responses. I have a tested implementation ready and will link the PR here.