openclaw - 💡(How to fix) Fix 5.16-beta.5: /models browse picker duplicates models under both canonical provider and CLI runtime alias provider

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

On 2026.5.16-beta.5, the /models browse picker in Telegram (and presumably other channels) shows the same model entries duplicated under two provider banners when the model has agentRuntime: claude-cli (or codex-cli, google-gemini-cli) configured. The user sees N models under anthropic AND the same N models under claude-cli — twice the listings for the same underlying models, which makes the picker noisy and confusing.

Root Cause

isModelsBrowseVisibleProvider in dist/commands-models-*.js:

function isModelsBrowseVisibleProvider(provider) {
  const normalized = normalizeProviderId(provider);
  return isCliRuntimeProvider(normalized) || isModelPickerVisibleProvider(normalized);
}

Both isCliRuntimeProvider("claude-cli") → true AND isModelPickerVisibleProvider("anthropic") → true. The picker iterates by provider and lists matching models under each — anthropic models with claude-cli runtime get listed under both visible provider banners.

openclaw models list --provider claude-cli correctly returns "No models found" (CLI doesn't double-list). Only the browse picker shows the dupe.

Code Example

function isModelsBrowseVisibleProvider(provider) {
  const normalized = normalizeProviderId(provider);
  return isCliRuntimeProvider(normalized) || isModelPickerVisibleProvider(normalized);
}
RAW_BUFFERClick to expand / collapse

Summary

On 2026.5.16-beta.5, the /models browse picker in Telegram (and presumably other channels) shows the same model entries duplicated under two provider banners when the model has agentRuntime: claude-cli (or codex-cli, google-gemini-cli) configured. The user sees N models under anthropic AND the same N models under claude-cli — twice the listings for the same underlying models, which makes the picker noisy and confusing.

Reproduction

  1. Config: agents.defaults.models["anthropic/claude-opus-4-7"].agentRuntime = { id: "claude-cli" } (and other anthropic entries similarly)
  2. Have valid anthropic:claude-cli auth profile (Claude CLI logged in)
  3. Open the /models browse picker in Telegram

Expected: Each model appears once. Either under its canonical provider (anthropic) or under the CLI runtime view (claude-cli), not both.

Actual: The picker shows anthropic (6) and claude-cli (6) — same 6 models displayed twice.

Root cause

isModelsBrowseVisibleProvider in dist/commands-models-*.js:

function isModelsBrowseVisibleProvider(provider) {
  const normalized = normalizeProviderId(provider);
  return isCliRuntimeProvider(normalized) || isModelPickerVisibleProvider(normalized);
}

Both isCliRuntimeProvider("claude-cli") → true AND isModelPickerVisibleProvider("anthropic") → true. The picker iterates by provider and lists matching models under each — anthropic models with claude-cli runtime get listed under both visible provider banners.

openclaw models list --provider claude-cli correctly returns "No models found" (CLI doesn't double-list). Only the browse picker shows the dupe.

Suggested fix

When a model is listed under its canonical provider, exclude it from the CLI runtime provider's listing (or vice versa) — pick one. Or add a config flag channels.telegram.modelPicker.hideRuntimeProviderListings: true so users can opt out.

Environment

  • OpenClaw: 2026.5.16-beta.5 (5dab5ce)
  • Lossless-claw: 0.10.0
  • macOS 26.3.1 arm64
  • Channel: Telegram

Related

  • Per-model agentRuntime (#82243) ships fine but interacts unexpectedly with the CLI-runtime browse fallback.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING