Model Providers
What it is
External or local providers that supply model reasoning to Hermes.
In plain terms
Model providers are like hiring a different voice actor to dub the same film: the script and the scenes don’t change, only whose voice comes out of the speakers, and swapping actors between showings doesn’t mean re-shooting anything. Hermes keeps that swap just as painless by describing each provider’s quirks in one place instead of hardwiring any single one into the agent.
Why it matters
Anthropic, OpenAI-compatible endpoints, Gemini, Bedrock, and dozens of others each ship as their own model-providers plugin, alongside local options, which is what makes the model layer pluggable at the architecture level rather than hardcoded. That’s what turns provider switching into a configuration change instead of a rewrite: a task routes to whichever provider currently offers the best cost-to-capability tradeoff, or falls back automatically if the primary one is unavailable. With this many providers to choose from, a misconfigured API key or model ID is also one of the more common ways a turn breaks before it even reaches the agent loop.
How it works
Provider identity in Hermes is assembled from layers merged at runtime: a models.dev catalog listing 100+ providers with their base URLs, environment variables, and pricing; a small set of Hermes-specific overlays adding transport type and auth quirks the catalog doesn’t track; and the user’s own providers: section in config.yaml, merged on top of both (hermes_cli/providers.py). Providers that ship as plugins declare themselves through a ProviderProfile dataclass - one object stating a name, aliases, base URL, and auth type, rather than the transport layer branching on a pile of boolean flags (providers/base.py). The OpenAI Codex plugin is a concrete example: in about ten lines it registers itself with an external OAuth login and the Responses API endpoint, no API key required (plugins/model-providers/openai-codex/init.py).
A concrete example
You’ve been using Anthropic’s API for a coding project, but a separate writing project should use your ChatGPT-style login instead.
- You point that project’s config at the openai-codex provider.
- Hermes looks it up in the merged provider table and finds an OAuth profile rather than an API-key one.
- Your next message in that project routes to OpenAI’s Responses API, with no other code changes required, and the coding project keeps using Anthropic untouched.
How it connects
This note belongs to the Operations family. Its closest neighboring concepts are: Local Deployment, Local Models, Agent Runtime, Personal OS.
Source evidence
plugin:model-providers/openai-codex— Explicit Source Map scope boundary: The plugin manifest is outside the approved Core scope.
Workflows
- No first-pass workflow mapping yet; this concept still appears in the vault graph through articles and source evidence.
Related articles
- Hermes Agent Explained: Why an Agent Harness Matters More Than Another Chat Window
- Mastering Hermes Desktop: From Local Chat App to an Always-On Agent Control Center
