Help us improve
Share bugs, ideas, or general feedback.
Smart light notifications for Claude Code
npx claudepluginhub aparente/ambient-alertsAmbient light communication for Claude Code. Supports static colors, gentle animations, and color temperature modes. Works with Philips Hue (via OpenHue) or any smart light system.
Share bugs, ideas, or general feedback.
A Claude Code plugin for ambient light communication. Express states, respond to events, and build a shared visual language between you and Claude through smart lights.
# Add the marketplace (first time only)
/plugin marketplace add aparente/ambient-alerts
# Install the plugin
/plugin install ambient-alerts@aparente
# Or via CLI:
# claude plugin marketplace add aparente/ambient-alerts
# claude plugin install ambient-alerts@aparente
# Run interactive setup - just ask Claude:
# "Set up ambient alerts for my lights"
Define what each state looks like in your config:
{
"states": {
"idle": { "color": "antique_white", "brightness": 40 },
"thinking": { "color": "light_blue", "brightness": 60 },
"completed": { "color": "pale_green", "brightness": 60 },
"need_input": { "color": "gold", "brightness": 75 },
"waiting": { "color": "lavender", "brightness": 50 },
"error": { "color": "coral", "brightness": 70 }
}
}
Map system events to states:
{
"events": {
"PermissionRequest": "need_input",
"PostToolUse.success": "completed",
"PostToolUse.error": "error",
"SessionStart": "idle",
"SessionEnd": "off"
}
}
Define auto-transitions between states:
{
"transitions": {
"completed": {
"duration_ms": 2000,
"then": "idle"
}
}
}
Claude can set states directly when appropriate:
{
"volitional": {
"enabled": true
}
}
claude plugins install ambient-alerts@aparente
Just ask Claude:
Set up ambient alerts for my lights
Claude will guide you through:
Create ~/.claude/ambient-alerts.json:
{
"backend": "openhue",
"light_name": "Pitcher",
"states": {
"idle": {
"color": "antique_white",
"brightness": 40,
"description": "I'm here, all is well"
},
"thinking": {
"color": "light_blue",
"brightness": 60,
"description": "Working on something"
},
"completed": {
"color": "pale_green",
"brightness": 60,
"description": "Done!"
},
"need_input": {
"color": "gold",
"brightness": 75,
"description": "When you have a moment..."
},
"waiting": {
"color": "lavender",
"brightness": 50,
"description": "Ball's in your court, no rush"
},
"error": {
"color": "coral",
"brightness": 70,
"description": "Something needs attention"
},
"off": {
"description": "Light off"
}
},
"events": {
"PermissionRequest": "need_input",
"PostToolUse.success": "completed",
"PostToolUse.error": "error",
"SessionStart": "idle",
"SessionEnd": "off"
},
"transitions": {
"completed": {
"duration_ms": 2000,
"then": "idle"
}
},
"volitional": {
"enabled": true
}
}
Set states directly via the script:
# Set to thinking state
~/.claude/plugins/cache/aparente/ambient-alerts/1.0.0/scripts/set-state.sh thinking
# Set to idle
~/.claude/plugins/cache/aparente/ambient-alerts/1.0.0/scripts/set-state.sh idle
# Turn off
~/.claude/plugins/cache/aparente/ambient-alerts/1.0.0/scripts/set-state.sh off
For non-Hue systems (LIFX, Govee, Home Assistant, etc.):
{
"backend": "custom",
"custom_commands": {
"set": "hass-cli light set office --color {color} --brightness {brightness}",
"idle": "hass-cli light set office --color white --brightness 40",
"thinking": "hass-cli light set office --color blue --brightness 60"
}
}