Metadata-Version: 2.5
Name: viora-ai
Version: 0.3.1
Summary: viora: AI assistants that talk, in English and Swahili. A website/app assistant that answers from your own information, a Jarvis-style voice assistant for your computer that thinks with Claude Code, opencode, Codex, Gemini or any model, background tasks, and an MCP server that gives any AI a voice. By INCPRITECH.
Project-URL: Homepage, https://viora.depriver-tech.workers.dev
Project-URL: Documentation, https://viora.depriver-tech.workers.dev/docs
Project-URL: Source, https://github.com/Stark-Priver/viora
Author-email: INCPRITECH <hello@incpritech.com>
License-Expression: MIT
License-File: LICENSE
Keywords: assistant,chatbot,claude-code,cloudflare,jarvis,mcp,opencode,rag,swahili,text-to-speech,voice-assistant
Classifier: Development Status :: 4 - Beta
Classifier: Framework :: FastAPI
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.10
Requires-Dist: beautifulsoup4>=4.12
Requires-Dist: fastapi>=0.110
Requires-Dist: httpx>=0.27
Requires-Dist: numpy>=1.26
Requires-Dist: pydantic>=2.6
Requires-Dist: pyyaml>=6.0
Requires-Dist: typer>=0.12
Requires-Dist: uvicorn>=0.29
Requires-Dist: websockets>=12
Provides-Extra: all
Requires-Dist: anthropic>=0.60; extra == 'all'
Requires-Dist: miniaudio>=1.59; extra == 'all'
Requires-Dist: pypdf>=4.0; extra == 'all'
Requires-Dist: sounddevice>=0.4; extra == 'all'
Provides-Extra: anthropic
Requires-Dist: anthropic>=0.60; extra == 'anthropic'
Provides-Extra: audio
Requires-Dist: sounddevice>=0.4; extra == 'audio'
Provides-Extra: desktop
Requires-Dist: miniaudio>=1.59; extra == 'desktop'
Requires-Dist: sounddevice>=0.4; extra == 'desktop'
Provides-Extra: dev
Requires-Dist: anthropic>=0.60; extra == 'dev'
Requires-Dist: pypdf>=4.0; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.23; extra == 'dev'
Requires-Dist: pytest>=8; extra == 'dev'
Provides-Extra: local
Requires-Dist: faster-whisper>=1.0; extra == 'local'
Provides-Extra: pdf
Requires-Dist: pypdf>=4.0; extra == 'pdf'
Provides-Extra: voice
Requires-Dist: miniaudio>=1.59; extra == 'voice'
Description-Content-Type: text/markdown

# viora

AI staff that listen, talk and finish the work, in English and Swahili. By [INCPRITECH](https://incpritech.com).

- **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

```sh
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`.

```sh
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

```sh
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:

```html
<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

```python
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.
