viora
AI staff that listen, talk and finish the work, in English and Swahili. By INCPRITECH.
- Voice desk (
viora desktop): a Jarvis-style voice assistant on your computer that thinks with the AI you already use (Claude Code, opencode, Codex, Gemini CLI, Cursor, Qwen Code, Goose, Aider, Amp, Crush, any command, or an API/Ollama model). - Tasks (
viora task): hand it a job; your agent works in the background and viora tells you aloud when it's done. - MCP server (
viora mcp): gives any MCP app a voice, ears, viora answers and background tasks. - Website and app assistant: answers customers only from a business's own information, with WhatsApp handoff.
Natural female and male voices in English and Swahili, and Swahili detection that handles mixed sentences.
On your computer
uv tool install "viora-ai[desktop]" # or: pipx install "viora-ai[desktop]"
viora setup # AI, ears, voice and wake word
viora desktop # talk ("viora, …"), or type
viora task "tidy the screenshots on my desktop"
claude mcp add viora -- viora mcp # or any MCP app: viora mcp --help
Extras: desktop (microphone/speaker and MP3 decoding on every OS), local (offline speech to text with faster-whisper), anthropic, pdf.
pip install viora-ai
The package is viora-ai on PyPI; in Python you import viora, and the command is viora.
Just want the viora command? uv tool install viora-ai (or pipx install viora-ai). On Arch, Ubuntu 24.04+ and Debian 12+, a plain pip install outside a virtual environment is blocked by the system; use one of these or a venv.
Self-host
viora init --example # writes viora.yaml (a sample school profile)
viora ingest # reads the profile and website, builds the knowledge base
viora ask "Do you offer school transport?"
viora serve # HTTP API, widget.js, sdk.js and live voice on :8000
Then add the widget to any page:
<script src="https://your-server/widget.js" data-site="kilele-academy" async></script>
Configure providers in .env: Cloudflare Workers AI (default), OpenAI-compatible APIs, Ollama, Anthropic Claude, or offline (VIORA_EMBEDDINGS=hash, VIORA_CHAT=extractive).
Use viora from Python software
from viora.client import Client
bot = Client("https://viora-cloud.depriver-tech.workers.dev", "your-site")
for text in bot.stream("Ada ya bweni ni shilingi ngapi?"):
print(text, end="", flush=True)
Real-time voice: viora.live.LiveSession, or viora talk --site your-site for a hands-free assistant in the terminal (pip install "viora-ai[audio]" on Windows and macOS).
Documentation: https://viora.depriver-tech.workers.dev/docs/
MIT licence.
Metadata
Release files for viora-ai 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| viora_ai-0.3.0.tar.gz | 91.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| viora_ai-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 194.7 kB
Release files / viora_ai-0.3.0.tar.gz
| Download URL | viora_ai-0.3.0.tar.gz |
|---|---|
| Size | 91.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6767ad043b7b1fb821941371284eb9f0b53417f9e0d07687bd4e108eae67e524
|
|
BLAKE2b-256 checksum How to use checksums |
8f353c68ce5a82598d1f74ea2b78d1ad08ed79d4d9fab1ec67a362930e01d1ec
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Omarchy","version":"4.0.4","id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / viora_ai-0.3.0-py3-none-any.whl
| Download URL | viora_ai-0.3.0-py3-none-any.whl |
|---|---|
| Size | 103.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
42226d6c729529577b70d06bcd8e4016ffe95649e733d1d4d55024f8a8017d15
|
|
BLAKE2b-256 checksum How to use checksums |
6d6b9f5ba5af4964d80f10c97695207723c169a747697b2f3fc4e2b1aaac0a12
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Omarchy","version":"4.0.4","id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|