Hermes Agent plugin for Timbre, a local OpenAI-compatible voice gateway.
The plugin registers timbre as both a Hermes TTS provider and STT provider.
It is only an HTTP client. It does not import Timbre, PocketTTS, Parakeet,
ONNX, Torch, or any model runtime.
hermes plugins install Spadav/hermes-timbre
hermes plugins enable hermes-timbreOr install with pip:
pip install hermes-timbre
hermes plugins enable hermes-timbrePreferred terminal setup:
hermes timbre setupThe setup flow asks for the Timbre URL, TTS backend, STT backend, and voice. It discovers available Timbre backends and voices from the running Timbre API. Custom cloned voices can still be entered manually if they are not listed.
Non-interactive setup:
hermes timbre setup http://127.0.0.1:9000 --tts pocket --stt parakeet --voice albaTailscale or remote Timbre example:
hermes timbre setup http://<YOUR_TAILSCALE_IP>:9000 --tts pocket --stt parakeet --voice ariaAlias:
hermes hermes-timbre setup http://127.0.0.1:9000 --tts pocket --stt parakeet --voice albaStatus:
hermes timbre status
hermes timbre backendsThe in-session commands are also registered when Hermes exposes plugin slash commands:
Inside Hermes:
/timbre http://127.0.0.1:9000
/timbre http://<YOUR_TAILSCALE_IP>:9000 --tts pocket --stt parakeet --voice alba
/hermes-timbre status
The command checks /health, discovers /v1/backends, saves the plugin config
to ~/.hermes/hermes-timbre.json, and tries to set these Hermes config values:
tts:
provider: timbre
stt:
provider: timbreWhen Hermes loads plugin dashboard assets, the plugin adds a Timbre panel to the Hermes web dashboard.
The panel can:
- Show the configured Timbre URL, TTS backend, STT backend, and voice.
- Check Timbre health.
- List Timbre TTS/STT backends and voices.
- Load, unload, enable, or disable Timbre backends.
- Save Hermes-side Timbre defaults without rerunning CLI flags.
Hermes' built-in TTS provider dropdown can show plugin TTS providers. Some
Hermes versions do not inject plugin STT providers into the dashboard STT
dropdown, so stt.provider: timbre can work even if timbre is missing from
that picker.
These override the saved config:
export TIMBRE_URL=http://127.0.0.1:9000
export TIMBRE_TTS_BACKEND=pocket
export TIMBRE_STT_BACKEND=parakeet
export TIMBRE_TTS_VOICE=albaTTS calls go to:
POST {TIMBRE_URL}/v1/audio/speech
STT calls go to:
POST {TIMBRE_URL}/v1/audio/transcriptions
The Hermes provider name is always timbre. The Timbre backend is selected by
the plugin config:
- TTS default backend:
pocket - STT default backend:
parakeet - TTS default voice:
alba
Timbre handles model loading, voice aliases, cloned voices, audio conversion, and backend runtime state.
Timbre itself loads models lazily. Enabling the Hermes plugin does not import or load PocketTTS, Parakeet, Whisper, Supertonic, or Qwen inside Hermes.
