hermes - ✅(Solved) Fix [Bug]: TUI /model picker does not show custom_providers defined in config.yaml [1 pull requests, 1 comments, 2 participants]

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…
GitHub stats
NousResearch/hermes-agent#16438Fetched 2026-04-28 06:53:17
View on GitHub
Comments
1
Participants
2
Timeline
6
Reactions
0
Participants
Timeline (top)
labeled ×4commented ×1cross-referenced ×1

Error Message

Additional Logs / Traceback (optional)

Root Cause

Root Cause Analysis (optional)

Fix Action

Fixed

PR fix notes

PR #16460: fix(cli): include custom_providers in list_available_providers for TUI /model picker

Description (problem / solution / changelog)

What does this PR do?

Fixes a bug where the TUI /model picker does not display user-defined custom_providers from config.yaml. Only built-in/canonical providers were shown because list_available_providers() only iterated over CANONICAL_PROVIDERS.

The fix appends custom providers (loaded via get_compatible_custom_providers()) to the provider list with a custom:<name> id scheme, with deduplication by name.

Related Issue

Fixes #16438

Type of Change

  • 🐛 Bug fix (non-breaking change that fixes an issue)

Changes Made

  • hermes_cli/models.py: After building the canonical provider list, load user-defined custom providers from config and append them with custom:<name> ids, marked as authenticated
  • tests/hermes_cli/test_models.py: Added 5 tests covering custom provider inclusion, deduplication, authentication marking, empty list, and config error resilience

How to Test

  1. Add custom_providers entries to ~/.hermes/config.yaml
  2. Launch hermes --tui and type /model
  3. Custom providers should now appear in the picker
  4. Run the targeted test: pytest tests/hermes_cli/test_models.py -v
  5. Run full suite: pytest tests/ -q --ignore=tests/integration --ignore=tests/e2e

Checklist

Code

  • I've read the Contributing Guide
  • My commit messages follow Conventional Commits
  • I searched for existing PRs to make sure this isn't a duplicate
  • My PR contains only changes related to this fix
  • I've run pytest tests/ -q and all tests pass
  • I've added tests for my changes
  • I've tested on my platform: macOS (Darwin 25.4.0, Apple Silicon), Python 3.11

Documentation & Housekeeping

  • Updated relevant documentation — or N/A
  • Updated cli-config.yaml.example — or N/A
  • Updated contributing / agents docs — or N/A
  • Considered cross-platform impact — or N/A
  • Updated tool descriptions/schemas — or N/A

Changed files

  • hermes_cli/models.py (modified, +22/-0)
  • tests/hermes_cli/test_models.py (modified, +52/-0)

Code Example

https://paste.rs/umSKJ

---
RAW_BUFFERClick to expand / collapse

Bug Description

The /model picker in TUI mode does not display custom providers configured in config.yaml. The same providers work correctly when switching via CLI flags (-m / --provider).

Steps to Reproduce

  1. Configure custom_providers in ~/.hermes/config.yaml:

    yaml model: default: claude-haiku-4-5-20251001 provider: my-claude-opus-4-6

    custom_providers:

    • name: my-claude-opus-4-6 base_url: http://192.168.xxx.xx:8016/v1 api_key: sk-xxx model: claude-opus-4-6 models: claude-opus-4-6: context_length: 1000000
    • name: my-claude-sonnet-4-6 base_url: http://192.168.xxx.xx:8016/v1 api_key: sk-xxx model: claude-sonnet-4-6 models: claude-sonnet-4-6: context_length: 1000000 ... more entries with same base_url
    1. Launch hermes --tui
    2. Type /model to open the model picker
    3. Custom providers are not listed in the picker

Expected Behavior

Custom providers should appear in the /model picker, similar to how they appear in the classic CLI's model selection.

Actual Behavior

Only built-in/authenticated providers are shown. Custom providers are missing from the list.

Affected Component

Other, CLI (interactive chat)

Messaging Platform (if gateway-related)

No response

Debug Report

https://paste.rs/umSKJ

Operating System

macOS 15.5

Python Version

No response

Hermes Version

No response

Additional Logs / Traceback (optional)

Root Cause Analysis (optional)

No response

Proposed Fix (optional)

No response

Are you willing to submit a PR for this?

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

extent analysis

TL;DR

The custom providers configured in config.yaml are not being displayed in the /model picker in TUI mode, suggesting a potential issue with how the TUI mode is loading or parsing the custom provider configurations.

Guidance

  • Verify that the config.yaml file is correctly formatted and that the custom providers are defined with the required fields (e.g., name, base_url, api_key, model).
  • Check if there are any typos or inconsistencies in the custom provider names or URLs that might prevent them from being recognized by the TUI mode.
  • Compare the behavior of the TUI mode with the CLI flags (-m or --provider) to see if there are any differences in how the custom providers are being loaded or parsed.
  • Review the debug report (https://paste.rs/umSKJ) for any error messages or clues that might indicate why the custom providers are not being displayed.

Example

No code snippet is provided as the issue seems to be related to configuration and not code.

Notes

The issue might be specific to the TUI mode or how it interacts with the config.yaml file. Without more information about the Hermes version or the Python version, it's difficult to provide a more specific solution.

Recommendation

Apply workaround: Try using the CLI flags (-m or --provider) to select the custom providers, as they seem to work correctly, while investigating the issue with the TUI mode.

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

hermes - ✅(Solved) Fix [Bug]: TUI /model picker does not show custom_providers defined in config.yaml [1 pull requests, 1 comments, 2 participants]