◆ The system

One system, many ravens.

How Thought, Memory, voice, and identity connect into a single self-hosted whole

Each project here has its own page. But none of them is really meant to run alone — they're parts of one system that listens, thinks, remembers, builds, and answers, all on hardware I own. Muninn sits at the center: it's the interface to the brain and the place every request lands; the satellites, the pipeline, and the other ravens are the senses and hands around it. The clearest way to see how they fit is to follow a single spoken sentence all the way through and back.

The journey of one request

You say something out loud

From the moment you speak to the moment the house answers — every step is a different raven doing its part.

  1. A satellite hears you. Heimdall (on a Linux box) or Bifrost (on an Android tablet) is the device in the room — it captures the audio and, in ambient mode, never needs a wake word.
  2. The voice pipeline makes sense of it. Voice-activity detection finds the speech, speaker identification works out who said it, and streaming transcription turns it into text. When several satellites hear the same thing, an arbitration gate decides which one owns the turn.
  3. Muninn thinks. The memory raven takes the text — with who and where attached — recalls what it knows about you, picks the right tool (home control, music, web, camera, calendar…), and decides what to do. Small context, deep recall.
  4. If it's a build, Muninn hands it to Huginn. Ask for code and the job goes onto a queue that the thinking raven works headlessly — it plans, edits, runs the tests, and loops until they pass, then reports back. Memory delegates; Thought builds.
  5. The answer comes back as speech. The reply is spoken with a natural voice and routed to the same satellite that heard you — ducking the music rather than stopping it, so it lands in the right room.
  6. And it remembers. In the background, what mattered is extracted into memory, consolidated, linked, and slowly allowed to decay — so the next conversation starts from a system that already knows you.

And that's only the spoken door. The same brain is a message away: Muninn runs as its own service and connects to a self-hosted Matrix server as a client — a bot speaking the Matrix API; they're separate services — so you can reach it from any device, phone, laptop, anywhere, with the exact same memory and the exact same tools. Type a message, or just tap record and send a voice message: it transcribes what you said, answers, and can reply with a spoken voice note of its own. Matrix is also how it reaches you — scheduled nudges, reminders, alerts, and progress from a running Huginn job all arrive as ordinary chat messages. Whether you type or talk, it's one assistant behind a single door.

Matrix was a deliberate choice. It's an open, federated protocol you can host yourself — the same own-your-infrastructure principle as the rest of the flock, so the messaging layer isn't rented either — and it's simply an excellent channel: mature clients on every platform, voice notes, threads, and built-in encryption.

Not just when asked

Muninn acts on its own

A request from you is only one way Muninn comes alive. It can also wake itself — which is what makes it reactive rather than a passive assistant that only speaks when spoken to.

  1. On a schedule — the heartbeat. Cron-style jobs let Muninn run on a timer: proactive check-ins, reminders, recurring tasks, periodic housekeeping. It can start a conversation, not just finish one.
  2. On events from the house (planned). Home Assistant events — a sensor tripping, a device changing state, an automation firing — will be able to wake Muninn so it can react to what's actually happening in the home, not only to what someone said.

When Muninn acts on its own, it reaches you the same way it answers a question: a Matrix message or a spoken note in the right room. Same brain, same memory, same tools — it just doesn't have to be asked first.

The same thing, as a map

Four layers, one flock

Edge devices at the top, the foundation everything stands on at the bottom, the request flowing straight down the middle and back up.

🗣   💬
You — out loud, or by text & voice messages on Matrix
live voice flows down through the satellites & pipeline; a Matrix message — typed or recorded — goes straight to the Mind (voice notes transcribed on the way)

Edge · the satellites

The devices in the room

Heimdall · Linux Bifrost · Android far-field mics speak the reply back
audio

Senses · the voice pipeline

Turning sound into meaning

voice-activity detection speaker ID streaming STT multi-satellite arbitration neural TTS
text · who · where

Mind · the two ravens

Muninn · Memory  orchestrates;  Huginn · Thought  builds

reached by live voice, or Matrix text & voice notes wakes itself · heartbeat / events living memory sub-agent tools home · music · web · vision coding jobs ▸ Huginn plan · edit · run · verify
reply — spoken back to the room that asked, or sent straight back in the Matrix chat

Foundation · what it all stands on

Owned, not rented

local GPUs Home Assistant Tyr · planned self-hosted Matrix server your data, your house
Each piece, in one place

Who does what

Muninn — the orchestrator

The memory raven and the hub of the system. It holds the living memory, talks on Matrix and by voice, and decides which tool — or which other raven — handles each request.

Huginn — the builder

The thinking raven. When something needs to be written and made to work, Muninn hands the job to Huginn, which builds, tests, and verifies it against a real gate before calling it done.

Voice Pipeline — the senses

The self-hosted speech stack that everything hears and speaks through: detection, transcription, speaker identification, and natural text-to-speech, all on local GPUs.

Heimdall + Bifrost — the edge

The two kinds of satellite that put the system in a room: a Linux box and an Android tablet. Each joins as a real, native Home Assistant device — speaking ESPHome's own protocol, not a browser showing a dashboard — so it listens and answers as a first-class device.

Tyr — the identity · planned

A from-scratch OAuth2 / OpenID Connect server, built by hand rather than configured off the shelf. It isn't wired into the system yet — it's there to provide one sign-in for an in-progress web/mobile interface to Muninn, instead of a password per app.

Home & hardware — the ground

Home Assistant is the nervous system to the house; a homelab of GPUs is the muscle. No cloud account sits in the middle, and nothing phones home.

What holds it together

Why it's one system and not five apps

The pieces share a spine. One brain — Muninn — is the place requests land and decisions get made; the other projects are its senses, its hands, and its memory. One identity — Tyr, in progress — will mean a single sign-on instead of a sprawl of logins. One set of hardware — local GPUs and a house wired through Home Assistant — means every model, every voice, and every memory runs on machines I own.

That's the whole point of building it this way: the same conviction in every layer, so capable AI can be owned rather than rented, and look inward at one home instead of outward at everyone's.