Repository navigation
Description
Summary
In OpenCode Desktop 2.2.3, limit and name overrides under providers.opencode-go in ~/.config/opencode/opencode.json have no effect on the built-in Claude Haiku 5.5 model. The model picker and context indicator still show the catalog value (1M context). Custom providers defined in the same file load normally.
Environment
- opencode version: Desktop app 2.2.3 (
CFBundleShortVersionString); CLI unavailable (opencodenot on PATH) - OS: macOS, Darwin 27.2.0 (arm64)
- Terminal: Unavailable: desktop app
- Shell: /bin/zsh
- Install/channel: latest
- Active plugins: none found in config
Reproduction
- Add this to
~/.config/opencode/opencode.json:
{
"providers": {
"opencode-go": {
"models": {
"claude-haiku-5-5": {
"limit": { "context": 100000, "output": 32000 }
}
}
}
}
}- Save the file. The log shows
config.updated,provider.updated, andmodel.updatedevents for the location. - Open
/modelsand select OpenCode Go → Claude Haiku 5.5. The info panel shows "1M context", and the context indicator uses 1M. - Run
/reloador restart the app. Nothing changes. - Add a
nameoverride to the same entry (for example"name": "Claude Haiku 5.5 (100k test)"). The picker still shows "Claude Haiku 5.5". - Add a new alias under the same provider,
"claude-haiku-5-5-100k": { "modelID": "claude-haiku-5-5", "name": "Claude Haiku 5.5 (100k)", "limit": { "context": 100000, "output": 32000 } }. It does not appear in the picker. - Control: add a custom provider in the same file (
"Sushi": { "package": "@opencode-ai/ai/providers/openai-compatible", "settings": { "baseURL": "..." }, "models": { ... } }). It appears in the picker.
Expected Behavior
Overrides under a built-in provider's models map apply to that model, as the providers guide describes ("Add or override models in a provider's models map"). The picker and the context indicator should show the configured limit.context, and a name override should change the displayed name.
Actual Behavior
Overrides under providers.opencode-go have no effect. The picker shows the catalog name, and the info panel and context indicator show the catalog's 1M context. New aliases under that provider don't appear. The custom Sushi provider in the same file works.
The catalog (models.dev) lists claude-haiku-5-5 for opencode-go with context: 1000000 and output: 128000.
A limit override with only context worked as a 100k cap until the most recent update. The published config schema requires both context and output in limit, so I added output. The client still ignores the override.
Additional Context
- Related closed issues: [BUG]: Custom openai-compatible provider model limit overrides ignored for context percentage display #29555 (custom openai-compatible
limit.contextignored for the context percentage) and [BUG]: Context tab shows Context Limit / Usage as em-dash for custom openai-compatible models even with configured limit.context #37456 (em-dash for custom models with a configured limit). This report is about overrides on built-in catalog providers, where the limit and name are not applied at all. - No config normalization warnings have appeared in the log since 2026-10-15, so the file is being parsed.
- Frequency: consistent on every reload and restart.
- Workaround: none found. The 100k cap cannot currently be applied to this built-in model.
Activity
opencodejr commentedon Oct 30, 2026
Thanks for the detailed report. I could reproduce what you're seeing, but only in one setup, and there it turns out to be intended behaviour in 2.2.3, not a bug.
What I tried (CLI, with your exact
providers.opencode-goentries):name, the 100k/32klimitand theclaude-haiku-5-5-100kalias all apply.opencode-go: 2.2.2 applies your overrides. 2.2.3 ignores them: the catalog name, a 1M context and no alias, which matches your report.Why: 2.2.3 added a rule in #60315. If a provider comes from your connected Console workspace, user and project config can't change it at all, and that includes its models. Only managed (admin) configuration can. The policies docs describe this: "A provider the connected Console workspace supplies can't be changed by user, project, or remote configuration." This is also why it worked for you until the last update. The providers guide doesn't mention this exception yet.
If you're signed in through the OpenCode Console, that's what's happening here. What you want is still reasonable: a way to apply harmless per-model overrides, such as a context cap or a display name, to Console-supplied models. That would be a feature request, and maintainers will decide whether to allow it. Your workspace admin may also be able to set these through managed configuration.
If you're not signed in through the Console and still see this on 2.2.3, please reply with how OpenCode Go is connected (Console sign-in or an API key) and the provider-related lines from the log. In that case it would be a different problem.
Cuteshy commentedon Oct 30, 2026
Update: I switched from Console sign-in to a service key, both under the OpenCode Go subscription. Still on desktop 2.2.3. The overrides under
providers.opencode-goare still ignored, and the log showsfailed to load OpenCode provider config ... 401 GET https://opencode.ai/console/api/v2/configrepeating every minute. This may be the workspace-supplied case, since the subscription still suppliesopencode-go.fix(core): allow local config to override Console-supplied providers
opencodejr commentedon Nov 2, 2026
I'm closing this as not planned since there hasn't been a reply. In my testing, overrides under
providers.opencode-go(thelimit, thenameand the alias) are only ignored when the provider comes from a connected OpenCode Console workspace. That's a deliberate rule added in 2.2.3 (#60315): user and project config can't change a provider the Console supplies. Without a Console connection, the same overrides still work.If you'd like to be able to apply harmless per-model overrides, such as a context cap or a display name, to Console-supplied models, please open a feature request. If you're not signed in through the Console and still see this on 2.2.3 or later, please reopen or comment here with how OpenCode Go is connected and the provider-related log lines, and we'll take another look. Thanks for the thorough report.
feat: port Forge to OpenCode v2.2.5 (#61)