Herald
GNOME extensionSay "Hey Jarvis" - your desktop wakes up and listens.
Herald is a GNOME desktop extension that sits quietly in the background, always listening for a wake word. When it hears the magic phrase, it hands the microphone over for a full voice conversation with Claude, Codex, or Gemini. A small panel icon shows the live transcript as the conversation unfolds.
- Python
- GJS
- openWakeWord
- ONNX
- systemd
The tricky part of always-on voice is the microphone - only one thing can own it at a time, and if two programs grab for it simultaneously you get silence or crashes. Herald solved this carefully: the background listener fully releases the mic before handing it to Voice IO, then takes it back only after the conversation ends. The whole thing runs locally for wake detection; no audio goes to the cloud until you've actually said the wake word and started speaking.
What it does
Herald has two parts that work together. A background service (a daemon, a small program that runs quietly without a window) listens continuously for a wake phrase using a local AI model. No audio is sent anywhere until the wake word is heard. When it fires, the daemon hands off to Voice IO for the actual conversation with whichever AI assistant you want. The GNOME Shell extension adds a small dot in the taskbar that changes color to show what's happening: idle, listening, or mid-conversation. Click it and a popup shows a timestamped transcript of the whole exchange, like a little chat log that appeared from thin air.
Why it's neat
Hands-free from the start
You never have to touch a keyboard; just say the wake word and the conversation begins.
Plays nice with the mic
Herald carefully releases the microphone before Voice IO picks it up, so nothing fights over the hardware.
Stays visible in the corner
The panel indicator and live transcript mean you always know whether the assistant is listening or thinking.
How it works
1. Always listening locally
A background service runs an on-device AI model that listens for the wake word; nothing goes to the cloud.
2. Wake word triggers handoff
Herald hears the phrase, releases the microphone completely, and plays a soft "Yes?" acknowledgment.
3. Voice IO takes over
Voice IO opens the mic, captures what you say, and sends it to the chosen AI assistant.
4. The answer comes back
The assistant's reply is spoken aloud, and the cycle repeats until you say "Goodbye."
5. Herald resumes watch
After the conversation ends, the background service reclaims the mic and goes back to listening for the next wake word.