Skip to content

Bug: TUI shows medium reasoning despite reasoningEffort: high being applied #25126

Closed as not planned

Description

@pangialernios

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

  1. 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"
    }
  }
}
  1. Restart OpenCode.
  2. Check the TUI model badge.
  3. Run:
    opencode debug agent orchestrator
    It shows:
"options": {
  "reasoningEffort": "high",
  "textVerbosity": "low",
  "reasoningSummary": "auto"
}
  1. The TUI still displays openai/gpt-5.5 medium.
  2. 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

Image

Operating System

macOS 26.4.1

Terminal

macOS terminal, zsh shell

Activity

  1. added
    opentuiThis relates to changes in v1.0, now that opencode uses opentui
    on Apr 30, 2026
  2. github-actions commented on Apr 30, 2026

    @github-actions
    Contributor

    This issue might be a duplicate of existing issues. Please check:

  3. removed
    bugSomething isn't working
    opentuiThis relates to changes in v1.0, now that opencode uses opentui
    on May 3, 2026
  4. Tian99Yu commented on Jun 21, 2026

    @Tian99Yu

    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.json and TUI -> switch model variant. TUI variant, if selected, will overwrite the custom agent configuration in opencode.json. If the TUI variant is selected as Default, it will use what is configured in the custom agent.

    Image (The TUI Variant I am talking about)

    Besides, ~/.local/state/opencode/model.json caches 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.json to 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.

  5. simbesh commented on Jul 7, 2026

    @simbesh

    @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

  6. github-actions commented on Sep 6, 2026

    @github-actions
    Contributor

    To stay organized issues are automatically closed after 60 days of no activity. If the issue is still relevant please open a new one.

  7. ahnpnl commented on Sep 24, 2026

    @ahnpnl

    I made a workaround that I manually modified .local/state/opencode/model.json to have something like this

    {
      "recent":[],
      "favorite":[],
      "variant":{
        "openai/gpt-sol-xhigh":"xhigh",
        "openai/gpt-sol-high":"high",
        "openai/gpt-sol-medium":"medium",
        "openai/gpt-luna-none":"none"
      }
    }
    

    the keys in variants would be either the model ids or the alias of model ids. This will allow TUI to display the correct variant

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions