Skip to content

Expose OpenCode reasoning levels in the UI #2144

Description

@coygeek

When using the OpenCode provider in T3 Code, I can select the model from the composer footer, but there is no clear or obvious way in the main UI to choose the model's reasoning level/variant.

This is confusing because the underlying providers do support reasoning controls:

  • GitHub Copilot CLI exposes reasoning effort for GPT-5.4 as Low, Medium, High
  • OpenCode CLI exposes reasoning/variant levels up to xhigh

In T3 Code, the current OpenCode UI makes model selection visible, but reasoning selection is effectively hidden or missing from the normal model-selection flow.

Current behavior

  • The footer model picker only exposes provider/model selection
  • OpenCode reasoning is represented internally as variant
  • OpenCode capabilities already appear to be available from the runtime layer, but they are not surfaced clearly enough in the primary UI

Expected behavior

Expose OpenCode reasoning levels in the user-facing composer controls, ideally alongside model selection or as another first-class visible control.

Examples:

  • low
  • medium
  • high
  • xhigh

If OpenCode uses the term variant internally, that can still map to a user-facing “Reasoning” control.

Why this matters

  • Reasoning depth is a major quality/speed tradeoff, not an advanced hidden setting
  • Users coming from Copilot CLI or OpenCode CLI expect to configure it explicitly
  • T3 Code already exposes model choice, so reasoning level feels like a missing part of the same control surface
  • OpenCode’s higher ceiling (xhigh) is especially useful and should be discoverable

Repo notes

There already seems to be backend/UI plumbing for this:

  • apps/server/src/provider/opencodeRuntime.ts builds variantOptions
  • packages/contracts/src/model.ts stores OpenCode options as variant
  • apps/web/src/components/chat/TraitsPicker.tsx can render OpenCode Variant
  • apps/web/src/components/chat/ProviderModelPicker.tsx only renders provider/model selection

So this looks less like a capability gap and more like a discoverability/UI exposure gap.

Suggested acceptance criteria

  • OpenCode reasoning/variant is visible in the composer UI without requiring hidden or discoverability-poor navigation
  • Users can switch reasoning level before sending a message
  • The selected reasoning level is shown in the footer/composer state
  • xhigh is exposed when supported by the selected OpenCode model

Repro

  1. Open T3 Code
  2. Select OpenCode
  3. Pick a model
  4. Observe that model selection is available, but reasoning level is not clearly exposed in the main UI
  5. Compare with Copilot CLI/OpenCode CLI, where reasoning selection is explicit

Metadata

Metadata

Assignees

No one assigned

    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