Prohibition of Composer 2 for Sub-agents

Is there a proper way to disable Composer 2 for sub-agents so I don’t have to create such rules, some hacks and clutter my context with rules, because I’m absolutely dissatisfied with how Composer 2 works, how it doesn’t follow instructions and just writes crappy code that doesn’t follow the rules and repository design. This infuriates me. Why are there no system settings to disable such stupid models for sub-agents?

Hey, I get the frustration, this is a known confusing spot. Right now, built-in auto subagents, especially Explore and generalPurpose, can pick their own default model and often end up using Composer 2 or Composer 2 Fast no matter what model the parent agent is using. There isn’t a global toggle in the stable version yet.

What you can do right now instead of hacks in rules:

  1. Custom subagent with an explicit model. Create a file in .cursor/agents/*.md with YAML frontmatter and a clear model:. There’s a model picker in the UI after you generate the subagent. Running this subagent will always respect the selected model. More details: Subagents | Cursor Docs.
  2. subagentStart hook with permission: "deny" if you want to hard block spawning built-in subagents: Hooks | Cursor Docs.
  3. Omit model in Task or don’t pass it, then the subagent inherits the parent’s model. This doesn’t work for all built-in types, but it’s fine for custom ones and explicit calls via Task.

A separate Explore subagent model selector was added in Settings in 3.3, currently in the nightly channel. If you want it sooner, you can switch to nightly.

@deanrie For some reason, my nightly cursor isn’t showing any updates. I’ve also tried downloading it again, but it turned out to be the exact same version.

3.3 is already on the stable channel, so you don’t need to stay on nightly. That’s why the version isn’t changing. Switch to stable or re-download from here: Cursor · Download

After that, open Cursor Settings and search for subagent or explore. There’s a separate model picker for the Explore subagent.

If you can’t find it, send a screenshot of your settings and I’ll take a look.

This setting isn’t working; composer 2 still launches, and it’s throwing errors
If it’s not an explore agent but another one, it’s very stupid that the setting is only for a explore agent.

Composer 2 is a terrible model; it’s really frustrating that Cursor pushes it and doesn’t give us a choice! For the record, users can patch the IDE myself and change the Cursor code—which I’ve already had to do because of numerous bugs in the IDE—but I’m tired of constantly having to do this

Hey, thanks for the update. Let me clarify the setting behavior.

The picker in Settings from 3.3 controls only the Explore subagent. The subagent in your screenshot Verify auth redirect in browser is a different built-in one generalPurpose/Task, and the current picker doesn’t apply to it. So this isn’t a settings bug, it’s just the scope.

What can help right now:

  1. Custom subagent with an explicit model. Create a file in .cursor/agents/*.md with YAML frontmatter and model: claude-opus-4-7-thinking-xhigh or whatever you need. This kind of subagent ignores defaults, the parent will call that exact model. Docs: Subagents | Cursor Docs
  2. Max Mode on the parent agent. If you’re on the legacy request-based plan, without Max Mode the backend forces Composer 2 Fast for built-in subagents no matter what the parent model is and even if Model: Inherit is set. That’s by design for that plan type. Turning on Max Mode removes the force. If you’re on the new token-based pricing, this shouldn’t be an issue, so let me know.
  3. Hard-block built-in subagents via the subagentStart hook with permission: "deny". Docs: Hooks | Cursor Docs

About extending the picker to other built-in subagents, the feedback makes sense and it’s not the first report. I can’t share an ETA for more granular controls.

If you can share: a is Max Mode enabled on the parent agent in the screenshot, b are you on Pro legacy request-based or the new token-based plan, I can tell which option above fits you best.

I have two accounts, enterprise and personal with request-based pricing. And it doesn’t work for either one, stupid Cursor always launches it on Composer!
I understand that you are trying to limit early Cursor users so that they switch away from request-based plans because it’s not profitable for you, but why does Enterprise have the same limitations?