hermes - 💡(How to fix) Fix Feature: non-interactive, parseable model listing per provider [2 pull requests]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

Fix Action

Fixed

Code Example

hermes model list --provider openai-codex --json
# -> ["gpt-5.3-codex", "gpt-5.2-codex", ...]

---

GET /v1/providers/<provider>/models
RAW_BUFFERClick to expand / collapse

Problem

There's no programmatic way to ask hermes-agent "what models does provider X offer?" — which downstream clients (e.g. Hermes Desktop building a model-picker autocomplete) need.

What exists today, and why none of it works for a client:

  • hermes model — interactive-only (_require_tty); no --json / --list / non-interactive mode.
  • API server /v1/models — returns only {"id": "hermes-agent"}, never the underlying provider's catalog.
  • model-catalog.json (the published catalog) — currently carries only ~2 providers (openrouter, nous); none of the OAuth/subscription providers.
  • hermes_cli/models.py::provider_model_ids(provider) — this has exactly the right data (curated lists, and a live account-aware query for openai-codex via the OAuth token), but it's an internal Python function with no CLI or HTTP surface.

So the only way for an external client to get, say, the Codex model list is to import an internal module (from hermes_cli.models import provider_model_ids) — a private API with no stability contract.

Request

A non-interactive, parseable way to call provider_model_ids (and ideally list_available_providers). Either:

Option A — CLI subcommand

hermes model list --provider openai-codex --json
# -> ["gpt-5.3-codex", "gpt-5.2-codex", ...]

A list subcommand under model that skips the TTY requirement and prints JSON.

Option B — API server endpoint

GET /v1/providers/<provider>/models

on the local API server, so remote/desktop clients can query it too.

Either would let clients surface accurate, per-account model lists (including Codex's live list) without reaching into internal modules. Option A is probably the smaller change since provider_model_ids already exists — it just needs a thin non-interactive wrapper.

Context: Hermes Desktop (fathah/hermes-desktop) added live /v1/models discovery for API-key providers, but OAuth/subscription providers (Codex, Gemini CLI, etc.) have no equivalent — this is the missing piece.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING