Skip to content

fix(status): add missing popular provider API keys to hermes status#16159

Closed
briandevans wants to merge 2 commits into
NousResearch:mainfrom
briandevans:fix/status-missing-provider-keys-16082
Closed

fix(status): add missing popular provider API keys to hermes status#16159
briandevans wants to merge 2 commits into
NousResearch:mainfrom
briandevans:fix/status-missing-provider-keys-16082

Conversation

@briandevans

Copy link
Copy Markdown
Contributor

Summary

Closes #16082

hermes status was silently omitting four widely-used LLM providers from both its API Keys and API-Key Providers sections, even though all four are fully registered in PROVIDER_REGISTRY with api_key_env_vars defined:

Provider Env var(s)
Google / Gemini GOOGLE_API_KEY, GEMINI_API_KEY
DeepSeek DEEPSEEK_API_KEY
xAI / Grok XAI_API_KEY
NVIDIA NIM NVIDIA_API_KEY

Each entry is added to both sections:

  • API Keys — shows the redacted key value so users can confirm the variable is set
  • API-Key Providers — shows configured/not-configured with the same multi-var fallback pattern used by existing entries (e.g. Z.AI/GLM checks three env vars)

Note: PR #16143 adds only NVIDIA to the API Keys section (+1 line). This PR is a broader fix that covers all four missing providers across both display sections.

Test plan

  • Run hermes status with NVIDIA_API_KEY, DEEPSEEK_API_KEY, XAI_API_KEY, and GOOGLE_API_KEY set — confirm each appears with ✓ and a redacted value in both sections
  • Run hermes status without those env vars — confirm each appears with ✗ and (not set) / not configured
  • Confirm existing entries (OpenRouter, OpenAI, GLM, Kimi, MiniMax) are unaffected

🤖 Generated with Claude Code

Adds Google/Gemini, DeepSeek, xAI/Grok, and NVIDIA NIM to both the
"API Keys" display section and the "API-Key Providers" section.
All four are present in PROVIDER_REGISTRY with api_key_env_vars set
but were absent from status output.

Closes NousResearch#16082

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings April 26, 2026 17:47

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates hermes status to surface additional API-key based providers that were previously missing from the status output, addressing #16082.

Changes:

  • Add Google/Gemini, DeepSeek, xAI/Grok, and NVIDIA NIM to the API Keys section.
  • Add the same providers to the API-Key Providers section (including multi-env-var support for Gemini).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread hermes_cli/status.py Outdated
keys = {
"OpenRouter": "OPENROUTER_API_KEY",
"OpenAI": "OPENAI_API_KEY",
"Google/Gemini": "GOOGLE_API_KEY",

Copilot AI Apr 26, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The provider label for Gemini is inconsistent between sections ("Google/Gemini" in API Keys vs "Google / Gemini" in API-Key Providers). Since these two sections are meant to correspond, consider using the same label string in both places to avoid user confusion and make grep-based troubleshooting easier.

Suggested change
"Google/Gemini": "GOOGLE_API_KEY",
"Google / Gemini": "GOOGLE_API_KEY",

Copilot uses AI. Check for mistakes.
Comment thread hermes_cli/status.py
Comment on lines 264 to +268
apikey_providers = {
"Google / Gemini": ("GOOGLE_API_KEY", "GEMINI_API_KEY"),
"DeepSeek": ("DEEPSEEK_API_KEY",),
"xAI / Grok": ("XAI_API_KEY",),
"NVIDIA NIM": ("NVIDIA_API_KEY",),

Copilot AI Apr 26, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hermes_cli/status.py has unit tests (e.g. tests/hermes_cli/test_status.py) asserting API key redaction and presence in output, but this change adds new provider rows without tests. Add tests covering at least: (1) GOOGLE_API_KEY vs GEMINI_API_KEY fallback in the API Keys section, and (2) configured/not-configured rendering for DeepSeek/xAI/NVIDIA in both sections.

Copilot uses AI. Check for mistakes.
Comment thread hermes_cli/status.py Outdated
keys = {
"OpenRouter": "OPENROUTER_API_KEY",
"OpenAI": "OPENAI_API_KEY",
"Google/Gemini": "GOOGLE_API_KEY",

Copilot AI Apr 26, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The new "Google/Gemini" API key entry only checks GOOGLE_API_KEY. If a user has GEMINI_API_KEY set (which is supported in PROVIDER_REGISTRY["gemini"].api_key_env_vars), hermes status will still show ✗ (not set). Update this entry to use the same multi-env-var fallback as the API-Key Providers section (or add a dedicated Gemini key row) so either env var is recognized and the displayed redacted value matches the one actually used.

Suggested change
"Google/Gemini": "GOOGLE_API_KEY",
"Google/Gemini": ("GOOGLE_API_KEY", "GEMINI_API_KEY"),

Copilot uses AI. Check for mistakes.
@alt-glitch alt-glitch added type/bug Something isn't working P3 Low — cosmetic, nice to have comp/cli CLI entry point, hermes_cli/, setup wizard provider/deepseek DeepSeek API provider/gemini Google Gemini (AI Studio, Cloud Code) provider/xai xAI (Grok) provider/nvidia NVIDIA NIM labels Apr 26, 2026
…l; add tests

Address three Copilot findings on NousResearch#16082:

1. Label inconsistency: "Google/Gemini" in the API Keys dict now matches the
   "Google / Gemini" spelling used in the API-Key Providers section below it.

2. GEMINI_API_KEY not checked: the Google/Gemini row now accepts either
   GOOGLE_API_KEY or GEMINI_API_KEY (first found wins), matching
   PROVIDER_REGISTRY["gemini"].api_key_env_vars.

3. Missing test coverage: adds two new tests — one asserting the new
   DeepSeek/xAI/NVIDIA rows appear with correct redacted output, one asserting
   the GEMINI_API_KEY fallback path triggers correctly.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@briandevans

Copy link
Copy Markdown
Contributor Author

@copilot All 3 findings addressed in commit 3da8ff4:

  1. Label inconsistency (line 123): "Google/Gemini" renamed to "Google / Gemini" to match the spacing in the API-Key Providers section.

  2. GEMINI_API_KEY not checked (line 123): the Google / Gemini row now accepts either GOOGLE_API_KEY or GEMINI_API_KEY (first found wins), matching PROVIDER_REGISTRY["gemini"].api_key_env_vars.

  3. Missing tests (line 268): added test_show_status_new_api_key_providers_appear (verifies DeepSeek, xAI/Grok, NVIDIA NIM rows + redacted output) and test_show_status_gemini_api_key_fallback (verifies GEMINI_API_KEY path when GOOGLE_API_KEY is absent). All 5 tests in tests/hermes_cli/test_status.py pass.

teknium1 pushed a commit that referenced this pull request May 4, 2026
…isplay

Closes #16082.

`hermes status` silently omitted four widely-used LLM providers
(Google/Gemini, DeepSeek, xAI/Grok, NVIDIA NIM) from the API Keys
and API-Key Providers sections. Add them, along with tuple-valued
env var support (first found wins) so Google can accept either
GOOGLE_API_KEY or GEMINI_API_KEY.

Also deduplicates the "NVIDIA" and "NVIDIA NIM" rows that were
both pointing at NVIDIA_API_KEY.

Salvage of #16159 (core behavior preserved + NVIDIA dedup fixup
on top of the tuple-support refactor).

Co-authored-by: briandevans <252620095+briandevans@users.noreply.github.com>
@teknium1

teknium1 commented May 4, 2026

Copy link
Copy Markdown
Contributor

Salvaged via #19738 onto current main. Main had picked up a duplicate NVIDIA row from a separate merge; the salvage deduplicates it while applying your broader provider list and tuple-env support. Your authorship was preserved. Thanks @briandevans!

@teknium1 teknium1 closed this May 4, 2026
nickdlkk pushed a commit to nickdlkk/hermes-agent that referenced this pull request May 11, 2026
…isplay

Closes NousResearch#16082.

`hermes status` silently omitted four widely-used LLM providers
(Google/Gemini, DeepSeek, xAI/Grok, NVIDIA NIM) from the API Keys
and API-Key Providers sections. Add them, along with tuple-valued
env var support (first found wins) so Google can accept either
GOOGLE_API_KEY or GEMINI_API_KEY.

Also deduplicates the "NVIDIA" and "NVIDIA NIM" rows that were
both pointing at NVIDIA_API_KEY.

Salvage of NousResearch#16159 (core behavior preserved + NVIDIA dedup fixup
on top of the tuple-support refactor).

Co-authored-by: briandevans <252620095+briandevans@users.noreply.github.com>
rmulligan pushed a commit to rmulligan/hermes-agent that referenced this pull request May 11, 2026
…isplay

Closes NousResearch#16082.

`hermes status` silently omitted four widely-used LLM providers
(Google/Gemini, DeepSeek, xAI/Grok, NVIDIA NIM) from the API Keys
and API-Key Providers sections. Add them, along with tuple-valued
env var support (first found wins) so Google can accept either
GOOGLE_API_KEY or GEMINI_API_KEY.

Also deduplicates the "NVIDIA" and "NVIDIA NIM" rows that were
both pointing at NVIDIA_API_KEY.

Salvage of NousResearch#16159 (core behavior preserved + NVIDIA dedup fixup
on top of the tuple-support refactor).

Co-authored-by: briandevans <252620095+briandevans@users.noreply.github.com>
jsboige pushed a commit to jsboige/hermes-agent that referenced this pull request May 14, 2026
…isplay

Closes NousResearch#16082.

`hermes status` silently omitted four widely-used LLM providers
(Google/Gemini, DeepSeek, xAI/Grok, NVIDIA NIM) from the API Keys
and API-Key Providers sections. Add them, along with tuple-valued
env var support (first found wins) so Google can accept either
GOOGLE_API_KEY or GEMINI_API_KEY.

Also deduplicates the "NVIDIA" and "NVIDIA NIM" rows that were
both pointing at NVIDIA_API_KEY.

Salvage of NousResearch#16159 (core behavior preserved + NVIDIA dedup fixup
on top of the tuple-support refactor).

Co-authored-by: briandevans <252620095+briandevans@users.noreply.github.com>
dannyJ848 pushed a commit to dannyJ848/hermes-agent that referenced this pull request May 17, 2026
…isplay

Closes NousResearch#16082.

`hermes status` silently omitted four widely-used LLM providers
(Google/Gemini, DeepSeek, xAI/Grok, NVIDIA NIM) from the API Keys
and API-Key Providers sections. Add them, along with tuple-valued
env var support (first found wins) so Google can accept either
GOOGLE_API_KEY or GEMINI_API_KEY.

Also deduplicates the "NVIDIA" and "NVIDIA NIM" rows that were
both pointing at NVIDIA_API_KEY.

Salvage of NousResearch#16159 (core behavior preserved + NVIDIA dedup fixup
on top of the tuple-support refactor).

Co-authored-by: briandevans <252620095+briandevans@users.noreply.github.com>
gweeteve pushed a commit to gweeteve/hermes-agent that referenced this pull request Jun 2, 2026
…isplay

Closes NousResearch#16082.

`hermes status` silently omitted four widely-used LLM providers
(Google/Gemini, DeepSeek, xAI/Grok, NVIDIA NIM) from the API Keys
and API-Key Providers sections. Add them, along with tuple-valued
env var support (first found wins) so Google can accept either
GOOGLE_API_KEY or GEMINI_API_KEY.

Also deduplicates the "NVIDIA" and "NVIDIA NIM" rows that were
both pointing at NVIDIA_API_KEY.

Salvage of NousResearch#16159 (core behavior preserved + NVIDIA dedup fixup
on top of the tuple-support refactor).

Co-authored-by: briandevans <252620095+briandevans@users.noreply.github.com>
Egavasyug pushed a commit to Egavasyug/hermes-agent that referenced this pull request Jun 10, 2026
…isplay

Closes NousResearch#16082.

`hermes status` silently omitted four widely-used LLM providers
(Google/Gemini, DeepSeek, xAI/Grok, NVIDIA NIM) from the API Keys
and API-Key Providers sections. Add them, along with tuple-valued
env var support (first found wins) so Google can accept either
GOOGLE_API_KEY or GEMINI_API_KEY.

Also deduplicates the "NVIDIA" and "NVIDIA NIM" rows that were
both pointing at NVIDIA_API_KEY.

Salvage of NousResearch#16159 (core behavior preserved + NVIDIA dedup fixup
on top of the tuple-support refactor).

Co-authored-by: briandevans <252620095+briandevans@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp/cli CLI entry point, hermes_cli/, setup wizard P3 Low — cosmetic, nice to have provider/deepseek DeepSeek API provider/gemini Google Gemini (AI Studio, Cloud Code) provider/nvidia NVIDIA NIM provider/xai xAI (Grok) type/bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: hermes status missing some api key status, like nvidia api key is missing, please check and improve it.

4 participants