You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[FEATURE]: models: TUI picker cannot distinguish identical model names across providers #55296
When multiple providers define models with the same name/ID (e.g., the same
model served through different API keys or accounts), the TUI model picker
shows several entries with identical display names and no indication of which
provider each entry belongs to, so users cannot tell them apart when selecting
a model.
In ~/.config/opencode/opencode.json, configure several @ai-sdk/openai-compatible providers that each define the same model IDs —
e.g. providers sensenova, sensenova-copy, sensenova-copy2, sensenova-copy3, sensenova-copy4, each with models deepseek-v4-flash, glm-5.2, sensenova-6.8-flash-lite, sensenova-u1-fast (same baseURL,
different API keys).
Open the model picker in the TUI.
Notice multiple entries with exactly the same display name.
Expected Behavior
Each entry in the TUI model picker should display a provider identifier — e.g. provider/model (the opencode models CLI already prints sensenova-copy2/glm-5.2), a provider column, or provider grouping — so
entries from different providers can be distinguished and searched.
Actual Behavior
Picker entries render with only the model name. The config above produces
5 providers × 4 identically-named models = 20 visually identical entries, with
no way to tell which provider/API key a given entry will use.
Additional Context
Use case: multiple API keys/accounts for the same provider (separate
quota/billing) configured as separate provider entries; the provider ID is
the only differentiator.
opencode models CLI already shows provider/model, so the TUI picker
appears inconsistent with the CLI output.
Frequency: consistently reproducible with the config above.
No good workaround: renaming the model name field per provider works but
pollutes the displayed model name everywhere.
Config API keys redacted; provider baseURLs are public endpoints.
Thanks for the clear report and repro config! I think this is a duplicate of #50322, which reports the same thing: the /models picker shows no provider name for providers declared in opencode.json, so models with the same ID under different providers look identical.
Possible duplicates and related issues, ordered by likelihood:
It may help to add a 👍 or your use case (several API keys for the same provider) to #50322. The bot will close this issue as a duplicate in 1 day unless you reply explaining how your problem is different.
Closing this as a duplicate of #50322, since we haven't heard back in the past day about how this is different. Please follow #50322 for progress on showing provider names in the /models picker. #49309 tracks the underlying cause: providers declared in config are treated as disconnected. Adding a 👍 or your multiple-API-keys use case there is the best way to show it matters to you.
If your problem turns out to be different, reply here and we can reopen this. Thanks again for the detailed report!
Activity
opencode-agent commentedon Oct 14, 2026
Thanks for the clear report and repro config! I think this is a duplicate of #50322, which reports the same thing: the
/modelspicker shows no provider name for providers declared inopencode.json, so models with the same ID under different providers look identical.Possible duplicates and related issues, ordered by likelihood:
/modelspicker hides provider names for config-declared providers, so identical model IDs across providers can't be told apart (one commenter there has 5 custom providers with overlapping models, like your setup).session.model_labeloption to show provider and model IDs.namerenders as a blank row).It may help to add a 👍 or your use case (several API keys for the same provider) to #50322. The bot will close this issue as a duplicate in 1 day unless you reply explaining how your problem is different.
opencode-agent commentedon Oct 15, 2026
Closing this as a duplicate of #50322, since we haven't heard back in the past day about how this is different. Please follow #50322 for progress on showing provider names in the
/modelspicker. #49309 tracks the underlying cause: providers declared in config are treated as disconnected. Adding a 👍 or your multiple-API-keys use case there is the best way to show it matters to you.If your problem turns out to be different, reply here and we can reopen this. Thanks again for the detailed report!