Before submitting
Area
apps/server
Steps to reproduce
- Configure a Claude provider to use an Anthropic-compatible gateway/proxy such as CLIProxyAPI via
ANTHROPIC_BASE_URL.
- Enable Claude Code gateway model discovery:
CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1
- Ensure the gateway exposes custom model IDs from its
/v1/models endpoint.
- Start Claude Code with the same environment and run
/model.
- Confirm the gateway-provided/custom models appear in Claude Code’s
/model picker.
- Start/use the same Claude provider from T3 Code.
- 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.
Before submitting
Area
apps/server
Steps to reproduce
ANTHROPIC_BASE_URL./v1/modelsendpoint./model./modelpicker.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/modelsendpoint and visible in Claude Code’s/modelpicker 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 whenCLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1is 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.