Skip to content

[Bug]: Claude model picker not synchronized with Claude Code model list, unlike Codex #13875

Description

@rodriguezst

Before submitting

  • I searched existing issues and did not find a duplicate.
  • I included enough detail to reproduce or investigate the problem.

Area

apps/server

Steps to reproduce

  1. Configure a Claude provider to use an Anthropic-compatible gateway/proxy such as CLIProxyAPI via ANTHROPIC_BASE_URL.
  2. Enable Claude Code gateway model discovery:
    CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1
  3. Ensure the gateway exposes custom model IDs from its /v1/models endpoint.
  4. Start Claude Code with the same environment and run /model.
  5. Confirm the gateway-provided/custom models appear in Claude Code’s /model picker.
  6. Start/use the same Claude provider from T3 Code.
  7. Open T3 Code’s model picker.

Expected behavior

T3 Code should show the model inventory reported by the running Claude Code instance / Claude Agent SDK.

When Claude Code gateway discovery is enabled, models discovered from the gateway’s /v1/models endpoint and visible in Claude Code’s /model picker should also be selectable in T3 Code.

This should be provider-agnostic: T3 should consume the models Claude Code reports rather than implement CLIProxyAPI-specific or gateway-specific discovery.

If live model discovery is unavailable, T3 can continue falling back to its bundled Claude model catalog and manually configured custom models.

Actual behavior

Claude Code correctly discovers the gateway models and shows them in /model, but T3 Code’s Claude model picker does not show them.

T3 currently builds the Claude picker from its bundled/version-filtered Claude model catalog plus customModels, instead of using the model inventory already returned during Claude Agent SDK initialization.

This differs from the Codex integration, where T3 obtains the available models dynamically from Codex.

The mismatch is particularly visible with Anthropic-compatible proxies/gateways. For example, CLIProxyAPI can expose additional model IDs through /v1/models; Claude Code sees them when CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1 is enabled, but T3 still presents its static Claude catalog unless every model is added manually in T3 settings.

The Claude provider already calls initializationResult() during its capability probe, so the SDK-reported model list should be available without T3 making a separate request to the gateway.

Impact

Cosmetic issue

Version or commit

main @ 75d63d6

Environment

No response

Logs or stack traces

Screenshots, recordings, or supporting files

No response

Workaround

Add every gateway model manually under the Claude provider’s custom models in T3 Code.

This works for a fixed list, but duplicates model discovery that Claude Code already performs and becomes stale when the gateway’s available models change.

No activity

Activity on this issue will appear here.

Activity

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

    acceptedfeature request acceptedenhancementRequested improvement or new capability.via-triageFiled through npx t3 triage

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions