Skip to content

tui: /models hides several free opencode models unless searched by exact ID #60195

Open

Description

@AndiKod

Summary

In the TUI /models picker, the generic opencode provider only lists a subset of the free models exposed by /api/model. The missing models can still be selected by typing their exact ID in the picker search, and they work when passed with --model. This makes several free models effectively undiscoverable unless the user already knows they exist.

Environment

  • opencode version: 2.2.1
  • OS: Linux 7.0.0-38-generic (Ubuntu 24.04, x86_64)
  • Terminal: WezTerm, TERM=xterm-256color, COLORTERM=truecolor
  • Shell: /bin/bash
  • Install/channel: latest
  • Active plugins: none found in config
  • Account: OpenCode Go connected (opencode auth logout opencode-go not applied; OPENCODE_DISABLE_FREE_MODELS is not set)

Reproduction

  1. Connect an OpenCode account (in this case OpenCode Go).
  2. Open the TUI in a project and run /models.
  3. Expand the generic OpenCode provider (not OpenCode Go).
  4. Observe that only a subset of free models is listed, e.g. Big Pickle, Beam Free, Flint 40B Free, and Nemotron variants.
  5. Note that opencode/glm-5.3-flash-free, opencode/deepseek-v4.1-flash-free, and opencode/mimo-v2.6-flash-free are absent from the list.
  6. Type glm-5.3-flash-free, deepseek-v4.1-flash-free, or mimo-v2.6-flash-free into the /models search field: the model is found and can be selected.
  7. Confirm it works outside the picker:
    opencode run --model opencode/deepseek-v4.1-flash-free "say OK"

Expected Behavior

The generic OpenCode provider in /models should list every enabled model exposed for that provider, including all free models returned by /api/model.

Actual Behavior

The picker lists only part of the opencode provider's free models. Missing entries include:

  • opencode/glm-5.3-flash-free
  • opencode/deepseek-v4.1-flash-free
  • opencode/mimo-v2.6-flash-free

They remain selectable via search and via --model, so this is a display/filtering issue rather than a credential or provider-availability issue.

The server exposes 8 free opencode models via /api/model:

  • opencode/beam-free
  • opencode/big-pickle
  • opencode/deepseek-v4.1-flash-free
  • opencode/flint-40b-free
  • opencode/glm-5.3-flash-free
  • opencode/mimo-v2.6-flash-free
  • opencode/nemotron-3.5-lightning-free
  • opencode/nemotron-3.5-super-vl-free

Additional Context

  • OPENCODE_DISABLE_FREE_MODELS is not set in the shell or in the service environment.
  • /reload and opencode service restart do not change the picker contents.
  • No project config or policy was found that disables these models.
  • Workaround: search the exact model ID in /models, or set it in config / use opencode run --model ....
  • Impact: users may believe only 4 free models are available and never discover the others.

Activity

  1. opencodejr commented on Oct 29, 2026

    @opencodejr

    Thanks for the detailed report. I tried this on 2.2.1 and couldn't reproduce it.

    • /api/model returns all eight free opencode models, and they all have the same cost data (input price 0).
    • I ran the /models picker's grouping and sorting code against that list, with an empty search and nothing in Favorites or Recent. All eight end up together: under OpenCode, or in a separate Free group at the very bottom of the list if the new-designs experiment is on.

    With an empty search, the picker leaves a model out of its provider group in one case only: when it is already listed under Favorites or Recent at the top. This is intended, so the same model isn't listed twice. Search skips those sections, which matches what you saw when searching.

    Could you check a few things?

    1. With the search box empty, are GLM-5.3-Flash Free, DeepSeek V4.1 Flash Free or MiMo-V2.6-Flash Free listed under Favorites or Recent at the top?
    2. Is there a Free group at the very end of the list?
    3. If neither, please post a screenshot of the whole /models list, scrolled to the bottom, and the output of opencode api GET /api/model | jq -c '.data[] | select(.providerID=="opencode") | {id, cost, status, enabled}'.

    If the models are in Recent or Favorites, the picker is working as designed. Listing them under their provider as well would then be a feature request.

  2. AndiKod commented on Oct 31, 2026

    @AndiKod
    Author
    Image Image

    Hi. Sorry for the response delay.

    I'm now on the v2.2.5 version and on my side the listing of available Free Models in the basic OpenCode provider seems to be fixed, witch is great. Yet, it looks like the "Beam Free" model from the OpenCode-Go list/provider is only shown via search, but not in the normal list. I'm testing it as daily driver for the trivial chats so I can confirm it's indeed available & works.

    To get around that, I now have a Bash script printing my usage meters and all the available Free models of the moment, on all providers, so I can compare with the TUI menu lists.

  3. opencodejr commented on Nov 1, 2026

    @opencodejr

    Closing this for now because we haven't heard back. On 2.2.1, /api/model returned all eight free opencode models with the same cost data. In the picker's grouping logic they all stay together, either under OpenCode or in the Free group at the bottom of the list. With an empty search, the picker takes a model out of its provider group only when it is already shown under Favorites or Recent at the top, and that's intended.

    If the three models still don't show up anywhere in the list, please comment here with a screenshot of the whole /models list, scrolled to the bottom, and the opencode api GET /api/model output from my earlier comment, and we can reopen this. If they turn out to be under Recent or Favorites and you'd like them listed under their provider as well, please open a feature request for that.

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

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