Voicebox TTS + STT providers for Hermes Agent — voice cloning and Whisper transcription, fully local
Project description
hermes-voicebox
Voicebox TTS + STT providers for Hermes Agent — voice cloning and Whisper transcription, fully local. Once selected, Hermes's entire voice pipeline runs through the Voicebox app on your machine:
- Voice out — spoken replies in the CLI/TUI and voice bubbles on Telegram/Discord/WhatsApp/Slack/Signal are synthesized in one of your cloned or preset Voicebox voices. No ElevenLabs key, no cloud.
- Voice in — incoming voice messages and push-to-talk recordings are transcribed by the Whisper models bundled with Voicebox. Audio never leaves your machine.
- Bundled skill — teaches the agent when speaking aloud is appropriate, how to pick voices, and to recall your dictated Captures through Voicebox's MCP server.
This plugin wires Hermes's own voice pipeline. Agent-invoked tools (speak on demand, transcribe a file, list captures/profiles) live on Voicebox's built-in MCP server — connect both for the full experience.
Requirements
- Voicebox running locally (desktop app, or Docker on
127.0.0.1:17600) - Hermes Agent, Python 3.11+
Install
Pip (recommended) — into the same environment Hermes runs in:
pip install git+https://github.com/jamiepine/hermes-voicebox
Hermes auto-discovers the plugin through its hermes_agent.plugins entry
point on next startup.
Directory install — no pip:
git clone https://github.com/jamiepine/hermes-voicebox /tmp/hermes-voicebox
cp -r /tmp/hermes-voicebox/hermes_voicebox ~/.hermes/plugins/voicebox
hermes plugins enable voicebox
Configure
In ~/.hermes/config.yaml:
tts:
provider: voicebox
stt:
provider: voicebox
And optionally connect Voicebox's MCP server for agent-invoked tools:
mcp_servers:
voicebox:
url: "http://127.0.0.1:17493/mcp"
headers:
X-Voicebox-Client-Id: "hermes"
Voice selection: tts.voice (or the tool's voice argument) accepts a
Voicebox profile name or id; with nothing set, your first profile is
used. Pass a Voicebox engine id (qwen, kokoro, chatterbox, …) as the
Hermes model to override the profile's default engine.
Running Voicebox somewhere other than the desktop app's default port:
export VOICEBOX_BASE_URL=http://127.0.0.1:17600 # e.g. Docker
Behavior notes
- Voicebox must be running — the desktop app only serves the API while open. Both providers health-check live, so Hermes's picker reflects reality.
- First generation after app start is slower while the TTS engine loads; first transcription with a new Whisper size triggers a background download and returns a friendly "try again in a minute".
Development
pip install -e ".[dev]"
pytest
Tests are fully offline (HTTP mocked) and run without hermes-agent installed — minimal ABC stubs matching the Hermes provider contracts are used when the real ones aren't importable.
Docs
- Voicebox × Hermes integration guide
- Hermes developer guides: TTS providers · Transcription providers
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hermes_voicebox-0.1.0.tar.gz.
File metadata
- Download URL: hermes_voicebox-0.1.0.tar.gz
- Upload date:
- Size: 11.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b399de9449d597e5a3ca93e7d4f639aabd40b6ddab7fb74d431dd5146487f90c
|
|
| MD5 |
15ee32badd00ac9d65ff63bae97f9619
|
|
| BLAKE2b-256 |
a7558a258c1cf60157b3d555c68720aba4859fe16324c5cc0ae774ccb50e9283
|
File details
Details for the file hermes_voicebox-0.1.0-py3-none-any.whl.
File metadata
- Download URL: hermes_voicebox-0.1.0-py3-none-any.whl
- Upload date:
- Size: 11.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
376c3d8161637e0f2b67c8d65d50c09f7492d48d1afe8ed05a59b6ec74d35920
|
|
| MD5 |
d2b2c6697a8abe8926ec0c40ff7e160e
|
|
| BLAKE2b-256 |
9a249783d3a3d3b6cf12efa32faf484c44954989860aed31d0824fd35d2a3f97
|