anomalyco / anomalyco/opencode
opencode: configured providers appear disconnected in model dialogs
@simonklee is already working on this.
Since Sep 16, 2026.
- Dominant language
- TypeScript
- Stars
- 209k
- Forks
- 27.5k
- PR merge metrics
- PR metrics pending
Description
Description
Custom providers from opencode.json are available and their models appear in /models, but the TUI treats them as disconnected when no authenticated integration exists.
In the model picker, models with the same name are shown without provider names, so they cannot be distinguished. In the integration picker, the configured providers also look unconfigured.
Why this happens
OpenCode uses two different kinds of provider state:
- A configured provider is enabled by
opencode.jsonand can provide models. - A connected integration has a saved credential or an available environment variable.
The server correctly makes configured providers available, but the TUI's useConnected() check only looks at integration connections. The model dialog then hides provider names whenever no integration has a connection. The integration dialog also uses the absence of a connection as if the provider was not configured at all.
Expected:
- Show the provider name beside each model.
- Clearly mark custom providers from the config as configured.
- Keep configured and authenticated states distinct.
Actual:
- Models with the same name look identical.
- Configured providers look disconnected.
Plugins
None
OpenCode version
2.0.4
Steps to reproduce
- Disconnect all authenticated providers.
- Create
opencode.jsonwith:
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"byok-one": {
"npm": "@ai-sdk/openai",
"name": "BYOK One",
"options": {
"baseURL": "https://example.com/v1",
"apiKey": ""
},
"models": {
"test-model": {
"name": "Same Model"
}
}
},
"byok-two": {
"npm": "@ai-sdk/openai",
"name": "BYOK Two",
"options": {
"baseURL": "https://example.com/v1",
"apiKey": ""
},
"models": {
"test-model": {
"name": "Same Model"
}
}
}
}
}
- Run
opencode --standalone. - Open
/modelsand search forSame Model. - Notice that both results have the same label and no provider name.
- Press
Ctrl+Aand notice that the BYOK providers do not appear configured.
This reproduces consistently.
Screenshot and/or share link
Model List (no differentiation between custom providers)
Integration List (doesnt show custom ones as connected)
Operating System
macOS (Darwin 27.0.0, arm64)
Terminal
Zed
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.