Repository navigation
Description
Description
Description
The OpenCode TUI model badge shows openai/gpt-5.5 medium even when the resolved agent config has reasoningEffort: "high" and OpenAI receives the configured reasoning effort.
This appears to be a display/model-label issue rather than a request configuration issue.
Environment
- OpenCode version:
1.14.30 - Provider:
openai - Model:
gpt-5.5 - OS: macOS
Config
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["oh-my-opencode-slim"],
"provider": {
"openai": {
"models": {
"gpt-5.5": {
"options": {
"reasoningEffort": "high",
"textVerbosity": "low",
"reasoningSummary": "auto"
}
}
}
}
},
"agent": {
"orchestrator": {
"reasoningEffort": "high",
"textVerbosity": "low",
"reasoningSummary": "auto"
}
}
}Expected behavior
The TUI should show the effective reasoning effort, e.g.:
openai/gpt-5.5 high
or otherwise indicate that reasoningEffort: high is active.
Actual behavior
The TUI still shows:
openai/gpt-5.5 medium
even after restarting OpenCode.
Verification
opencode debug agent orchestrator shows:
"options": {
"reasoningEffort": "high",
"textVerbosity": "low",
"reasoningSummary": "auto"
},
"variant": "high"
To confirm the option is actually passed through, I temporarily set:
"reasoningEffort": "definitely-invalid"
Then ran:
opencode run "say hi" --agent orchestrator --print-logs --log-level DEBUG
OpenAI rejected the request with:
{
"error": {
"message": "Invalid value: 'definitely-invalid'. Supported values are: 'none', 'minimal', 'low', 'medium', 'high', and 'xhigh'.",
"type": "invalid_request_error",
"param": "reasoning.effort",
"code": "invalid_value"
}
}
The debug log showed OpenCode sent:
"reasoning": {
"effort": "definitely-invalid",
"summary": "auto"
}
So reasoningEffort is passed through correctly, but the TUI badge still displays medium.
Possible cause
The TUI may be rendering the model’s default/internal variant label instead of the effective agent/provider reasoningEffort option.
Plugins
oh-my-opencode-slim But this appears reproducible without the plugin by setting reasoningEffort directly in opencode.json.
OpenCode version
1.14.30
Steps to reproduce
- Configure OpenAI GPT-5.5 with high reasoning effort:
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"openai": {
"models": {
"gpt-5.5": {
"options": {
"reasoningEffort": "high",
"textVerbosity": "low",
"reasoningSummary": "auto"
}
}
}
}
},
"agent": {
"orchestrator": {
"model": "openai/gpt-5.5",
"reasoningEffort": "high",
"textVerbosity": "low",
"reasoningSummary": "auto"
}
}
}- Restart OpenCode.
- Check the TUI model badge.
- Run:
opencode debug agent orchestrator
It shows:
"options": {
"reasoningEffort": "high",
"textVerbosity": "low",
"reasoningSummary": "auto"
}
- The TUI still displays openai/gpt-5.5 medium.
- To verify the option is passed through, temporarily set:
"reasoningEffort": "definitely-invalid"
Then run:
opencode run "say hi" --agent orchestrator --print-logs --log-level DEBUG
OpenAI rejects the request with:
{
"message": "Invalid value: 'definitely-invalid'. Supported values are: 'none', 'minimal', 'low', 'medium', 'high', and 'xhigh'.",
"param": "reasoning.effort"
}
So reasoningEffort is being passed to OpenAI, but the TUI still displays medium.
Screenshot and/or share link
Operating System
macOS 26.4.1
Terminal
macOS terminal, zsh shell
Activity
github-actions commentedon Apr 30, 2026
This issue might be a duplicate of existing issues. Please check:
reasoningEffort, only the model's default variant is displayed.reasoningEffortnot being reflected correctly in the TUI model badge.Tian99Yu commentedon Jun 21, 2026
I encountered a similar problem and dug into the source code with manual validation. I wish more info like below could be added to the official documentation to explain. I hope this helps.
The model reasoning effort has two settings in two locations:
opencode.jsonandTUI -> switch model variant. TUI variant, if selected, will overwrite the custom agent configuration inopencode.json. If the TUI variant is selected asDefault, it will use what is configured in the custom agent.Besides,
~/.local/state/opencode/model.jsoncaches the TUI selection, which results in the issue mentioned above. Basically, if the user changes the TUI variant setting, such a change will be cached and reused. This results in the overwrite behaviour (TUI overwrite opencode.json for custom agent).I tried to validate it by running a local server to receive the opencode request sent out. I also modified the project local
opencode.jsonto direct model requests to that local server. This way, I can capture the actual reasoning effort in the request sent out. Others can use a similar idea for validation.simbesh commentedon Jul 7, 2026
@Tian99Yu I confirm the same for me
the issue is then when starting a thread with no reasoning so it uses the configured varient, It then sets that configured variant as the default in the TUI. So when you open up a new TUI, it's set to that for all the agents, and you have to recycle it back to empty
github-actions commentedon Sep 6, 2026
To stay organized issues are automatically closed after 60 days of no activity. If the issue is still relevant please open a new one.
ahnpnl commentedon Sep 24, 2026
I made a workaround that I manually modified
.local/state/opencode/model.jsonto have something like thisthe keys in
variantswould be either the model ids or the alias of model ids. This will allow TUI to display the correct variant