When Auto is selected, Cursor routes each request to a different underlying model. That’s useful, but today there’s no way to see which model actually handled each turn or agent step after the fact.
The UI only shows “Auto” as the selected model. Local agent transcripts don’t include model metadata per message. The usage dashboard aggregates Auto + Composer pool usage but doesn’t expose per-step routing decisions.
This makes it hard to:
Debug quality regressions — “this answer was worse than yesterday” with no way to know if the router picked a lighter model
Build trust in Auto — users can’t tell if a complex task got a capable model or a fast/cheap one
Audit subagent routing — subagents may run on different models, but the parent chat doesn’t surface what ran where
Compare cost vs quality — Premium shows model per request on the usage page; Auto does not
Proposed solution
Minimal viable observability:
Per-message badge or tooltip in chat/agent UI showing the resolved model (e.g. “Composer 2.5”, “Claude Sonnet”) for each assistant turn
Subagent steps should show both agent name and resolved model
Optional detail panel (click to expand) with model id, reasoning effort / thinking mode if applicable
Usage dashboard parity — per-request breakdown for Auto-routed requests, same as Premium
Transcript export — include model_id in exported/local transcript JSONL for debugging
Why this matters
Auto is positioned as the default for everyday agentic coding and draws from a generous included pool. Observability is the missing piece: even if I keep Auto as the default, I need to know afterward what model handled each step — especially for production code changes where quality and predictability matter.
Related community sentiment: several threads mention wanting visibility into Auto’s routing decisions rather than a black box.
Hi @Jose_E_Carrillo Thank you for forum post! Right now there is not a way to see the exact model used when choosing Auto. Auto intelligently balances quality, speed, and cost — Cursor dynamically picks the best model for each request based on the task at hand and which models are available at that moment. It also takes into account regional availability and load (e.g. if a particular model has very high load / availability issues, auto will route around that).
If you need to choose a particular model, you can pick one from the model picker.
While waiting for first-party UI support, it’s worth noting that Cursor does record the resolved model per assistant turn in its local SQLite database - it’s just not surfaced anywhere.
state.vscdb (in ~/Library/Application Support/Cursor/User/globalStorage/ on macOS) has a cursorDiskKV table with keys like bubbleId:<composerId>:<index>. Each value contains modelInfo.modelName with the actual resolved model slug, even for Auto-routed turns. You can query it read-only:
SELECT key, json_extract(value, '$.modelInfo.modelName')
FROM cursorDiskKV
WHERE key LIKE 'bubbleId:%'
ORDER BY json_extract(value, '$.createdAt') DESC
LIMIT 20;
There’s also ~/.cursor/ai-tracking/ai-code-tracking.db which records per-code-block model attribution (ai_code_hashes table) - so Cursor already knows which model wrote which lines.
And for hooks users: the beforeSubmitPrompt hook payload already delivers model, model_params (thinking level), and composer_mode per turn at submit time - so you can log per-turn model/mode data to a local JSONL file today. (The transcript JSONL sadly doesn’t include model metadata per message, as the OP noted.)
None of this replaces proper UI - a per-message badge or tooltip showing the resolved model is the right solution. But the data exists locally if anyone wants to build tooling around it in the meantime.
I like Auto, but honestly it still feels like a black box when I use it every day.
About a month or two ago, it felt like Auto used less of my quota. This month I get that you’ve shipped a lot of updates — agents do more, routing is smarter, all that — so I’m not surprised usage went up. That part makes sense. What’s harder is not really knowing what’s going on inside Auto, so it’s tough to trust it.
Most of the time I can’t tell:
which model is actually answering
why it switched models mid-chat
whether I’m in “save quota” mode or “go smarter” mode
What would help (keep it simple):
Always show the current model, even when Auto is selected
Clear sub-modes under Auto: Cost / Balance / Intelligence (easy to see and switch)
When it switches models, one short line why — e.g. “cheaper model: small edit” / “stronger model: tough debug”
That alone would make Auto feel way more trustworthy, and I’d leave it on instead of locking a single model all the time.