Skip to content
Rahil edited this page Jan 15, 2026 · 2 revisions

MMM-Assistant Wiki

Overview

MMM-Assistant is a modular, offline-first voice assistant framework for MagicMirror².
It acts as the central orchestrator that connects hotword detection, speech recognition, local LLMs, and text-to-speech into a single assistant pipeline.

The project is designed with privacy, extensibility, and Raspberry Pi compatibility in mind.


Goals

  • Run fully locally (no cloud dependency)
  • Keep components loosely coupled
  • Allow easy swapping of ASR, LLM, and TTS engines
  • Integrate cleanly with MagicMirror’s module system
  • Serve as an alternative base to cloud assistants

Architecture

MMM-Assistant follows a pipeline-based architecture:

Hotword Detector

Speech-to-Text (ASR)

MMM-Assistant (Core Orchestrator)

LLM (Local)

Text-to-Speech (TTS)

Audio Output

MMM-Assistant itself does not perform detection, transcription, or synthesis.
It coordinates these stages using MagicMirror notifications.


Core Responsibilities

  • Receive transcribed user input
  • Maintain short-term conversational context
  • Forward prompts to a local LLM
  • Receive and store assistant responses
  • Trigger TTS playback
  • Act as the single “brain” of the assistant

Module Communication

MMM-Assistant relies on MagicMirror notification events.

Typical flow:

  1. Hotword module signals listening state
  2. ASR module sends final transcript
  3. MMM-Assistant sends prompt to LLM backend
  4. LLM response is returned
  5. MMM-Assistant forwards text to TTS module

This approach keeps modules independent and replaceable.


Supported / Planned Integrations

Current (v0.0.1)

  • Local LLM via HTTP (e.g. Ollama)
  • Notification-based TTS triggering
  • Context-aware responses

Planned

  • Streaming ASR + LLM responses
  • Intent detection layer
  • MQTT / Home Assistant integration
  • Audio cues (listening, thinking, speaking)
  • Wake-word state management

Configuration

MMM-Assistant uses standard MagicMirror configuration.

Example:

{
  module: "MMM-Assistant",
  position: "top_left",
  config: {
    // Experimental – subject to change
  }
}

Configuration options will expand as the module stabilizes.


Development Status

  • Version: 0.0.1
  • Status: Experimental
  • Breaking changes expected
  • Not production-ready

This release focuses on validating the architecture.


Contribution Guidelines

  • Keep modules loosely coupled
  • Prefer notifications over direct imports
  • Avoid cloud-only dependencies
  • Ensure Raspberry Pi compatibility

Pull requests and architectural discussions are welcome.


License

MIT