Skip to main content

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

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hermes_voicebox-0.1.0.tar.gz (11.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hermes_voicebox-0.1.0-py3-none-any.whl (11.7 kB view details)

Uploaded Python 3

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

Hashes for hermes_voicebox-0.1.0.tar.gz
Algorithm Hash digest
SHA256 b399de9449d597e5a3ca93e7d4f639aabd40b6ddab7fb74d431dd5146487f90c
MD5 15ee32badd00ac9d65ff63bae97f9619
BLAKE2b-256 a7558a258c1cf60157b3d555c68720aba4859fe16324c5cc0ae774ccb50e9283

See more details on using hashes here.

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

Hashes for hermes_voicebox-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 376c3d8161637e0f2b67c8d65d50c09f7492d48d1afe8ed05a59b6ec74d35920
MD5 d2b2c6697a8abe8926ec0c40ff7e160e
BLAKE2b-256 9a249783d3a3d3b6cf12efa32faf484c44954989860aed31d0824fd35d2a3f97

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page