Hermes Integration
Use the Hermes agent harness by Nous Research with TULIP as its model backend.
Prerequisites
- Hermes installed (desktop app or CLI)
- A valid TULIP API key or SRAM personal token
- Access to the TU Delft network (or eduVPN)
Setup
Hermes reads its configuration from ~/.hermes/config.yaml. Define TULIP as a named provider so it appears under its own name in the Hermes menus:
model:
provider: custom:tulip
default: chat
providers:
tulip:
api: https://api.tulip.tudelft.nl/chat/v1
name: "TULIP"
api_key: YOUR_TULIP_TOKEN
default_model: chat
models:
chat:
context_length: 65536
chat is the model id sent in requests (the TULIP chat endpoint serves this single model); name is only the display label. Hermes sends OpenAI-format requests directly to the configured api URL.
After changing the configuration, quit Hermes completely (Cmd+Q on macOS; closing the window is not enough) and reopen it.
Desktop app note
After a full restart, click the model name in the chat view to open the model menu, use its search field to look for tulip, and select the chat model listed under the TULIP provider. The model itself is always shown by its API id; Hermes has no client-side model rename. If your desktop version does not list custom providers in the picker (tracked upstream), sessions still use model.default from the config file, so start a chat without selecting a model. The Hermes CLI reads the same configuration and is unaffected either way.
Auxiliary model routing
To keep another provider as the main model and route only specific tasks to TULIP, use an auxiliary block instead:
auxiliary:
compression:
base_url: https://api.tulip.tudelft.nl/chat/v1
api_key: YOUR_TULIP_TOKEN
model: chat
Troubleshooting
HTTP 401: Missing Authentication header
Hermes did not send the token. Set api_key inline in the provider entry as shown above (OPENAI_API_KEY in ~/.hermes/.env is not reliably picked up by the desktop app) and fully restart the app.
Connection timeout
Verify you are on the TU Delft network or connected via eduVPN.
Unsupported parameter errors
TULIP supports a subset of OpenAI parameters (temperature, top_k, top_p). If Hermes sends others and requests fail, check the request log in ~/.hermes/logs/.