You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently hermes model / /model shows all providers from the hardcoded _PROVIDER_MODELS catalog, regardless of whether the user has credentials configured for them.
This means:
Unconfigured providers pollute the list. OpenRouter, Anthropic, Copilot, MiniMax, etc. all appear even when the user only has DEEPSEEK_API_KEY set. Selecting them silently fails or throws auth errors.
The user cannot control what appears. There is no allowlist, no models block in config.yaml to restrict the picker.
OpenRouter is hardcoded as a first-class provider in the source. Users who don't use OpenRouter cannot remove it from their model list.
The current workaround is manual: users must remember which providers they have keys for and avoid selecting the others. No UI indication of "unconfigured" in the picker.
Problem
Currently
hermes model//modelshows all providers from the hardcoded_PROVIDER_MODELScatalog, regardless of whether the user has credentials configured for them.This means:
DEEPSEEK_API_KEYset. Selecting them silently fails or throws auth errors.modelsblock inconfig.yamlto restrict the picker.Related issues:
OpenClaw solves this elegantly with
agents.defaults.models— an explicit allowlist:{ "agents": { "defaults": { "models": { "deepseek/deepseek-v4-pro": {}, "deepseek/deepseek-chat": {} } } } }Only listed models appear in
/model.Proposed Solution
Add a
model.allowlistsection toconfig.yaml:Behavior:
allowlistis set →/modelonly shows those entries. Providers with zero allowed models are hidden.allowlistis not set → current behavior (backward compatible; optionally sort configured-first as per fix(model): sort configured providers first in hermes model wizard #3227).hermes modelinteractive picker respects the allowlist./modelslash command respects the allowlist.Why sorting alone (#3227) is insufficient
Sorting configured providers first helps, but:
Scope
config.yamlschema:model.allowlisthermes model/ TUI/modelpicker respects allowlist/modelslash command respects allowlist