A MagicMirror² module for displaying rotating affirmations, reminders, reflective prompts, time of day relevant chores, and curated quote packs from multiple named sets.
It supports local JSON packs, simple text sets, manual switching between packs, and automatic pack switching by time of day.
- Multiple named packs
- Local JSON pack support
- Simple text set support
- Optional time-based pack switching
- Optional manual switching between packs
- Optional tap/click cycling
- Remembers the last selected pack
- Works for affirmations, reminders, reflective text, and quote/dialogue packs
Clone or copy the module into your MagicMirror modules folder so it sits at:
~/MagicMirror/modules/MMM-CharmsThen add it to your config/config.js file.
{
module: "MMM-Charms",
position: "lower_third",
config: {
updateInterval: 60000,
fadeSpeed: 1500,
defaultSet: "general",
availableSets: {
general: "packs/general.json",
calm: "packs/calm.json",
confidence: "packs/confidence.json",
family: "packs/family.json",
gentleReminders: "packs/gentle-reminders.json",
hardDays: "packs/hard-days.json",
grounding: "packs/grounding.json",
quotes: "packs/quotes.json",
bollywood: "packs/bollywood.json",
videoGameQuotes: "packs/video-game-quotes.json"
},
showSetName: true,
enableButtons: true,
enableTapCycle: true,
buttonStyle: "dots",
buttonColors: {
general: "#ffffff",
calm: "#7fc8f8",
confidence: "#f6c65b",
family: "#7bd389",
gentleReminders: "#c8b6ff",
hardDays: "#ffadad",
grounding: "#9bf6ff",
quotes: "#ffd6a5",
bollywood: "#f4a261",
videoGameQuotes: "#a0c4ff"
},
enableAutoTimeSwitch: false
}
},- General
- Calm
- Confidence
- Family
- Gentle Reminders
- Hard Days
- Grounding
- Quotes
- Bollywood
- Video Game Quotes
You can add your own packs by creating a JSON file in the packs/ folder and then adding it to availableSets in config/config.js.
Example:
availableSets: {
general: "packs/general.json",
calm: "packs/calm.json",
myCustomPack: "packs/my-custom-pack.json"
}The key name (myCustomPack) is the set name used by buttons and time-based switching.
To switch packs automatically during the day, enable enableAutoTimeSwitch and define an autoSetByTime array.
Example:
enableAutoTimeSwitch: true,
autoSetByTime: [
{ start: "05:00", end: "11:59", set: "calm" },
{ start: "12:00", end: "16:59", set: "confidence" },
{ start: "17:00", end: "20:59", set: "family" },
{ start: "21:00", end: "04:59", set: "general" }
]Each set value must match a key from availableSets.
- JSON packs can be used for richer pack content and easier curation.
- Simple text files are still supported for straightforward one-line-per-item sets.
- Packs can be used for affirmations, reflective prompts, practical reminders, quotes, film lines, or other short rotating text collections.
- If your global
custom.cssapplies backgrounds, borders, or glass effects to all modules, you may want to excludeMMM-Charmsso its content box does not stretch wider than intended.
Some packs included with this module may be generated, edited, or refined with AI assistance. Users should review and curate all content before using it in personal, family, educational, workplace, or care settings.
The code for this module was also produced with AI assistance and then reviewed, directed, and adapted by a human.
Had there not been AI, I would never have been able to create anything like this. Same as many would never enjoy being photographers, were it not for instant cameras, digital cameras, photoshop or smart phones. It is unlikely that I will take your jobs by vibe coding. I hope you can enjoy using this and/or go on to build something better.
This module is intended for reflective and motivational use only. It is not a substitute for professional mental health, medical, therapeutic, or crisis support.
If MMM-Charms has been useful to you, tips are welcome on Ko-fi: https://ko-fi.com/testingonlypi
Inspired by MMM-affirmations by mtitus83.
This module is a separate implementation built from scratch to support multiple sets, persistence, runtime switching, and time-based automation.
From your MagicMirror modules folder:
cd ~/MagicMirror/modules
git clone https://github.com/testingonlypi/MMM-Charms.git
cd MMM-Charms
Then add the module to your MagicMirror config/config.js.
To update MMM-Charms after installing it with git clone:
cd ~/MagicMirror/modules/MMM-Charms
git pull
Then restart MagicMirror.
If you changed files inside the module folder, back them up before running git pull.
