Hermes
Point Hermes at a Gateway key.
Run this
Writes the configuration below, backs up anything it touches, and picks up only the models your key actually serves. Run it again after connecting another plan and it adds what is new.
ren inference setup hermesCheck it worked
hermes -z 'hello'A reply from the configured default. `hermes doctor` will warn about the vendor prefix; ignore it.
Configure it by hand instead
The same result, written yourself. Replace <YOUR_KEY> with your key.
The top-level key is `model:`, not `llm:`
A custom provider also needs `key_env` rather than an inline secret.
The prompt flag is `-z`
`-p` is a subcommand selector in Hermes, not a prompt flag.
~/.hermes/.env
Hermes reads the key from an environment variable; a custom provider cannot hold it inline.
REN_INFERENCE_KEY=<YOUR_KEY>Claude models
~/.hermes/config.yaml
Adds Ren as a custom provider.
custom_providers:
- name: ren
base_url: https://llm.useren.ai/v1
key_env: REN_INFERENCE_KEY
api_mode: chat_completions
model: anthropic/claude-sonnet-5
models:
anthropic/claude-opus-5: {}
anthropic/claude-sonnet-5: {}
anthropic/claude-fable-5: {}
anthropic/claude-haiku-4-5: {}~/.hermes/config.yaml
OptionalMakes Ren the default. Skip it to leave your current default alone.
model:
provider: ren
default: anthropic/claude-sonnet-5ChatGPT models
~/.hermes/config.yaml
A second provider on the Responses transport, so Codex requests keep their native shape.
custom_providers:
- name: ren-codex
base_url: https://llm.useren.ai/v1
key_env: REN_INFERENCE_KEY
api_mode: codex_responses
model: openai/gpt-5.6-terra
models:
openai/gpt-5.6-sol: {}
openai/gpt-5.6-terra: {}
openai/gpt-5.6-luna: {}
openai/gpt-5.5: {}
openai/gpt-5.4: {}
openai/gpt-5.4-mini: {}
openai/gpt-5.3-codex-spark: {}~/.hermes/config.yaml
OptionalMakes Ren the default. Skip it to leave your current default alone.
model:
provider: ren-codex
default: openai/gpt-5.6-terra