Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Configure and select AI models in Cursor for Chat, Composer, and Agent mode. Triggers on "cursor model", "cursor gpt", "cursor claude", "change cursor model", "cursor ai model", "cursor auto mode".
.claude/skills/jeremylongshore-cursor-model-selection/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 31% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 34% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 36% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 49% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 60% | 0% |
Choose models by task risk, reasoning needs, data-handling policy, latency, and approved spend—not by apparent confidence in a single response.
| Condition | Safe response | |---|---| | Model is not approved for the data class | Stop and use an approved route or seek formal approval. | | Cost/latency exceeds budget | Downgrade or narrow the task; do not bypass spending controls. | | Output quality is inadequate | Use a better-suited approved model and retain independent review. |
Use an approved fast model for a localized type annotation with its focused test. For a high-impact architecture proposal, use the approved reasoning model, attach only necessary design documents, and require human reviewers to validate alternatives and rollback implications.
Configure AI models for Chat, Composer, and Agent mode. Cursor supports models from OpenAI, Anthropic, Google, and its own proprietary models. Choosing the right model per task is a major productivity lever.
| Model | Provider | Best For | Context | |-------|----------|----------|---------| | GPT-4o | OpenAI | General coding, fast responses | 128K | | GPT-4o-mini | OpenAI | Simple tasks, cost-efficient | 128K | | Claude Sonnet | Anthropic | Code quality, detailed explanations | 200K | | Claude Haiku | Anthropic | Fast simple tasks | 200K | | cursor-small | Cursor | Quick completions, simple edits | 8K | | Auto | Cursor | Automatic model selection per query | Varies |
| Model | Provider | Best For | Context | |-------|----------|----------|---------| | Claude Opus | Anthropic | Complex architecture, hard bugs | 200K | | GPT-5 | OpenAI | Advanced reasoning, complex code | 128K+ | | o1 / o3 | OpenAI | Deep reasoning, mathematical logic | 128K | | Gemini 2.5 Pro | Google | Design, large context analysis | 1M |
Bug fix in one file → GPT-4o or Claude Sonnet
Multi-file refactoring → Claude Sonnet or Opus
Architecture planning → Claude Opus or GPT-5
Test generation → GPT-4o (fast + good patterns)
Complex algorithm design → o1/o3 reasoning models
Large codebase analysis → Gemini 2.5 Pro (1M context)
Simple autocomplete → cursor-small (automatic via Tab)
"I don't know" → Auto modePer conversation: Click the model name in the top-right of Chat or Composer panel.
Default model: Cursor Settings > Models > set default for Chat and Composer separately.
Auto mode: Select "Auto" as the model. Cursor picks the best model per query based on complexity and current server load.
Use your own API keys to bypass Cursor's quota system. You pay the provider directly at their rates.
Cursor Settings > Models > enable Use own API key:
OpenAI:
API Key: sk-proj-xxxxxxxxxxxxxxxxxxxxAnthropic:
API Key: sk-ant-xxxxxxxxxxxxxxxxxxxxGoogle (Gemini):
API Key: AIzaSyxxxxxxxxxxxxxxxxxxxxxxxxxFor enterprise Azure deployments:
Cursor Settings > Models > Azure:
API Key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Endpoint: https://my-instance.openai.azure.com
Deployment: gpt-4o-deployment-name
API Version: 2024-10-21For OpenAI-compatible providers (Ollama, LM Studio, Together AI):
Cursor Settings > Models > Add Modelllama-3.1-70b)Override OpenAI Base URLhttp://localhost:11434/v1 (Ollama) or provider URL| Feature | Uses BYOK Key? | Uses Cursor Model? | |---------|---------------|-------------------| | Chat | Yes | -- | | Composer | Yes | -- | | Agent mode | Yes | -- | | Tab Completion | No | Always Cursor model | | Apply from Chat | No | Always Cursor model |
Tab Completion always uses Cursor's proprietary model regardless of BYOK configuration.
Tier 1 (Fast + Cheap): cursor-small, GPT-4o-mini, Claude Haiku
Use for: simple questions, syntax help, boilerplate
Tier 2 (Balanced): GPT-4o, Claude Sonnet
Use for: most coding tasks, debugging, refactoring
Tier 3 (Premium): Claude Opus, GPT-5, o1/o3
Use for: architecture decisions, critical bugs, complex logicCursor subscription includes a monthly quota of "fast requests" (premium model uses). When exceeded, requests queue behind other users ("slow requests").
cursor.com/settings > Usagepython# Claude models: Verbose, well-documented, defensive def process_order(order: Order) -> Result[ProcessedOrder, OrderError]: """Process an order through the payment and fulfillment pipeline. Args: order: The order to process. Returns: Result containing the processed order or an error. Raises: Never raises -- errors returned as Result.Err. """ if not order.items: return Err(OrderError.EMPTY_ORDER) ... # GPT models: Concise, pragmatic, fewer comments def process_order(order: Order) -> ProcessedOrder: if not order.items: raise ValueError("Order has no items") ...
These models "think" before responding. They are slower but significantly better at:
They are overkill for simple tasks. Use them deliberately for hard problems.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 15,266 | 11,364 | -26% | 1 | 1 | 0% | 2,819 | 3,681 | +31% | 0 | 0 | — |
case-02 | pass→pass | 15,630 | 8,822 | -44% | 1 | 1 | 0% | 2,780 | 3,243 | +17% | 0 | 0 | — |
case-03 | fail→pass | 18,746 | 14,375 | -23% | 1 | 1 | 0% | 3,147 | 4,214 | +34% | 0 | 0 | — |
case-04 | fail→pass | 9,723 | 11,763 | +21% | 1 | 1 | 0% | 1,748 | 2,372 | +36% | 0 | 0 | — |
case-05 | fail→pass | 9,958 | 5,552 | -44% | 1 | 1 | 0% | 1,779 | 2,649 | +49% | 0 | 0 | — |
case-06 | fail→pass | 7,790 | 5,207 | -33% | 1 | 1 | 0% | 1,365 | 2,187 | +60% | 0 | 0 | — |
case-07 | pass→pass | 18,274 | 11,803 | -35% | 1 | 1 | 0% | 1,616 | 2,336 | +45% | 0 | 0 | — |
case-08 | fail→pass | 20,311 | 14,285 | -30% | 1 | 1 | 0% | 1,393 | 1,871 | +34% | 0 | 0 | — |
case-09 | fail→pass | 10,719 | 3,830 | -64% | 1 | 1 | 0% | 1,700 | 2,229 | +31% | 0 | 0 | — |
case-10 | pass→pass | 9,773 | 3,218 | -67% | 1 | 1 | 0% | 1,796 | 2,229 | +24% | 0 | 0 | — |
case-11 | pass→pass | 6,579 | 2,746 | -58% | 1 | 1 | 0% | 1,174 | 2,117 | +80% | 0 | 0 | — |
case-21 | fail→fail | 13,807 | 13,214 | -4% | 1 | 1 | 0% | 2,373 | 3,872 | +63% | 0 | 0 | — |
case-12 | pass→pass | 5,253 | 2,947 | -44% | 1 | 1 | 0% | 924 | 2,078 | +125% | 0 | 0 | — |
case-13 | pass→pass | 6,582 | 1,883 | -71% | 1 | 1 | 0% | 1,152 | 1,955 | +70% | 0 | 0 | — |
case-14 | pass→pass | 9,742 | 4,188 | -57% | 1 | 1 | 0% | 1,547 | 2,251 | +46% | 0 | 0 | — |
case-15 | pass→pass | 13,486 | 10,164 | -25% | 1 | 1 | 0% | 2,416 | 3,238 | +34% | 0 | 0 | — |
case-16 | pass→pass | 10,602 | 3,552 | -66% | 1 | 1 | 0% | 1,811 | 2,224 | +23% | 0 | 0 | — |
case-17 | pass→pass | 9,084 | 3,084 | -66% | 1 | 1 | 0% | 1,442 | 2,092 | +45% | 0 | 0 | — |
case-18 | pass→pass | 15,112 | 7,110 | -53% | 1 | 1 | 0% | 2,414 | 2,826 | +17% | 0 | 0 | — |
case-19 | fail→pass | 10,818 | 7,951 | -27% | 1 | 1 | 0% | 2,015 | 3,103 | +54% | 0 | 0 | — |
case-20 | pass→pass | 10,889 | 2,356 | -78% | 1 | 1 | 0% | 1,685 | 1,948 | +16% | 0 | 0 | — |
case-22 | fail→fail | 7,223 | 5,055 | -30% | 1 | 1 | 0% | 1,359 | 2,590 | +91% | 0 | 0 | — |
case-23 | pass→pass | 9,879 | 8,951 | -9% | 1 | 1 | 0% | 1,845 | 3,140 | +70% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted. The headline lift of +35 percentage points is the difference between those two pass rates over the 23 comparable cases.
The publisher has shipped newer versions since this run, so these numbers describe v1, not the version currently listed.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.