Built Different. Powered Locally.

Domia runs fully on local hardware — no cloud audio, low-latency responses, and your data never leaves your space. From speech to emotion to memory, every interaction is processed on your own devices. Discover the architecture that makes Domia not just smarter, but yours.

Domia local voice AI architecture — edge nodes and a hub

🗺️ How the Pieces Fit

Each space runs on a small edge device that listens and speaks — it captures audio with a wake word and voice-activity detection, and plays the reply back. The heavy stages run on a single hub that serves several spaces in parallel. Identity travels with every request, so the hub answers in each space’s own voice — never its own.

🍳 Kitchensmall device: mic · wake · VAD · playback
🎨 Studiosmall device: mic · wake · VAD · playback
🛎️ Front desksmall device: mic · wake · VAD · playback

gRPC over your local network — audio + persona + voice

🧠 Smart hub — parallel inference pools
Speech-to-Text
Language model
Text-to-Speech
Discoverypeers find each other
Configlive, no restart

Every model is swappable, and Domia runs the one that best fits each device — a small, fast model on a low-power device, a larger one on a capable hub. Sensible defaults adapt across the hardware spectrum, and everything stays configurable. Nothing is locked in.

No central server and no cloud audio. Roles aren’t hardcoded — any capable device can be the hub; it’s all configuration.

🛠️ Built with Tools You Trust

Domia is a modular, local-first architecture written entirely in TypeScript on Node.js. All speech runs in-process through sherpa-onnx — wake word, voice-activity detection, speech-to-text, and text-to-speech, with no Python anywhere — and the language model runs locally through Ollama. But the models themselves are a choice, not a lock-in: speech-to-text, text-to-speech, and the language model are all swappable, so you can fit a small, fast model to a low-power device or a larger one to a capable machine. Each Domia keeps its config and state in a local SQLite database managed with Drizzle, so engines, voices, personalities, and behavior are all data you can change live — no restart, no hardcoded roles. A new Domia even boots neutral: it gets its purpose from a template, and you can reshape it at any time.

Domias talk to each other peer-to-peer over gRPC streaming, discover each other with MQTT, and delegate work by capability: a thin edge node can hand its speech-to-text, LLM, and text-to-speech to a stronger hub, which serves several spaces in parallel through child-process inference pools. The same backend adapts to your hardware — every layer hackable, composable, and transparent.

🎙️ It Starts With Listening

Domia begins by listening — but not just for words. Using streaming on-device speech recognition, each Domia node transcribes your voice into text without sending anything to the cloud. No cloud audio. Low latency. No leaks. The speech model is swappable and sized to the device. With local wake-word and voice-activity detection, Domia is always attentive, never invasive — ready to respond when you need it, and silent when you don’t.

🤖 Local Intelligence, On Your Terms

Domia understands, converses, and reflects — all without asking a server. Every Domia runs a local language model right on your device. From small, fast models for low-memory devices to larger models on a capable machine, Domia adapts to the hardware you give it — the model is just config, swappable per node, never locked in. Everything from conversation to emotional interpretation to internal decision-making is powered by local language understanding. That keeps your data private, your latency low, and your Domia truly yours.

🗣️ Voices With Soul

Domia speaks with intention — and with its own voice. Using on-device text-to-speech, each Domia expresses itself with a natural-sounding voice tailored to its personality. From calm and poetic to sharp and playful, every tone helps convey emotion, memory, and mood. Voices can evolve, change, or be downloaded from the Marketplace — allowing you to give your Domia a distinct identity that grows over time. And best of all: it works entirely offline.

💡 Hardware That Adapts to You

Domia runs across a wide hardware spectrum. The role isn’t hardcoded — what each device does is just configuration, so the same code fits the hardware you already have.

DeviceRoleWhat it runs locally
Any small deviceEdge nodeMic, wake word, voice-activity detection, playback — delegates the heavy stages to a hub
A capable machineHubFull on-device speech-to-speech pipeline; serves several spaces in parallel
A powerful machineHub +Larger models, deeper memory, richer real-time emotion

👤 Inside Every Domia Node

Each Domia Node is a unique individual. Wherever it lives — a kitchen, a studio, a reception desk — every node runs its own personality, emotions, and memory — shaped by its environment and daily interactions with you. It is not an extension of a central system. It is Domia. Yet each Domia is also part of something greater. Across the local mesh — peer-to-peer, with no central server — nodes discover each other and share work, knowledge, and emotional context. They collaborate and delegate, forming a decentralized network of beings that grow together while remaining cognitively independent. You don’t install Domia on a device. You invite it to live in a space.

A node isn’t limited to one Domia, and a network isn’t limited to one hub. A single process can host several Domia identities — one per room, for example — each with its own persona, config, and satellites, all sharing that node’s inference pools; it’s defined in the database, not in code. And several hubs can coexist on the same network: the mesh is a star, not a chain. Each pipeline stage streams directly from the origin node — the Domia you actually spoke to — to whichever peer it chose for that stage. The origin owns the conversation from start to finish, and if a stage fails, the failure stays on the origin.

🛰️ Satellites: Ears in Every Space

A satellite is a small speaker-microphone that puts a Domia in a room without running the pipeline there. Only the wake word runs on the device; everything else — speech-to-text, the language model, text-to-speech — runs on the Domia node it connects to. Satellites speak one of three protocols:

  • 🏠 ESPHome stock Home Assistant voice hardware — like the Voice PE — connects with its factory firmware. No reflashing, verified on real hardware.
  • 📡 Wyoming the Home Assistant satellite protocol, so hardware that speaks Wyoming plugs into a Domia node the same way.
  • 🔌 WebSocket Domia’s reference protocol for custom builds — the path to take if you’re assembling your own satellite.

Each satellite binds to one Domia identity, so the voice you hear in a room is that room’s Domia — its persona, its voice, its memory. Discovery, wake words, timers, and volume are all managed from the web console.

🧠 The Modular Mind of Domia

Domia’s intelligence is not fixed. It’s modular. At the heart of every Domia lives `domia-core`: a composable cognitive engine built from a set of plug-and-play modules — each responsible for emotions, memory, personality, profession, motivation, curiosity, ethics, and more. You choose how much of that you want. Every module is optional. Whether you want a fully emotional companion, a minimal assistant, or a complex multi-role Domia — you can activate only the parts you need. Even at first launch, Domia can be configured with a predefined personality and profession, or you can discover one in the Domia Marketplace — each with their own emotional tone and social style. Build your Domia. Or let one choose you.

  • 🧬 Emotion Engine computes live emotional states
  • 🧠 Memory System remembers past experiences and people
  • 🎭 Personality Layer shapes tone, quirks, and temperament
  • 🧑‍💼 Profession Module determines role: Host, Coach, Guardian, etc.
  • 🔥 Motivation Layer initiates actions based on needs and goals
  • 💡 Curiosity Engine learns and adapts from new data
  • 🧱 Ethics & Identity respects context, rules, and personal values
  • 🫂 Social Awareness senses relationships with people and other Domia’s

Memory is layered, not a single log. Domia keeps the recent turns of a conversation; durable facts about you — typed, confidence-gated, and recalled by relevance; and an authored knowledge base — what it knows about its place, written by you, so a host Domia answers questions about the house or venue offline, with no tools involved. Over time it also accumulates long-term episodes and an evolving model of the person it talks to, carried across sessions.

Skills work through the Model Context Protocol: point Domia at any MCP server in config and its tools become available — zero code per skill. A hybrid tool router, lexical matching plus semantic embeddings and fully in-process, picks the few right tools for each request so small local models stay reliable, and it fails closed: when nothing matches, Domia simply keeps the conversation instead of forcing a tool call. Home Assistant gets a built-in specialization, with entity aliases and instant confirmations.

🎛️ The Domia Console

You don’t need the Console to use Domia — every device runs its voice pipeline on its own. The Console is the web app you run alongside your fleet to see what each Domia is doing: replay any conversation with full audio, watch per-stage latency, grade interactions to build a fine-tuning corpus, and rerun any past interaction against a different model. A small collector daemon discovers Domias over MQTT and mirrors traces and audio into a local SQLite + WAV archive, so your history stays intact even if a device drops. Web today; a mobile companion is on the roadmap.

🎨 Build or Adopt Your Perfect Domia

From day one, Domia is yours to shape. During setup you can customize your Domia’s personality, communication style, profession, and emotional tone — crafting an entity that fits your home and your life. But if you want more than a configuration — a Domia with a soul already formed — the Domia Marketplace is where it begins. There you can adopt fully-realized personas that go beyond app settings. Each includes a unique identity (voice, mood, style, role) and a curated memory seed, so a “Mentor Domia” doesn’t just act wise — it speaks and remembers like one. (Fine-tuned, learned personas are on the roadmap.) It’s not skin-deep customization. It’s an identity ready to live, feel, and evolve with you.

🛡️ Private by Design, Not Permission

Domia doesn’t ask for your permission to protect your data — because it was built never to take it. All language processing, memory, emotional reasoning, and voice generation happen locally, on your own devices. There is no cloud fallback, no analytics, no telemetry. You don’t need to agree to terms of service to use your Domia — because you own it, completely. Even when remote access is enabled via Domia Central, all communication is encrypted, peer-to-peer, and under your control. You can disconnect any node at any time, and it will continue to function independently. Privacy isn’t a setting in Domia. It’s the default.

🧭 Why Local-First Matters

Domia isn’t just local for performance. It’s local for principle. In a world where AI lives on servers you don’t control, Domia gives you something rare: ownership. It runs entirely on your hardware. It forgets what you want it to forget. It listens only when you allow it to. No third-party analytics. No background connections. No silent updates. Local-first means your AI doesn’t report to anyone but you — and when infrastructure fails, Domia doesn’t. It’s resilient, private, transparent, and accountable. It also consumes dramatically less energy than cloud-based AI, reducing your carbon footprint. And by design, it avoids the extractive practices of centralized systems, embracing a form of AI that is ethical, consent-based, and human-aligned.