Currently some users use model directly from Claude code subscription. Then they can use sonnet, haiku and opus directly.
But also, many users use third party provider and they have different model ids. In that case we need to get those model ids from the settings file.
$HOME/.claude/settings.json look like this. where env.ANTHROPIC_DEFAULT_HAIKU_MODEL and similar to other models might not set in the user's settings.
If haiku, opus, sonnet model is not mapped.. user shouldn't be able to choose any model in the UI.. because user didn't map their model for haiku, opus and sonnet model. And then by default we would use the model value from model.
Also instead of just writing sonnet, opus and haiku... we need to pull the model ids from user's claude code settings actually and then show the full model id in all the model selection dropdown if exists. Otherwise it might create many confusion.
If no map found, it should only show the model values.
{
"model": "global.anthropic.claude-sonnet-4-6",
"env": {
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "global.anthropic.claude-haiku-4-5-20251001-v1:0",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "global.anthropic.claude-opus-4-6-v1",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "global.anthropic.claude-sonnet-4-6",
"ANTHROPIC_MODEL": "global.anthropic.claude-sonnet-4-6",
"ANTHROPIC_SMALL_FAST_MODEL": "global.anthropic.claude-haiku-4-5-20251001-v1:0"
}
}
These are the case if user only use custom model. if we don't find any model or any model map inside the env... then only we show sonnet, haiku and opus directly.
So we can support both cases... custom model id and claude code provided own model family
Currently some users use model directly from Claude code subscription. Then they can use sonnet, haiku and opus directly.
But also, many users use third party provider and they have different model ids. In that case we need to get those model ids from the settings file.
$HOME/.claude/settings.json look like this. where
env.ANTHROPIC_DEFAULT_HAIKU_MODELand similar to other models might not set in the user's settings.If haiku, opus, sonnet model is not mapped.. user shouldn't be able to choose any model in the UI.. because user didn't map their model for haiku, opus and sonnet model. And then by default we would use the model value from
model.Also instead of just writing
sonnet,opusandhaiku... we need to pull the model ids from user's claude code settings actually and then show the full model id in all the model selection dropdown if exists. Otherwise it might create many confusion.If no map found, it should only show the
modelvalues.These are the case if user only use custom model. if we don't find any
modelor any model map inside the env... then only we show sonnet, haiku and opus directly.So we can support both cases... custom model id and claude code provided own model family