CU

cursor-model-selection

Quick reference for selecting the best AI model in Cursor based on task complexity and available context.

Install

mkdir -p .claude/skills/cursor-model-selection && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/1208" && unzip -o skill.zip -d .claude/skills/cursor-model-selection && rm skill.zip

Installs to .claude/skills/cursor-model-selection

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Configure and select AI models in Cursor for Chat, Composer, and Agent
70 charsno explicit “when” trigger
Beginner

Key capabilities

  • Select AI models for Chat, Composer, and Agent mode
  • Configure default models for Chat and Composer
  • Use 'Auto' mode for automatic model selection
  • Integrate personal API keys for OpenAI, Anthropic, or Google models
  • Add custom OpenAI-compatible models
  • Optimize model usage for cost efficiency

How it works

The skill allows users to choose AI models for different Cursor modes, either manually or via an 'Auto' mode. It supports integrating personal API keys and custom models to bypass Cursor's quota system.

Inputs & outputs

You give it
User selection of AI model, API keys, or custom model configurations
You get back
AI model responses tailored to specific tasks and configured preferences

When to use cursor-model-selection

  • Choosing a model for bug fixing
  • Selecting a model for architecture tasks
  • Configuring chat and composer models
  • Optimizing request quotas

About this skill

Cursor Model Selection

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.

Available Models

Included with Cursor Subscription

ModelProviderBest ForContext
GPT-4oOpenAIGeneral coding, fast responses128K
GPT-4o-miniOpenAISimple tasks, cost-efficient128K
Claude SonnetAnthropicCode quality, detailed explanations200K
Claude HaikuAnthropicFast simple tasks200K
cursor-smallCursorQuick completions, simple edits8K
AutoCursorAutomatic model selection per queryVaries

Premium Models (count against fast request quota)

ModelProviderBest ForContext
Claude OpusAnthropicComplex architecture, hard bugs200K
GPT-5OpenAIAdvanced reasoning, complex code128K+
o1 / o3OpenAIDeep reasoning, mathematical logic128K
Gemini 2.5 ProGoogleDesign, large context analysis1M

Model Selection by Task

Quick Reference

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 mode

How to Switch Models

Per 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.

Bring Your Own Key (BYOK)

Use your own API keys to bypass Cursor's quota system. You pay the provider directly at their rates.

Configuration

Cursor Settings > Models > enable Use own API key:

OpenAI:

API Key: sk-proj-xxxxxxxxxxxxxxxxxxxx

Anthropic:

API Key: sk-ant-xxxxxxxxxxxxxxxxxxxx

Google (Gemini):

API Key: AIzaSyxxxxxxxxxxxxxxxxxxxxxxxxx

Azure OpenAI

For 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-21

Adding Custom Models

For OpenAI-compatible providers (Ollama, LM Studio, Together AI):

  1. Cursor Settings > Models > Add Model
  2. Enter model name (e.g., llama-3.1-70b)
  3. Enable Override OpenAI Base URL
  4. Enter base URL: http://localhost:11434/v1 (Ollama) or provider URL
  5. Enter API key if required

BYOK Limitations

FeatureUses BYOK Key?Uses Cursor Model?
ChatYes--
ComposerYes--
Agent modeYes--
Tab CompletionNoAlways Cursor model
Apply from ChatNoAlways Cursor model

Tab Completion always uses Cursor's proprietary model regardless of BYOK configuration.

Cost Optimization Strategies

Tiered Model Usage

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 logic

Quota Management

Cursor subscription includes a monthly quota of "fast requests" (premium model uses). When exceeded, requests queue behind other users ("slow requests").

  • Check remaining quota: cursor.com/settings > Usage
  • Pro plan: ~500 fast requests/month
  • Business plan: ~500 fast requests/month per seat

Tips to Reduce Usage

  1. Use Auto mode -- it picks cheaper models when they suffice
  2. Start with Sonnet/GPT-4o, escalate to Opus/o1 only if needed
  3. Write detailed prompts to avoid back-and-forth (fewer requests)
  4. Use BYOK for heavy usage -- pay per token instead of per request

Model Behavior Differences

Code Generation Style

# 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")
    ...

Reasoning Models (o1, o3)

These models "think" before responding. They are slower but significantly better at:

  • Multi-step logic problems
  • Finding subtle bugs in complex code
  • Mathematical or algorithmic optimization
  • Understanding implicit requirements

They are overkill for simple tasks. Use them deliberately for hard problems.

Enterprise Considerations

  • Model access control: Admins can restrict which models team members access via the admin dashboard
  • Spending limits: Set per-user or per-team spending caps when using BYOK
  • Compliance: Some models route through different providers -- verify data handling per model
  • Azure preference: Enterprise teams on Azure can route all requests through their own Azure OpenAI deployments
  • Audit: Model selection per request is visible in usage analytics (Business/Enterprise plans)

Resources

When not to use it

  • When using Tab Completion, as it always uses Cursor's proprietary model
  • When applying changes from Chat, as it always uses Cursor's model

Limitations

  • Tab Completion always uses Cursor's proprietary model
  • Applying changes from Chat always uses Cursor's model
  • Cursor subscription includes a monthly quota of 'fast requests'

How it compares

This skill provides granular control over AI model selection and configuration within Cursor, allowing for task-specific optimization and cost management, unlike using a single default AI model.

Compared to similar skills

cursor-model-selection side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
cursor-model-selection (this skill)527dReviewBeginner
command-development168moReviewIntermediate
frontend-prompt-generator69moReviewIntermediate
guidance37moReviewIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

More by jeremylongshore

View all by jeremylongshore

analyzing-logs

jeremylongshore

Analyze application logs to detect performance issues, identify error patterns, and improve stability by extracting key insights.

14123

ollama-setup

jeremylongshore

Configure auto-configure Ollama when user needs local LLM deployment, free AI alternatives, or wants to eliminate hosted API costs. Trigger phrases: "install ollama", "local AI", "free LLM", "self-hosted AI", "replace OpenAI", "no API costs". Use when appropriate context detected. Trigger with relevant phrases based on skill purpose.

1167

backtesting-trading-strategies

jeremylongshore

Backtest crypto and traditional trading strategies against historical data. Calculates performance metrics (Sharpe, Sortino, max drawdown), generates equity curves, and optimizes strategy parameters. Use when user wants to test a trading strategy, validate signals, or compare approaches. Trigger with phrases like "backtest strategy", "test trading strategy", "historical performance", "simulate trades", "optimize parameters", or "validate signals".

1071

generating-database-seed-data

jeremylongshore

Process this skill enables AI assistant to generate realistic test data and database seed scripts for development and testing environments. it uses faker libraries to create realistic data, maintains relational integrity, and allows configurable data volumes. u... Use when working with databases or data models. Trigger with phrases like 'database', 'query', or 'schema'.

1033

cursor-codebase-indexing

jeremylongshore

Execute set up and optimize Cursor codebase indexing. Triggers on "cursor index setup", "codebase indexing", "index codebase", "cursor semantic search". Use when working with cursor codebase indexing functionality. Trigger with phrases like "cursor codebase indexing", "cursor indexing", "cursor".

885

testing-mobile-apps

jeremylongshore

Execute mobile app testing on iOS and Android devices/simulators. Use when performing specialized testing. Trigger with phrases like "test mobile app", "run iOS tests", or "validate Android functionality".

810

You might also like

command-development

anthropics

This skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.

16133

frontend-prompt-generator

gharam1234

Generate structured prompts for frontend development tasks following established patterns. Use when the user requests prompts for wireframes, UI implementation, data binding, or routing functionality in React/Next.js projects with specific formatting requirements (Cursor rules, file paths, test-driven development).

679

guidance

davila7

Control LLM output with regex and grammars, guarantee valid JSON/XML/code generation, enforce structured formats, and build multi-step workflows with Guidance - Microsoft Research's constrained generation framework

348

slash-command-factory

alirezarezvani

Generate custom Claude Code slash commands through intelligent 5-7 question flow. Creates powerful commands for business research, content analysis, healthcare compliance, API integration, documentation automation, and workflow optimization. Outputs organized commands to generated-commands/ with validation and installation guidance.

14

agentica-prompts

parcadei

Write reliable prompts for Agentica/REPL agents that avoid LLM instruction ambiguity

12

outlines

davila7

Guarantee valid JSON/XML/code structure during generation, use Pydantic models for type-safe outputs, support local models (Transformers, vLLM), and maximize inference speed with Outlines - dottxt.ai's structured generation library

10

Search skills

Search the agent skills registry