Skip to content

[Feature]: /models slash command for listing available models #3500

@sonnivasquez

Description

@sonnivasquez

Problem or Use Case

When using Hermes from Telegram or other gateway surfaces, there is no clear built-in way to list the models available for the current provider. /model is useful for switching models, but it does not reliably act as a discoverable “list models” command in messaging contexts.

This makes it harder to:

  • discover valid model names
  • switch providers confidently
  • use external or custom providers without trial-and-error
  • work efficiently from Telegram, where there is no rich interactive model picker

Right now, the workaround is to manually query provider endpoints like hermes model outside the channel, which breaks the flow and is not obvious to users. A dedicated /models command would solve this by making model discovery a first-class part of the interface.

Proposed Solution

Add a dedicated /models slash command that lists available models for the current provider by default, and optionally for a specific provider when one is passed as an argument.

Proposed behavior:

  • /models → list models for the current active provider
  • /models <provider> → list models for that provider
  • examples:
    • /models
    • /models openrouter
    • /models anthropic
    • /models openai

Output behavior:

  • plain text, compact, messaging-friendly
  • one model per line
  • mark the currently active model if possible
  • if the provider supports live model discovery, fetch from its /models endpoint
  • if live discovery is not supported, fall back to Hermes’ built-in catalog for that provider
  • if neither is available, return a clear error message

For custom providers:

  • support named custom providers too, for example:
    • /models custom:lmstudio
    • /models custom:work
  • for OpenAI-compatible custom endpoints, fetch from <base_url>/models

Telegram/Discord UX:

  • keep the response short and readable
  • if the list is long, paginate or truncate with a “show more” pattern
  • the command should work even if the Telegram slash-command menu is not refreshed, as long as the user types it manually

Nice to have:

  • allow easy follow-up with /model <provider:model>
  • optionally group results by provider family or show small metadata like “current” or “default”

Alternatives Considered

No response

Feature Type

New tool

Scope

Small (single file, < 50 lines)

Contribution

  • I'd like to implement this myself and submit a PR

Metadata

Metadata

Assignees

No one assigned

    Labels

    P3Low — cosmetic, nice to havecomp/cliCLI entry point, hermes_cli/, setup wizardcomp/gatewayGateway runner, session dispatch, deliveryplatform/telegramTelegram bot adaptertype/featureNew feature or request

    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