Guides

Choosing a model

Use Cursor's CLI model list, understand Auto, and keep model cost data current.

Start with the CLI list

cursor-agent models

This output is the default catalog. Cursor's picker can also enable models that cursor-agent models does not print. open-cursor merges those enabled IDE models in, using the ids Cursor actually accepts.

GLM 5.3 is the reported case. The picker label is "GLM 5.3", but the id is glm-5p3 (and glm-5p3-flash for Flash), not glm-5.3. cursor-agent --model glm-5p3 accepts it even when cursor-agent models only lists GLM 5.2. Guessing the dotted docs id does not.

A model that is neither in the CLI list nor enabled in Cursor Settings → Models still cannot be routed. Adding that id to opencode.json does not make the CLI accept it.

Refresh OpenCode after Cursor changes the list. On OpenCode 2.x, restart the service; the plugin discovers models on each start:

opencode service restart
opencode models | grep cursor-acp

On OpenCode 1.x:

open-cursor sync-models
opencode models | grep cursor-acp

Auto

cursor-acp/auto sends Cursor's auto model ID. Cursor chooses the model. open-cursor does not rank the installed models or rewrite auto to a specific provider ID.

Use Auto when you do not need a repeatable model choice. Select an explicit ID for debugging, comparisons, or work that depends on a known context or reasoning profile.

Composer and frontier models

Composer is Cursor's coding model family. It is a sensible first explicit choice for routine repository work because it is designed for that workload. A frontier model may fit a hard reasoning task better, but availability and cost differ by account.

Do not infer quality from the longest model name. Test the same representative task, then keep the cheapest model that meets the requirement.

Thinking and fast variants

The CLI may expose related IDs such as thinking, fast, low, or high variants. Keep the flat list:

open-cursor sync-models

Or group related IDs under OpenCode variants:

open-cursor sync-models --variants --compact
open-cursor models --explain

Each grouped entry keeps the exact Cursor ID in cursorModel. See opencode.json.

Cost

The sync command attaches known prices from the package pricing table so OpenCode can display usage. Pricing changes independently of the plugin. Check Cursor's model and pricing documentation before making a cost-sensitive choice.

Repository maintainers can validate coverage with:

bun run check:pricing

An unknown price stays absent. The plugin does not invent a value.

A configured model gives no response

Run:

cursor-agent models

If the model is absent, remove the hand-written entry and sync the current list. If it is present but still produces no response, capture a debug log and follow Troubleshooting.

On this page