Introduction

Everything in this course so far has lived in one place: the CLI, with a microphone and a continuous recording loop. That is only one of three ways Hermes does voice. This lesson maps the whole territory, so you always know which experience you are setting up and why the rest of this section looks different from what came before.

Key Concepts

  • CLI voice mode: The microphone loop you have already learned. You press the record key, speak, and hear replies, all inside the terminal.
  • Gateway: The Hermes process started with hermes gateway that connects the agent to messaging platforms such as Telegram and Discord.
  • Voice replies in chat: A messaging bot that answers with spoken audio alongside its text, on the user's schedule.
  • Discord voice channel bot: Hermes joining a live Discord voice channel, listening and speaking in real time.

Real World Context

A developer runs the CLI microphone loop at their desk. Away from the desk, they want the same agent reachable from their phone, so they point it at a Telegram bot and get spoken replies to voice notes. During a team call, they want it sitting in a Discord voice channel, answering questions out loud. One agent, three different doors into it. Picking the wrong door for the task, or setting up the hardest door first, is where voice setup usually goes wrong.

Deep Dive

The documentation describes three voice experiences, and they are genuinely different products built on the same agent.

The first is CLI voice mode, the experience this course has covered so far. It is a continuous local loop: record, transcribe, reply, and the recording restarts on its own. Everything happens in your terminal.

The second is voice replies in chat, on Telegram and Discord. Here Hermes runs as an ordinary messaging bot through hermes gateway, and on top of its normal text replies it can send spoken audio. This experience is turn-based and asynchronous. There is no continuous microphone loop. The user sends a message, typed or as a voice note, whenever they choose, and the bot answers. It has the rhythm of ordinary texting, not the rhythm of a live conversation.

The third is the Discord voice channel bot, the most involved of the three. Hermes joins an actual Discord voice channel, listens to people speaking, transcribes them, runs the agent, and speaks the reply back into the channel in real time.

The contrast worth holding onto: the CLI loop and the voice channel bot are both live and continuous, but chat voice replies are not. They are asynchronous, paced by the user. A mental model built only on the continuous CLI loop will not transfer cleanly to a chat bot, and unlearning that assumption is the main job of this lesson.

What does not change is the pipeline. STT, then the LLM, then TTS, the three stages you already know, run in all three experiences. What changes is only where the audio comes from and where it goes: a local microphone, a chat voice note, or a live channel stream.

The documentation also gives an order, and it is worth following: get plain text working first, enable voice replies second, and attempt Discord voice channels last. Each step adds dependencies and new failure points, so climbing one rung at a time keeps the debugging surface small. The end-to-end verification habit from earlier in this course, running one full turn and checking each stage, applies at every rung.

Common Pitfalls

  1. Starting with Discord voice channels: It has the most setup of the three, with extra permissions, account toggles, and a codec. Get text and chat voice replies working first, so each new failure has only one new possible cause.
  2. Assuming the CLI loop model transfers: Chat voice replies are asynchronous and turn-based, not a continuous microphone loop. Expecting the CLI rhythm on a Telegram bot leads to confusion about why nothing seems to be listening.

Best Practices

  1. Follow the progression: Text first, then voice replies, then voice channels. Confirm each rung works before climbing to the next.
  2. Pick the experience from the situation: Terminal work points to the CLI loop, phone or remote use points to chat replies, and a live group call points to the Discord voice channel.

Summary

  • Hermes has three voice experiences: the CLI microphone loop, voice replies in chat, and the Discord voice channel bot.
  • All three run the same STT to LLM to TTS pipeline; only the audio source and destination differ.
  • Chat voice replies are asynchronous and turn-based, unlike the continuous CLI and voice channel loops.
  • Set them up in order: text first, voice replies second, voice channels last.

Code Examples

bash
# Experience 1: the CLI microphone loop (covered so far in this course)
hermes                 # then run /voice on inside the CLI

# Experiences 2 and 3: messaging platforms run through the gateway
hermes gateway         # connects the bot to Telegram and Discord
# voice replies in chat and Discord voice channels both live here
✓ Completed