Refactor high-complexity React components in Dify frontend. Use when `pnpm analyze-component...
npx skills add reflectt/reflectt-skill
Or install specific skill: npx add-skill https://github.com/reflectt/reflectt-skill
# Description
The skill that lets AI agents mix reality — control lights, screens, audio, and orchestrate experiences
# SKILL.md
Reflectt Skill — Control Physical Spaces
You can control physical space: screens, lights, and audio. Use these tools to create atmosphere, run experiences, and transform rooms.
MCP Server: https://localhost:3333/mcp (Homie)
Quick Start
"Set cozy mood" → Warm amber lights, 40% brightness
"Run movie night" → Dims lights, sets bias lighting
"Run Shadow of Malvorth" → Full dungeon adventure experience
"Show the time on all screens" → Push clock display to all screens
🎭 Light Control
light_mood
Apply a mood preset to all lights.
Moods available:
| Mood | Description |
|------|-------------|
| cozy | Warm amber evening (2200K, 40%) |
| focus | Bright neutral white (5000K, 80%) |
| movie | Dim blue bias lighting (15%) |
| party | Vibrant colors (70%) |
| sleep | Dim red for bedtime (5%) |
| energize | Bright daylight (6500K, 100%) |
| romantic | Warm low pink (20%) |
| safe | Tavern warmth |
| tension | Uneasy blue shadows |
| darkness | Near blackout |
| combat | Danger red alert |
| boss | Epic purple menace |
| treasure | Golden reward |
| victory | Triumphant gold |
| team_canucks | Vancouver blue |
| team_chiefs | Kansas City red |
Parameters:
- mood (required): Mood name
- targets (optional): Specific light entities to affect
light_set
Set a specific light's state.
Parameters:
- entity (required): Light entity ID (e.g., light.living_room)
- state: "on" or "off"
- brightness_pct: 0-100
- color: RGB array [255, 100, 50]
- kelvin: Color temperature 2000-6500
- transition: Seconds for transition
light_effect
Run a dynamic light effect.
Effects:
- pulse — Single bright flash
- breathe — Slow fade in/out
- flicker — Random torch-like
- strobe — Rapid on/off
- alert — Attention flash sequence
Parameters:
- effect (required): Effect name
- targets (optional): Lights to affect
- duration: Seconds (default: 5)
- intensity: 0.0-1.0 (default: 0.7)
- speed: slow, medium, fast
- color: RGB array
light_list
Get all controllable lights from Home Assistant.
mood_list
List all available mood presets.
🖥️ Screen Control
These are existing Homie tools — use them alongside Reflectt.
update_all_screens
Push HTML to all connected screens.
Tips:
- Use data-clock="time" for live clocks
- Make it art, not a dashboard
- Think giant typography (200px+), gradients, vignettes
update_screen
Push HTML to a specific screen.
Parameters:
- screen: Screen ID (e.g., games-room, entry)
- scene.html: Raw HTML content
get_screens
Get status of all connected screens.
🎬 Experiences
Experiences are coordinated multi-device sequences.
experience_run
Run a named experience.
Built-in experiences:
| Experience | Duration | Description |
|------------|----------|-------------|
| shadow-of-malvorth | ~4.5 min | Epic dungeon adventure with narration |
| good-morning | ~1 min | Gentle wake-up with sunrise lighting |
| movie-night | ~15 sec | Cinema ambiance setup |
| wind-down | ~30 sec | Evening transition to restful |
| ambient | instant | Beautiful always-on wallpaper |
Parameters:
- name (required): Experience name
- startFromAct (optional): Resume from specific act
experience_list
List all available experiences.
experience_stop
Stop currently running experience.
experience_status
Check if an experience is running.
sequence_run
Run a custom sequence of steps.
Step types:
- light_mood — Apply mood preset
- light_set — Set light state
- light_effect — Run light effect
- screen_update_all — Push HTML to screens
- speak — Text-to-speech
- play_audio — Play audio file
- wait — Pause for duration
Example:
{
"steps": [
{ "type": "light_mood", "mood": "movie", "delay_ms": 0 },
{ "type": "speak", "text": "Starting movie night", "delay_ms": 500 },
{ "type": "screen_update_all", "html": "<minimal-clock>", "delay_ms": 0 }
]
}
🔊 Audio
speak
Text-to-speech through speakers.
Parameters:
- text (required): Text to speak
- voice (optional): Voice name (Samantha, Alex, Daniel, Karen, Moira)
- screen (optional): Screen to speak through, or "all"
play_audio
Play audio file through screens.
Parameters:
- url (required): Audio URL (HTTPS)
- screen (optional): Target screen or "all"
- volume (optional): 0.0-1.0
Common Patterns
Set the mood
"Set cozy mood"
"Make it movie night lighting"
"Combat mode!" → light_mood: combat
Transform the room
"Run movie night" → experience_run: movie-night
"Wind down for the evening" → experience_run: wind-down
Custom atmosphere
sequence_run with:
- light_mood: romantic
- screen_update_all: <candles visual>
- play_audio: soft jazz
Information displays
"Show the time on all screens"
"Put weather on the entry screen"
Tips
- Moods over manual — Use
light_moodinstead of setting individual lights - Experiences for sequences — Don't manually orchestrate, use experiences
- Think atmosphere — Lights + screens + audio together create immersion
- Art, not dashboards — Screens should be beautiful, not cluttered
- Timing matters — Use delays in sequences to let effects breathe
Troubleshooting
Lights not responding:
- Check Home Assistant connection
- Use light_list to see available entities
- Ensure entity IDs match HA exactly
Screens not updating:
- Check screen connection with get_screens
- Screens need to be on the same network
Experience not found:
- Use experience_list to see available experiences
- Experience names are case-insensitive, use dashes not spaces
Reflectt Skill Pack v1.0.0 — The skill that lets AI agents mix reality
# README.md
Reflectt Skill Pack
The skill that lets AI agents mix reality.
Control physical spaces — screens, lights, and audio — and orchestrate them into coordinated immersive experiences.
What It Does
- Light Control — Set moods, colors, brightness via Home Assistant
- Screen Control — Push HTML to displays throughout your space
- Audio — TTS and audio playback through screen speakers
- Experiences — Coordinated multi-device sequences (think: movie night, wake-up routines, dungeon adventures)
Requirements
Required
- Homie MCP Server running at
https://localhost:3333 - At least one screen device connected to Homie
Optional (Enhanced Features)
- Home Assistant — For light control
- Edge-TTS — For enhanced voice narration
- Philips Hue / smart lights configured in HA
Installation
1. Ensure Homie is Running
cd ~/dev/homie
bun run src/index.ts
Or if using launchd:
launchctl start com.ryan.homie
2. Configure MCP in Your Agent
Add to your agent's MCP config:
{
"mcpServers": {
"homie": {
"url": "https://localhost:3333/mcp",
"transport": "http"
}
}
}
3. Connect Screens
Navigate any device with a browser to:
https://YOUR_HOMIE_IP:3333/?screen=SCREEN_NAME
Example: https://192.168.1.250:3333/?screen=living-room
4. Configure Home Assistant (Optional)
Set in ~/dev/homie/.env:
HA_URL=ws://homeassistant.local:8123/api/websocket
HA_HTTP_URL=http://homeassistant.local:8123
HA_TOKEN=your_long_lived_access_token
Quick Test
Once installed, try these commands with your AI agent:
"Set cozy mood"
"Show the time on all screens"
"Run movie night"
"Run Shadow of Malvorth"
Built-in Experiences
| Experience | Description |
|---|---|
shadow-of-malvorth |
Epic 7-act dungeon adventure with lights, screens, and narration |
good-morning |
Gentle wake-up with sunrise lighting |
movie-night |
Cinema ambiance with bias lighting |
wind-down |
Evening transition to restful atmosphere |
ambient |
Beautiful always-on living wallpaper |
🎨 Want more? Browse and download from the Experience Gallery!
Creating Custom Experiences
Experiences are YAML files in ~/dev/homie/public/experiences/.
Basic structure:
name: My Experience
description: What it does
tags: [custom]
acts:
- name: First Act
steps:
- type: light_mood
mood: cozy
delay_ms: 0
- type: speak
text: Welcome!
delay_ms: 1000
Step Types
| Type | Description |
|---|---|
light_mood |
Apply mood preset |
light_set |
Set specific light |
light_effect |
Run effect (pulse, flicker, etc) |
screen_update_all |
Push HTML to all screens |
speak |
Text-to-speech |
play_audio |
Play audio file |
wait |
Pause execution |
Mood Presets
| Mood | Use Case |
|---|---|
cozy |
Evening relaxation |
focus |
Work/productivity |
movie |
Film watching |
party |
Entertainment |
sleep |
Bedtime |
combat |
Gaming/action |
romantic |
Date night |
File Structure
~/dev/homie/
├── src/
│ ├── lights.ts # Light control module
│ ├── experiences.ts # Experience orchestration
│ └── mcp-http.ts # MCP server (extended)
│
└── public/experiences/
├── shadow-of-malvorth.yaml
├── good-morning.yaml
├── movie-night.yaml
├── wind-down.yaml
└── ambient.yaml
Troubleshooting
"No lights found"
- Check Home Assistant is running
- Verify HA_TOKEN is valid
- Run
light_listto see available entities
"Screen not connected"
- Ensure screen is navigated to Homie URL
- Check
get_screensfor connection status - Try refreshing the screen browser
"Experience not found"
- Run
experience_listto see available experiences - Check YAML file exists in experiences directory
- Ensure YAML syntax is valid
Version
v1.0.0 — February 2026
License
Part of the Homie ecosystem. For personal use.
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.