Omarchy Voice: An Open-Source Voice Assistant for Omarchy Linux
Omarchy Voice is a free, open-source voice assistant built for Omarchy Linux. It lets you control the Omarchy desktop by voice: open apps, switch workspaces, change the volume, take a screenshot, lock the screen, and ask which key does what. Say Hey Marvin, then a command or a question. Speech is detected, recorded, transcribed and spoken on your own machine, and questions go to the AI coding agent set as your Omarchy default, such as Claude, Codex or Gemini. Cloud First Consulting built it and released it under the MIT licence at https://github.com/Cloud-First-Consulting/omarchy-voice. It is an independent project, not affiliated with Omarchy, and is provided as is without warranty. The technical detail follows. Wake word detection (openWakeWord), recording (PipeWire), transcription (whisper through voxtype) and speech (piper) run locally. Known phrases run from a phrase table in 0.07 seconds with no model, a learned cache answers in about 4.5 seconds, and a new sentence goes to the user's own coding agent (claude, codex, gemini, opencode and others) in about 13 seconds. Questions such as how do I take a screenshot are answered with the key to press, read live from hyprctl binds and omarchy commands on that machine. An optional Omarchy bar plugin shows whether the wake word is listening and lets the user stop it, turn speech off so answers come in writing only, and choose the microphone and the speaker separately. Complaints such as a Bluetooth fault are diagnosed from 41 read-only probes that the model picks by name, and repairs are proposed, not run. The article covers six real uses, the argv and allowlist safety model, a window title prompt injection that worked and the three changes made after it, lessons from building a local wake word, install steps and known limits, including that the repository's own code is MIT while the default openWakeWord model (hey_marvin_v0.1) is CC BY-NC-SA 4.0, non-commercial, so commercial users should train their own wake word model.
Frequently Asked Questions
- What is Omarchy Voice?
- Omarchy Voice is a free, open-source voice assistant for Omarchy, the Arch Linux and Hyprland distribution. You say "Hey Marvin" and then a command or a question. It can open apps, switch workspaces, change the volume, take a screenshot and lock the screen, and it answers questions such as "how do I close a window" with the key bound on your own machine. Cloud First Consulting built it and publishes it under the MIT licence at github.com/Cloud-First-Consulting/omarchy-voice.
- Does Omarchy Voice run locally, and what leaves my machine?
- Wake word detection (openWakeWord), recording (PipeWire), transcription (whisper through voxtype) and speech (piper) all run on your machine. Commands in the phrase table, such as "open the browser" or "workspace two", never touch a model. A question, a complaint or a sentence the phrase table does not recognise is sent as text to whichever coding agent you have set as Omarchy's default, together with the reference or probe output needed to answer it. The microphone stays open while the service runs, but until the wake word fires the audio is only scored in memory by the wake word model, which keeps a rolling 640 ms buffer and nothing else. Audio is never sent. An optional icon in the Omarchy bar shows whether the wake word is listening, and one click stops it. If you would rather not keep a microphone open at all, a push-to-talk keybinding runs the same dispatcher without the wake word.
- How do I know when Omarchy Voice is listening, and how do I stop it?
- Enable the bar icon with omarchy plugin enable omarchy-voice.marvin right. The icon shows whether the wake word is listening, and the panel behind it stops or starts the listener, turns speech on or off, and shows which microphone is open and which speaker it answers through. You can also say "stop Marvin" or "go to sleep", press SUPER+ALT+Z if you have bound the toggle, or run systemctl --user stop omarchy-voice-wake.
- Can Omarchy Voice answer without speaking out loud?
- Yes. Run omarchy-voice-audio speech off, or use the switch in the bar panel. Answers stop being read out and nothing else changes: the notification is still drawn and the text is still printed, so you read the answer instead of hearing it. It is a separate switch from listening, so you can keep voice commands working in a room full of people without the machine talking back.
- Which coding agents does Omarchy Voice work with?
- It uses whichever agent Omarchy is set to, which you choose with the command omarchy default agent. Eight agents can answer a single question without a terminal and are called directly: claude, codex, gemini, opencode, crush, cursor-agent, copilot and grok. Five others (pi, omp, openclaw, hermes and muse) have no one-shot mode, so answers fall back to claude when it is installed, and the assistant says so. Handing work off with "ask the agent to ..." works with all thirteen. The phrase table works with no agent installed.
- How do I install Omarchy Voice?
- You need Omarchy on Arch with Hyprland and PipeWire, plus jq and a coding agent. Create a Python virtual environment for openWakeWord, download the piper binary and a voice, then clone the repository and run ./install.sh. The installer symlinks the commands into ~/.local/bin, enables a systemd user unit and creates a config file without overwriting an existing one. Run omarchy-voice-wake-check to confirm it came up healthy, then say "Hey Marvin, open the browser". Full steps are in the README.
- Can I change the wake word from Hey Marvin?
- Yes, within limits. The name used in notifications and stripped from the front of a command comes from wake_words in ~/.config/omarchy/voice-wake.json. The detector is a neural model trained on one phrase, so you set wake_model to another model that ships in the openWakeWord package, or train one for your own phrase. After any change, run omarchy-voice-wake-test, which reports the margin between the worst real wake and the best near miss.
- Is it safe to let a voice assistant run commands on my computer?
- It carries risk, and you should read the code before you run it. The design limits that risk in three ways. The model returns argument arrays and nothing reaches a shell, so there is no quoting or injection surface. Every program name is checked against a small allowlist on every run, including replays from the learned cache, and curl, nmcli and xdg-open are further restricted by how they are used. The planner refuses shutdown, reboot and logout, which need an exact spoken phrase instead. The software is provided as is, without warranty, and you use it at your own risk.
- Does Omarchy Voice work on other Linux distributions or plain Hyprland?
- We built it for Omarchy and have only run it there. The phrase table drives Omarchy's own omarchy commands, transcription uses the voxtype tool that ships with Omarchy, and the help feature reads omarchy commands as well as hyprctl binds. The code is MIT licensed, so you are free to adapt it to another Hyprland setup, but we have not tested one.
- Is Omarchy Voice an official Omarchy project?
- No. It is an independent project by Cloud First Consulting. It is not affiliated with, endorsed by or supported by the Omarchy project or its authors. Its commands are named omarchy-voice-* only so that they sit beside Omarchy's own command namespace.
- What does Omarchy Voice cost?
- The software is free under the MIT licence. Questions and unrecognised sentences are answered by your own coding agent, so they use whatever subscription or API credit that agent already runs on. Phrase table commands cost nothing.
- Can I use Omarchy Voice commercially?
- The code in the repository is MIT licensed and contains no third-party code, so you can use, change and sell it. The pieces it downloads at install time carry their own licences. The default wake word model, hey_marvin_v0.1, is one of openWakeWord's pre-trained models, which its authors license under CC BY-NC-SA 4.0 for non-commercial use only. For commercial use, train your own wake word model with openWakeWord, which generates its training data synthetically, and set wake_model to it. The licence of the default piper voice, en_GB-alan-medium, is unclear, because its model card points to a Mycroft AI source marked All Rights Reserved inside a CC-BY-SA-4.0 repository. Any piper voice works, so pick one whose terms you can read. This is a summary of what the upstream projects state, not legal advice.
Our Services
Contact Cloud First Consulting
Email: info@cloudfirstconsulting.com
Location: London, United Kingdom
Hours: Monday-Friday, 9:00 AM - 6:00 PM GMT
Book a Free 30-min Discovery Call