Bug type
Behavior bug (incorrect output/state without crash)
Beta release blocker
No
Summary
When using the /models command or the model dropdown in the Web chat, the UI displays the entire model catalog (900+ entries) rather than filtering to only the providers and models the user has configured authentication for.
Steps to reproduce
- Configure authentication for one or two providers (e.g.,
ollama, google)
- Open the Web chat and click the model dropdown, or run
/models in chat
- Observe 900+ model entries from all providers, including ones with no auth configured
Expected behavior
Only models from providers with valid authentication configured should appear in the picker by default.
Actual behavior
All models from the full catalog are shown. Unauthenticated providers are included but annotated with an "auth missing" hint rather than being hidden.
OpenClaw version
2026.4.26
Operating system
Ubuntu 24.04
Install method
npm
Model
ollama/gpt-oss
Provider / routing chain
openclaw -> ollama cloud
Additional provider/model setup details
No response
Logs, screenshots, and evidence
In `src/flows/model-picker.ts`, `addModelSelectOption` adds unauthenticated provider models to the list instead of skipping them:
Root Cause (code pointer):
// src/flows/model-picker.ts ~line 224
if (!params.hasAuth(params.entry.provider)) {
hints.push("auth missing"); // <-- should return early here instead
}
params.options.push({ ... }); // model is still added
Impact and severity
Annoying Workarounds:
- Use
/models <provider> to filter to a specific provider
- Configure
agents.defaults.models as an allowlist in your config:
{ agent: { models: { "anthropic/claude-sonnet-4-6": { alias: "Sonnet" } } } }
Additional information
Suggested Fix:
Add an early return when !params.hasAuth(params.entry.provider) (or make it opt-in via a flag like --all) so that unauthenticated providers are hidden by default in the interactive picker.
Citations
File: src/flows/model-picker.ts (L224-231)
if (!params.hasAuth(params.entry.provider)) {
hints.push("auth missing");
}
params.options.push({
value: key,
label: key,
hint: hints.length > 0 ? hints.join(" · ") : undefined,
});
File: src/flows/model-picker.ts (L363-363)
let next = params.models.filter((entry) => isModelPickerVisibleProvider(entry.provider));
Bug type
Behavior bug (incorrect output/state without crash)
Beta release blocker
No
Summary
When using the
/modelscommand or the model dropdown in the Web chat, the UI displays the entire model catalog (900+ entries) rather than filtering to only the providers and models the user has configured authentication for.Steps to reproduce
ollama,google)/modelsin chatExpected behavior
Only models from providers with valid authentication configured should appear in the picker by default.
Actual behavior
All models from the full catalog are shown. Unauthenticated providers are included but annotated with an
"auth missing"hint rather than being hidden.OpenClaw version
2026.4.26
Operating system
Ubuntu 24.04
Install method
npm
Model
ollama/gpt-oss
Provider / routing chain
openclaw -> ollama cloud
Additional provider/model setup details
No response
Logs, screenshots, and evidence
Impact and severity
Annoying Workarounds:
/models <provider>to filter to a specific provideragents.defaults.modelsas an allowlist in your config:Additional information
Suggested Fix:
Add an early
returnwhen!params.hasAuth(params.entry.provider)(or make it opt-in via a flag like--all) so that unauthenticated providers are hidden by default in the interactive picker.Citations
File: src/flows/model-picker.ts (L224-231)
File: src/flows/model-picker.ts (L363-363)