Skip to content

[FEATURE]: rename model display name in the model manager dialog #56356

Open

Description

@AK007a

Feature hasn't been suggested before

  • I have verified this feature I'm about to request hasn't been suggested before.

Describe the enhancement you want to request

Problem

The desktop Manage models dialog (dialog.model.manage) can only toggle which models are visible in the
picker. There is no way to edit a model's display name. The dialog's entire set of i18n strings is
dialog.model.manage, dialog.model.manage.description, dialog.model.select.title,
dialog.model.search.placeholder, dialog.model.empty and the dialog.model.unpaid.* group — there is no
rename / edit-name affordance anywhere in it.

Display names can currently only be set by hand in opencode.json(c) under
providers.<providerID>.models.<modelID>.name (the documented "Aliases" section of the Models page).

This hurts most with custom OpenAI-compatible providers whose inventory is discovered from an upstream
gateway's /v1/models endpoint:

  • The gateway returns opaque ids such as qdc/dfmodel, qdc/kmodel, cbcn/hy3. In the picker these are
    literally what you read, so you cannot tell what the model actually is.
  • The same underlying model is frequently offered by several upstreams at once (aggregating gateways,
    a local gateway, and a direct provider). After setting a friendly name for one of them, it collides with the
    others: e.g. qdc/dfmodel and amd-ai/DeepSeek-V4-Flash both render as DeepSeek-V4-Flash.
  • Some of those duplicates are free and some are billed. Picking the wrong entry silently consumes paid quota
    instead of using the free one, and nothing in the picker warns you.

Proposed solution

Add an inline rename / edit display name action to the Manage models dialog that writes name into the
matching providers.<providerID>.models.<modelID> entry of the highest-precedence config document, using the
same mechanism other per-model UI state already uses. Config changes are hot-reloaded, so no restart is needed.

Nice-to-have: show the owning provider next to each model in the dialog and in the picker, so entries that share
a display name can be told apart (#49309, #50322).

Why a plugin cannot fill this gap

Plugin UI extension points (@opencode/plugin/tui — slots, dialogs, routes, keymaps) exist only for the terminal
TUI. The desktop app bundle contains no plugin UI mounting points, and the config-write API
(PATCH /api/experimental/config) accepts only the shell field, so plugins cannot set
providers.*.models.*.name through the API either. This has to be built into the app.

Related

Environment

  • OpenCode 2.0.32 desktop, Windows 11
  • Providers are custom OpenAI-compatible gateways declared in opencode.jsonc with settings.modelsDiscovery

Activity

  1. opencode-agent commented on Oct 17, 2026

    @opencode-agent
    Contributor

    Thanks for the detailed request! You'd like a rename / edit-display-name action in the desktop Manage models dialog. It would write name into providers.<providerID>.models.<modelID> in your config, so discovered gateway models with opaque IDs, or the same model offered by several providers, can be told apart without editing opencode.jsonc by hand.

    You're right that a plugin can't do this today: the desktop app has no plugin UI mount points yet, and the config patch API doesn't accept per-model fields. Until something lands, the name alias in opencode.jsonc is the workaround. Maintainers will consider the request.

    Related issues and PRs:

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