hermes - ✅(Solved) Fix [Feature] Add Venice.ai as first-class provider for /model picker dropdown [1 pull requests, 2 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#14102Fetched 2026-04-23 07:46:47
View on GitHub
Comments
2
Participants
2
Timeline
5
Reactions
0
Timeline (top)
labeled ×3commented ×2

Error Message

  • Cons: Requires async API call during picker display, latency, error handling complexity

Fix Action

Fix / Workaround

Current Workaround Users must manually add to config.yaml: model: provider: custom base_url: https://api.venice.ai/api/v1 api_key: VENICE_API_KEY

  • Pros: Consistent with existing providers, works immediately, no latency
  • Cons: Requires PR when Venice adds major models
  • Mitigation: Can be updated via community PRs

PR fix notes

PR #6424: feat(cli): add Venice AI as first-class provider

Description (problem / solution / changelog)

Summary

  • Registers Venice AI as a built-in provider — hermes --provider venice works out of the box
  • Live model fetching from Venice's /v1/models endpoint (70+ models) with static fallback
  • Includes E2EE model IDs (e2ee-*) in the catalog for discoverability
  • Follows the OpenAI-compatible provider checklist from the contributing guide

Changes

7 files across auth, models, CLI wiring, auxiliary defaults, context lengths, and tests:

  • hermes_cli/auth.py: ProviderConfig entry — VENICE_API_KEY env var, VENICE_BASE_URL override, base URL https://api.venice.ai/api/v1
  • hermes_cli/models.py: Static model list (22 curated), "Venice AI" label, "venice-ai" alias, live /v1/models fetching with fallback
  • hermes_cli/main.py: provider_labels, providers list, _model_flow_api_key_provider dispatch, --provider argparse choices
  • hermes_cli/setup.py: Setup wizard menu item + API key configuration block
  • agent/auxiliary_client.py: Aux model zai-org-glm-4.7-flash for side tasks
  • agent/model_metadata.py: Context length fallback for venice-prefixed models
  • tests/test_api_key_providers.py: Registry, env var, and base URL assertions

Usage

# Set API key
export VENICE_API_KEY=your-key

# Use directly
hermes --provider venice --model zai-org-glm-5 "Hello"

# Or configure via setup
hermes setup  # select "Venice AI" from the menu

# E2EE encrypted inference (requires venice-e2ee package)
hermes --provider venice --model e2ee-glm-5 "Hello from encrypted side"

Test plan

  • 171 provider/setup/model tests pass (2 new Venice-specific)
  • Live model fetching verified — 70 models returned from Venice API
  • Pre-existing test failures confirmed unrelated (OPENAI_BASE_URL resolution)

Platforms tested

  • Linux (Ubuntu 24.04, Python 3.12)

Notes

  • Venice is OpenAI-compatible, so no adapter or run_agent.py changes needed
  • Website docs update can follow in a separate PR
  • This PR is independent of #4231 (Venice E2EE support) but complements it — once both merge, E2EE usage simplifies from --provider custom --base-url https://api.venice.ai/api/v1 to just --provider venice

🤖 Generated with Claude Code

Changed files

  • agent/auxiliary_client.py (modified, +1/-0)
  • hermes_cli/auth.py (modified, +8/-0)
  • hermes_cli/main.py (modified, +2/-0)
  • hermes_cli/models.py (modified, +34/-1)
  • tests/hermes_cli/test_api_key_providers.py (modified, +7/-0)
RAW_BUFFERClick to expand / collapse

Currently, Venice.ai (a privacy-focused inference platform) is only usable via the custom provider type. This means:

  1. No dropdown in /model picker - Venice models don't appear in the interactive model picker (Telegram/Discord popups or CLI autocomplete)
  2. No hot-swap aliases - Users must manually configure model_aliases in config.yaml to switch between Venice models
  3. Discovery friction - Venice has 72+ models including Kimi, Claude, GPT, Qwen, GLM variants - but users can't discover them through the UI

Current Workaround Users must manually add to config.yaml: model: provider: custom base_url: https://api.venice.ai/api/v1 api_key: VENICE_API_KEY

model_aliases: kimi-k2-6: model: "kimi-k2-6" provider: custom base_url: "https://api.venice.ai/api/v1"

This works but requires manual configuration and doesn't populate the picker dropdown.

Proposed Solution

Add Venice.ai as a first-class provider (venice) with:

  1. Provider Configuration (hermes_cli/auth.py) PROVIDER_REGISTRY["venice"] = ProviderConfig( display_name="Venice.ai", api_key_env_vars=["VENICE_API_KEY"], base_url="https://api.venice.ai/api/v1", supports_oauth=False, )

  2. Curated Model List (hermes_cli/models.py) VENICE_MODELS: list[tuple[str, str]] = [ ("kimi-k2-6", "recommended"), ("kimi-k2-5", ""), ("kimi-k2-thinking", ""), ("claude-opus-4-7", ""), ("claude-opus-4-6", ""), ("claude-sonnet-4-6", ""), ("openai-gpt-54", ""), ("openai-gpt-54-mini", ""), ("qwen-3-6-plus", ""), ("qwen3-5-9b", ""), ("zai-org-glm-5-1", ""), ("venice-uncensored", ""),

    ... (curated subset of 72 models)

]

_PROVIDER_MODELS["venice"] = [m[0] for m in VENICE_MODELS] _PROVIDER_LABELS["venice"] = "Venice.ai"

Full Venice Model Catalog (72 models)

From the Venice /v1/models endpoint:

Recommended/Curated for agent use:

  • kimi-k2-6 - Moonshot Kimi K2.6 (recommended)
  • kimi-k2-5 - Moonshot Kimi K2.5
  • kimi-k2-thinking - Moonshot Kimi with reasoning
  • claude-opus-4-7 - Claude Opus 4.7 via Venice
  • claude-opus-4-6 - Claude Opus 4.6 via Venice
  • claude-sonnet-4-6 - Claude Sonnet 4.6 via Venice
  • claude-opus-4-6-fast - Faster Claude variant
  • openai-gpt-54 - GPT-5.4 via Venice
  • openai-gpt-54-mini - GPT-5.4 Mini via Venice
  • openai-gpt-4o-2024-11-20 - GPT-4o via Venice
  • openai-gpt-53-codex - Codex via Venice
  • qwen-3-6-plus - Qwen 3.6 Plus
  • qwen3-5-9b - Qwen 3.5 9B
  • qwen3-5-35b-a3b - Qwen 3.5 35B MoE
  • zai-org-glm-5-1 - GLM-5.1
  • zai-org-glm-5 - GLM-5
  • grok-4-20 - Grok 4.20 via Venice
  • venice-uncensored - Venice's uncensored model
  • venice-uncensored-1-2 - Venice Uncensored v1.2
  • gemini-3-1-pro-preview - Gemini 3.1 Pro via Venice
  • gemini-3-flash-preview - Gemini 3 Flash via Venice
  • minimax-m27 - MiniMax M2.7
  • minimax-m25 - MiniMax M2.5
  • mistral-small-3-2-24b-instruct - Mistral Small 3.2

Plus 50+ additional models across families (Gemma, DeepSeek, E2EE variants, NVidia Nemotron, Llama, Hermes, etc.)

Alternatives Considered

Option A: Dynamic model discovery - Query Venice's /models endpoint on-demand.

  • Pros: Always up-to-date
  • Cons: Requires async API call during picker display, latency, error handling complexity

Option B: Configurable custom provider model lists - Allow users to specify models: array in custom provider config.

  • Pros: Works for any custom endpoint
  • Cons: Requires user configuration, doesn't solve discovery

Selected: Option C (First-class provider) - Hardcoded curated list like other providers (OpenRouter, ZAI, etc.) (1/2)

  • Pros: Consistent with existing providers, works immediately, no latency
  • Cons: Requires PR when Venice adds major models
  • Mitigation: Can be updated via community PRs

Feature Type CLI improvement / Gateway improvement

Scope Medium (few files, < 300 lines)

Files to Modify

  1. hermes_cli/auth.py - Add PROVIDER_REGISTRY entry (~12 lines)
  2. hermes_cli/models.py - Add VENICE_MODELS, _PROVIDER_MODELS entry, _PROVIDER_LABELS entry (~50 lines)

Additional Context

Venice.ai API Compatibility

  • OpenAI-compatible /v1/chat/completions endpoint
  • OpenAI-compatible /v1/models endpoint
  • Supports streaming, JSON mode
  • Simple API key auth via Authorization: Bearer header
  • Privacy-focused: no data retention, optional encrypted inference

With this feature, users would simply: model: provider: venice api_key: VENICE_API_KEY

And get full /model picker support with all Venice models in the dropdown.

extent analysis

TL;DR

To add Venice.ai as a first-class provider, update the PROVIDER_REGISTRY in hermes_cli/auth.py and add a curated model list in hermes_cli/models.py.

Guidance

  1. Update PROVIDER_REGISTRY: Add a new entry for Venice.ai in hermes_cli/auth.py with the required configuration, such as display_name, api_key_env_vars, base_url, and supports_oauth.
  2. Curate Venice models: Create a list of recommended Venice models in hermes_cli/models.py and update _PROVIDER_MODELS and _PROVIDER_LABELS accordingly.
  3. Test the integration: Verify that the Venice models appear in the model picker dropdown and can be used with the venice provider.
  4. Consider community updates: Allow community members to submit PRs to update the curated model list when new models are added to Venice.ai.

Example

# hermes_cli/auth.py
PROVIDER_REGISTRY["venice"] = ProviderConfig(
    display_name="Venice.ai",
    api_key_env_vars=["VENICE_API_KEY"],
    base_url="https://api.venice.ai/api/v1",
    supports_oauth=False,
)

# hermes_cli/models.py
VENICE_MODELS: list[tuple[str, str]] = [
    ("kimi-k2-6", "recommended"),
    # ... (curated subset of 72 models)
]
_PROVIDER_MODELS["venice"] = [m[0] for m in VENICE_MODELS]
_PROVIDER_LABELS["venice"] = "Venice.ai"

Notes

This solution assumes that the Venice.ai API is compatible with the existing provider infrastructure. If there are any API-specific requirements or differences, additional modifications may be necessary.

Recommendation

Apply the proposed solution to add Venice.ai as a first-class provider, as it provides a consistent user experience and works immediately without latency.

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 [Feature] Add Venice.ai as first-class provider for /model picker dropdown [1 pull requests, 2 comments, 2 participants]