# MagicMirror² — Open-Source Smart Mirror Platform > MagicMirror² is a modular open-source smart mirror platform that turns a Raspberry Pi and a two-way mirror into a customizable information dashboard. It supports hundreds of community modules for weather, calendar, news, home automation, and more. ## Install Save as a script file and run: # MagicMirror² — Open-Source Smart Mirror Platform ## Quick Use ```bash # Install on Raspberry Pi OS or Debian/Ubuntu curl -sL https://raw.githubusercontent.com/sdeber/MagicMirror-Setup/master/raspberry.sh | bash # Or install manually git clone https://github.com/MagicMirrorOrg/MagicMirror.git cd MagicMirror && npm run install-mm cp config/config.js.sample config/config.js npm run start ``` ## Introduction MagicMirror² is an open-source modular smart mirror platform built on Electron and Node.js. It lets you build a voice-free information dashboard behind a two-way mirror, displaying weather, calendar events, news headlines, and virtually anything else via community-contributed modules. ## What MagicMirror² Does - Renders a full-screen dashboard designed for two-way mirror displays - Ships with built-in modules for clock, calendar, weather, news feed, and compliments - Supports over 1,000 third-party modules contributed by the community - Runs on Raspberry Pi, Linux desktops, or any system with Node.js - Provides a simple JSON config file for module selection and layout ## Architecture Overview MagicMirror² is an Electron application that loads a local web page as the mirror UI. The server component runs on Node.js and manages module lifecycle, configuration, and a socket-based notification system. Each module is a self-contained JavaScript class that registers with the core, receives periodic updates, and renders its own DOM fragment into a configurable screen region. ## Self-Hosting & Configuration - Requires Node.js 20+ and npm; Raspberry Pi OS is the recommended platform - Edit `config/config.js` to add or remove modules and set their positions - Install third-party modules by cloning them into the `modules/` directory - Configure the built-in weather module with a free OpenWeatherMap API key - Run as a systemd service with `pm2` for automatic startup on boot ## Key Features - Completely modular architecture with hot-reloadable modules - Position-based layout system (top_bar, upper_third, middle_center, etc.) - Module notification system for inter-module communication - Built-in update mechanism for core and third-party modules - Active community with a dedicated forum and module registry ## Comparison with Similar Tools - **Home Assistant dashboards** — full home automation but heavier; MagicMirror² is purpose-built for mirror displays - **Dakboard** — commercial SaaS dashboard; MagicMirror² is fully self-hosted and free - **Grafana panels** — metrics-focused; MagicMirror² targets consumer info at a glance - **Smart Homey** — proprietary hardware; MagicMirror² runs on commodity Raspberry Pi ## FAQ **Q: Do I need a Raspberry Pi?** A: No. MagicMirror² runs on any system with Node.js, but a Pi is the most common deployment for physical mirror builds. **Q: Can I control it remotely?** A: Yes. The MMM-Remote-Control module exposes an HTTP API for managing the mirror from a phone or browser. **Q: Does it support voice control?** A: Community modules integrate with Alexa, Google Assistant, and local wake-word engines like Porcupine. **Q: How do I create my own module?** A: Extend the base Module class in JavaScript, register your module in config.js, and follow the developer documentation for lifecycle hooks. ## Sources - https://github.com/MagicMirrorOrg/MagicMirror - https://magicmirror.builders/ --- Source: https://tokrepo.com/en/workflows/asset-e2a15ba1 Author: Script Depot