Voice desk: viora desktop
A hands-free assistant on your own computer. Say “viora”, ask anything in English or Swahili, and hear the answer while it's still being written. It thinks with the AI you already use, and can take tasks that it finishes in the background.
Install
macOS and Linux:
curl -fsSL https://viora.depriver-tech.workers.dev/install.sh | sh
Windows (PowerShell):
powershell -ExecutionPolicy ByPass -c "irm https://viora.depriver-tech.workers.dev/install.ps1 | iex"
Or with Python 3.10+: uv tool install "viora-ai[desktop]" (or pipx install "viora-ai[desktop]"). Then:
viora setup # choose the AI, ears, voice and wake word; plays a test viora app # viora in its own window viora desktop # or the full-screen terminal UI viora app --shortcut # add viora to your applications menu viora doctor # check microphone, speaker, voice, ears and AI
Two ways to see it
viora app opens viora in its own window: an animated orb that shows what it's doing (waiting for its name, listening, hearing you, thinking, working, speaking), the conversation as it's written, your background tasks, a text box, and buttons to stop it, turn the microphone off or start over. It uses Chrome, Edge, Brave or Chromium as an app window when one is installed, or your default browser. Closing the window ends viora.
viora desktop runs the same assistant as a full-screen terminal UI: the logo and your settings at the top, the conversation in the middle, an animated status bar with a live microphone meter, and an input line. Esc stops viora talking, Enter sends, Ctrl+C quits. viora desktop --plain prints simple lines instead, for logs and basic terminals.
Choose its brain
viora runs the official command-line tool you have installed and signed in to, so it uses your existing subscription. Agent brains can search the web and act on your computer; API brains are fast and conversation-only.
brain | Uses | Sign in once with |
|---|---|---|
claude | Claude Code, your Claude Pro/Max plan | claude |
opencode | opencode, with any provider you set up there | opencode auth login |
codex | OpenAI Codex CLI, your ChatGPT plan | codex login |
gemini | Gemini CLI, your Google account | gemini |
cursor, qwen, goose, aider, amp, crush | Cursor CLI, Qwen Code, Goose, Aider, Amp, Crush | each tool's own login |
command | Any other command-line AI: set command: "my-agent --ask {prompt}" | |
anthropic, openai, groq, openrouter, cloudflare | A model by API key | the key, asked by viora setup |
ollama | A model on your computer, offline | ollama pull llama3.2 |
With Claude Code, one process stays open across questions, so only the first answer waits for it to start. Conversation turns use low effort for speed; tasks use full effort.
What it may do
actions | Meaning |
|---|---|
safe (default) | Search the web and read files. Never changes anything. |
full | Also edit files and run commands in workdir. With Claude Code this is auto mode: risky steps still need your approval. viora is also told to ask before anything destructive or hard to undo. |
off | Conversation only. |
Ears, voice and wake word
- Ears (speech to text): Groq Whisper (free tier, fast), Cloudflare Whisper (free daily allowance), OpenAI, or
localfaster-whisper, offline (pip install "viora-ai[local]"). - Voice: Microsoft neural voices (
edge, free, no key) are the default, with natural English and Swahili. Also ElevenLabs, Azure, Cloudflare Aura, OpenAI orsystem. Pickfemaleormale, or a name: see Voices. - Wake word: say it before a question (“viora, …”). For 20 seconds after an answer, follow-ups don't need it. Set
wake: ""to always listen. - Interrupting: while viora speaks, say its name (“viora”), or “stop” / “acha”, and it stops at once and listens. “viora, what about tomorrow?” stops it and asks the new question. It recognises its own voice coming back through the speakers and ignores it. You can also press Esc or the Stop button. With headphones, set
barge_in: trueand any speech interrupts it.
Things to say
| Say | What happens |
|---|---|
| “viora” | “Yes?” / “Naam?”, then it listens |
| “viora” while it talks | Stops at once and listens |
| “stop”, “acha”, “nyamaza” | Stops talking and cancels the answer |
| “new conversation”, “anza upya” | Forgets the conversation so far |
| “task: …”, “kazi: …” | Starts a background task and tells you when it's done |
You can also type at any time; /stop, /reset, /mute, /help and /quit work in the terminal. While the AI uses a tool, viora says “one moment” / “subiri kidogo” so it never goes quiet, and soft sounds tell you when it heard you.
Settings file
viora setup writes ~/.config/viora/desktop.yaml (Windows: %APPDATA%\viora\desktop.yaml) and keeps keys in a .env file next to it, readable only by you. Every setting can also be set with an environment variable such as VIORA_DESKTOP_BRAIN=opencode, or for one run with viora desktop --brain opencode --voice elevenlabs.
name: viora user: Priver brain: claude model: sonnet actions: safe workdir: ~/Projects ears: groq voice: edge voice_en: andrew # or female / male voice_sw: daudi wake: viora language: auto # auto | en | sw barge_in: false sounds: true