Model list and default model
inferenceModels lists the models the picker offers. Write each entry with the exact model ID your provider expects, such as us.anthropic.claude-sonnet-5 on Amazon Bedrock or claude-sonnet-5 on Google Cloud’s Agent Platform. The first entry is the default model. New Chat conversations, Cowork sessions, and Code sessions start on the default model until a user picks another model. To control whether a user’s choice carries over to later conversations and sessions, see Start every conversation on the default model.
If you leave inferenceModels unset and your provider supports model discovery, Claude Desktop fills the picker from the provider’s model list at launch. The first discovered model is then the default model.
Each entry is either a model ID string or an object. In an object, name holds the model ID and every other field is optional. Two of the optional fields change how the picker shows the model:
labelOverridesets the display name for an ID the picker can’t turn into a readable name, such as a gateway routing alias or an Amazon Bedrock application inference profile ARN. Claude Desktop still sendsnameto your provider.supports1m: trueadds a second entry that shows the same name with 1M context window beneath it. Set it only when your deployment accepts 1M-token requests for that model. Otherwise, requests from the 1M entry fail at the provider. Addprefer1m: trueto the default model’s entry to make its 1M entry the default selection. Users can still choose the standard entry.
Effort levels
An effort level sets how much thinking Claude puts into each response. Higher levels give more thorough answers but take longer and use more tokens. Users choose the level with the Effort control in the model picker. Each model starts at Anthropic’s recommended level unless you configure otherwise. The Effort control marks the recommended level Default.Per-model effort cap
maxEffort on an inferenceModels entry sets the highest effort level Claude Desktop offers for that model in Chat, Cowork, and Code. Set it to low, medium, high, xhigh, or max. The picker shows xhigh as Extra. The Effort control doesn’t offer levels above the cap.
In Code sessions, the cap also limits Claude Code’s own effort settings, such as a CLAUDE_CODE_EFFORT_LEVEL environment variable or the /effort command. If a model’s recommended level is above its cap, the model starts at the cap. If Claude Desktop doesn’t recognize the maxEffort value, it caps the model at low.
Starting effort level for the default model
defaultModelEffort sets the effort level the default model starts at, in place of its recommended level. Other models keep their recommended level. If you set a level the default model doesn’t offer, or one above its maxEffort, the default model starts at the nearest lower level it offers.
defaultModelEffort also applies when model discovery fills the picker instead of an inferenceModels list.
Models without an Effort control
Some model IDs, such as a gateway routing alias, don’t name a specific Claude model. For such a model, the picker shows no Effort control, so users can’t change its effort level. Its conversations and sessions never run above themaxEffort on its entry. When such a model is the default model, its conversations and sessions run at defaultModelEffort, up to that cap. With only maxEffort set, they run at that cap.
Start every conversation on the default model
SetalwaysStartWithDefaultModel to true to start every new Chat conversation, Cowork session, and Code session on the default model at its starting effort level, not on the user’s last choice. When the user picks a model or effort level, it applies only for that conversation or session.
If you leave alwaysStartWithDefaultModel unset, the default model and its starting effort level apply until a user picks a different model or effort level. Claude Desktop remembers that choice and starts the user’s new conversations and sessions from it.
When you turn the setting on, Claude Desktop keeps the choices users saved earlier. If you later turn it off, those choices apply again.
alwaysStartWithDefaultModel also applies when model discovery fills the picker instead of an inferenceModels list.