Skip to content

CLI /model picker only exposes first 50 models despite larger provider catalog #35443

Description

@hirenpatelatl

Summary

The interactive /model picker shows providers with total_models > 50, but only loads the first 50 model IDs into the selectable list. As a result, users cannot scroll/page to models after the first 50 even though the picker displays the larger total count.

Repro

  1. Configure a provider with more than 50 available models. In my current install this is Nous Portal.
  2. Run Hermes CLI.
  3. Enter /model.
  4. Select the provider.
  5. Try to navigate past the first 50 models.

Expected

All available models should be reachable from the interactive picker, either by scrolling through the full loaded list or by explicit pagination/search.

Actual

Only the first 50 models are selectable. The provider row may show the real total, but the model selection stage only has the first 50.

In my current install, Hermes reports:

nous: shown=50 total=247 current=False source=hermes

So the inventory knows there are 247 models, but the picker only receives 50.

Code pointers

The CLI picker hard-caps the payload here:

# cli.py
providers = build_models_payload(ctx, max_models=50)["providers"]

build_models_payload() forwards that to list_authenticated_providers():

# hermes_cli/inventory.py
rows = list_authenticated_providers(..., max_models=max_models)

Then list_authenticated_providers() slices the provider model list:

# hermes_cli/model_switch.py
total = len(model_ids)
top = model_ids[:max_models]

The picker viewport/scrolling code appears to work, but it can only scroll through the already-truncated model_list.

Related call sites with the same cap:

  • cli.py — CLI /model picker (max_models=50)
  • gateway/run.py — gateway model picker payload (max_models=50)
  • tui_gateway/server.py — TUI model options/provider rows (max_models=50)
  • hermes_cli/web_server.py — dashboard/API model options (max_models=50)

Environment checked

Current local install is clean and matches upstream origin/main:

HEAD: 6a72af044c44c9a05137bc448bc65ecf0ace5a89
branch: main
remote: git@github.com:NousResearch/hermes-agent.git
status: ## main...origin/main

No local diff in the relevant files.

Possible fixes

For interactive pickers, either:

  1. Load all models by passing a non-truncating value, e.g. support max_models=None and skip slicing when it is None; or
  2. Implement actual provider-model pagination/search so users can access models beyond the first 50.

A quick local mitigation would be to raise the CLI picker cap, but the cleaner fix is to separate display-preview limits from selectable model inventory.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Medium — degraded but workaround existscomp/cliCLI entry point, hermes_cli/, setup wizardcomp/gatewayGateway runner, session dispatch, deliverycomp/tuiTerminal UI (ui-tui/ + tui_gateway/)sweeper:implemented-on-mainSweeper: behavior already present on current maintype/bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions