ashwanthbalakrishnan5 / hermes-whatsapp-voice
git clone https://github.com/ashwanthbalakrishnan5/hermes-whatsapp-voice.git
v0.1.12 · 3d ago
Live WhatsApp voice calls with Hermes: call your bot, or let Hermes call you. Hermes plugin + whatsapp-rust sidecar + Gemini Live.
—
stars, 24h
+81
stars, 7 days · #639
+81
stars, 30 days · #2,804
81
★ total · +81% this week
6
forks · 15 open issues
Star history starts 2026-10-20; the chart appears after the second daily snapshot.
LanguageRust
LicenseMIT
Created2026-10-16 (4d ago)
Last push3d ago
Watchers0
OwnerUser
GitHub topics
Links
- GitHub: github.com/ashwanthbalakrishnan5/hermes-whatsapp-voice
- Releases · Issues · Hacker News mentions
README excerpt
# hermes-whatsapp-voice
Live voice calls with Hermes over WhatsApp.
- **Call your bot.** Call your Hermes bot's WhatsApp number and talk to it. The voice agent can hand
real work to Hermes mid-call ("move my 3pm to tomorrow", "what did Sam say about the invoice?").
- **Let Hermes call you.** For things that matter, Hermes can ring you instead of sending a message:
a top-priority reminder, an urgent alert, a cron job that needs a decision. If you don't pick up,
the tool says so and Hermes falls back to another channel.
- **Summary afterwards.** When a call ends, Hermes digests the transcript and sends you a short
summary in WhatsApp.
It works with the personal-number setup most Hermes users already have (WhatsApp linked as a
device). No WhatsApp Business / Cloud API account is needed.
## How it works
[code]
- **`hermes-wa-voice`** is a small sidecar built on
whatsapp-rust. It links to the bot's WhatsApp number
as one more linked device (WhatsApp allows four), answers calls from your number only, and places
calls to your number only.
- Call audio is bridged to **Gemini Live** (`gemini-3.8-live` by default) for natural, interruptible
speech-to-speech.
- The voice model gets two tools:
- `ask_hermes`, which runs a Hermes turn through the API server and speaks the result when it
arrives;
- `end_call`, which hangs up after a goodbye.
- The **Hermes plugin** adds two agent tools: `whatsapp_call_owner(reason, details?)` and
`whatsapp_call_status(call_id?)`. It also adds a `hermes whatsapp-voice` command for setup.
## Requirements
- Hermes `>= 0.21.5` on Linux or macOS.
- A separate WhatsApp number for the bot: Hermes's WhatsApp `bot` mode, or any spare number. In
`self-chat` mode the bot is your own number, and you can't call yourself.
- Gemini set up in Hermes with an API key. The plugin reuses the key of Hermes's Gemini provider
(`GOOGLE_API_KEY`, else `GEMINI_API_KEY`), so there is nothing extra to enter. Without one,
`hermes model` (choose Gemini) adds it. Google login (Cloud Code OAuth) does not work for the
Live API. The live models have a free tier, but Google may use free-tier data. Paid use is
roughly $0.005/min of audio in and $0.018/min out.
- Optional, but needed for the voice agent to reach Hermes: the Hermes
API server enabled.
It must have an `API_SERVER_KEY`.
## Install
**Let your agent do it.** Tell Hermes (or any coding agent on that machine) to follow
skills/setup/SKILL.md. It's a step-by-step runbook written for agents,
and it stops to ask you only for your number and to scan a QR code. After installing, Hermes can
also load it as `hermes-whatsapp-voice:setup`.
**Or by hand:**
[code]
### 1. Set your number
This is the only number that will ever be called, and the only caller that will be answered.
[code]
### 2. Link the sidecar to the bot's WhatsApp number (once)
Easiest: open the Hermes dashboard, go to the **WhatsApp Voice** tab, click **Pair with
WhatsApp**, and scan the QR from the **bot's** phone (WhatsAp