From 463980c0e4c565ee6426e0be127a6da97fcb1314 Mon Sep 17 00:00:00 2001 From: teknium1 <127238744+teknium1@users.noreply.github.com> Date: Tue, 22 Sep 2026 09:47:22 -0700 Subject: [PATCH] feat(models): add anthropic/claude-opus-5.5 to OpenRouter and Nous Portal catalogs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Anthropic released Claude Opus 5.5. Both the OpenRouter catalog and the Nous Portal /v1/models endpoint serve it (verified with a live max_tokens=16 completion on each route — echoed model matches, usage.cost billed). - hermes_cli/models_catalog_static.py: opus-5.5 in OPENROUTER_MODELS, above opus-5 and below the fable-5 flagship pair. The nous list is derived from the OpenRouter tuple, so the Portal picker picks it up from the same edit. - website/static/api/model-catalog.json: regenerated via scripts/build_model_catalog.py. Provider-agnostic metadata already resolves for the new slug — no edits needed: DEFAULT_CONTEXT_LENGTHS key claude-opus-5 substring-matches to 1,000,000 (matches live OpenRouter metadata), and the claude-opus-5 reasoning-timeout prefix matches through the "." separator to the 240s floor. Both routes bill via official_models_api live pricing, so no _OFFICIAL_DOCS_PRICING snapshot entry. --- hermes_cli/models_catalog_static.py | 4 ++-- website/static/api/model-catalog.json | 9 ++++++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/hermes_cli/models_catalog_static.py b/hermes_cli/models_catalog_static.py index 6ff3cfb7ab..03860d20f6 100644 --- a/hermes_cli/models_catalog_static.py +++ b/hermes_cli/models_catalog_static.py @@ -29,8 +29,8 @@ _OPENROUTER_DESCRIPTIONS = { OPENROUTER_MODELS: list[tuple[str, str]] = [ (mid, _OPENROUTER_DESCRIPTIONS.get(mid, "free" if mid.endswith(":free") else "")) for mid in ( - "anthropic/claude-fable-5.1", "anthropic/claude-fable-5", "anthropic/claude-opus-5", - "anthropic/claude-opus-5-fast", "anthropic/claude-opus-4.8", "anthropic/claude-opus-4.8-fast", + "anthropic/claude-fable-5.1", "anthropic/claude-fable-5", "anthropic/claude-opus-5.5", + "anthropic/claude-opus-5", "anthropic/claude-opus-5-fast", "anthropic/claude-opus-4.8", "anthropic/claude-opus-4.8-fast", "anthropic/claude-sonnet-5", "anthropic/claude-haiku-4.5", "openai/gpt-6-astra", "openai/gpt-6-astra-fast", "openai/gpt-6-astra-flex", "openai/gpt-6-astra-pro", "openai/gpt-6-astra-pro-fast", "openai/gpt-6-astra-pro-flex", "openai/gpt-5.6-sol", "openai/gpt-5.6-sol-pro", diff --git a/website/static/api/model-catalog.json b/website/static/api/model-catalog.json index 24852e7ef6..042287776a 100644 --- a/website/static/api/model-catalog.json +++ b/website/static/api/model-catalog.json @@ -1,6 +1,6 @@ { "version": 1, - "updated_at": "2026-09-21T21:31:59Z", + "updated_at": "2026-09-22T16:44:02Z", "metadata": { "source": "hermes-agent repo", "docs": "https://hermes-agent.nousresearch.com/docs/reference/model-catalog" @@ -20,6 +20,10 @@ "id": "anthropic/claude-fable-5", "description": "" }, + { + "id": "anthropic/claude-opus-5.5", + "description": "" + }, { "id": "anthropic/claude-opus-5", "description": "" @@ -283,6 +287,9 @@ { "id": "anthropic/claude-fable-5" }, + { + "id": "anthropic/claude-opus-5.5" + }, { "id": "anthropic/claude-opus-5" },