Skip to content

TUI model picker shows all 296 provider models instead of only user-configured ones #18816

@fwends

Description

@fwends

Bug Description

The TUI /model picker displays all 296 models from every provider, instead of showing only the models the user has configured in their openclaw.json.

Screenshot

User has ~6 models configured in agents.defaults.models and custom providers. When they type /model and search for 'kimi', they get 9+ Kimi variants from providers they don't have set up, making it nearly impossible to find the one they actually configured (kimi-coding/k2p5).

The counter shows 1/296 — 296 models for a user with 6 configured.

Expected Behavior

The model picker should default to showing only models the user has configured in:

  • agents.defaults.models
  • models.providers[].models[]
  • Or models with active API keys/auth

There should be an option to browse all available models (e.g., a toggle or separate command), but the default picker should show only configured/active models.

Why This Matters

  1. User configured kimi-coding/k2p5 but the picker shows 9 Kimi variants, most of which won't work because they're not set up
  2. Selecting an unconfigured model gives a cryptic model not allowed error
  3. Users can't remember the exact model slug among hundreds of similar names
  4. The search helps but doesn't solve the core problem — too much noise, not enough signal

Suggested Fix

  • Add a config option like models.pickerMode: "configured" | "all" (default: configured)
  • Or split into two commands: /model (configured only) and /model-browse (all available)
  • Show a visual indicator (star, checkmark) next to configured models when browsing all
  • Show aliases prominently (e.g., 'Kimi Code' instead of just 'kimi-coding/k2p5')

Environment

  • OpenClaw TUI
  • macOS
  • User has custom kimi-coding provider + openrouter configured in openclaw.json

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions