Personal project · 100% self-hosted

A voice AI that never phones home.

Javi is a voice assistant and agent orchestrator running entirely on my own GPU. No cloud APIs. No data leaving the machine.

Video demo — coming soon
12Bparams, self-hosted
0.2sspeech-to-text
~1stext-to-speech
67tests passing

Under the hood

Everything a cloud assistant does. Nothing it leaks.

A real agentic loop

12B LLM on Ollama (ROCm) with native tool calling: it plans, executes tools, checks results and answers — unsupervised.

Voice, end to end on GPU

Whisper large-v3-turbo transcribes in 0.2s; XTTS-v2 speaks the reply in ~1s per sentence. Conversation feels live.

Allergic to hallucinations

Self-hosted meta-search (SearXNG), deterministic deep-research and mandatory citations on every factual claim.

Works while I sleep

Automated job radar on n8n: 6 sources scanned, ranked by salary and seniority, summarized out loud every morning.

Hardened like production

SSRF guards, CORS scoping, healthchecks, supply-chain pinning — and 67 tests keeping it honest.

Local by principle

Every container runs on my own hardware. Privacy isn't a feature flag — it's the architecture.

Architecture

One orchestrator, four self-hosted engines

Web client Orchestrator · Node.js
Self-hosted containers LLM · Ollama 12B STT · Whisper TTS · XTTS-v2 Search · SearXNG

Private repo — but I'll happily walk you through any of it on a call.

Built with

Node.js Python Ollama · ROCm Whisper XTTS-v2 SearXNG n8n Docker

Curious how it's built?

I'll walk you through the architecture, the trade-offs and the war stories.