MagicMirror2: modular smart mirror on Raspberry Pi
Open-source modular smart-mirror software showing calendar, weather and news behind a two-way mirror, usually on a Pi.

Key Facts
- Board: Raspberry Pi 3/4/5
- Display: any HDMI monitor + two-way mirror
- Software: Node.js/Electron
- Modules: 1000+ community
About This Project
MagicMirror2 is the software behind countless DIY smart mirrors. A Raspberry Pi drives a monitor placed behind two-way glass and shows modules like clock, calendar, weather, news and hundreds of third-party add-ons (Home Assistant, transit, photos). It is Electron-based and configured with one JavaScript file. The hardware can be as simple as a spare monitor and frame.
Source & Attribution

Illustration
Parts Needed
- Raspberry Pi 3, 4 or 5
- HDMI monitor (bezel removed, for a slim build)
- Two-way (one-way) mirror glass or acrylic
- Wooden frame
- Power supply
Steps
- 1
Prepare the Pi
Install Raspberry Pi OS with a desktop, connect the monitor and update the system.
- 2
Install Node.js
Install a current LTS version of Node.js, following the version the docs ask for.
- 3
Install MagicMirror²
Clone the repo, run npm run install-mm in the folder, copy config/config.js.sample to config/config.js, and start it with npm run start.
- 4
Configure modules
In config.js, set your location and units and enable modules such as weather (add your weather API key), calendar (an iCal URL) and news feeds. Install third-party modules into the modules folder.
- 5
Build the mirror
Mount the monitor behind the two-way mirror in a frame. Bright white text on a black background shows through best.
- 6
Autostart
Use pm2 (described in the docs) so MagicMirror starts on boot and restarts if it crashes.
Not included: 3D-printed case, wire, solder, USB cable
Related Projects


