led-control
Skill552 starsChanged 8 months agoApache-2.0View on GitHub
Control the device's RGB light when the user asks for a SPECIFIC color (e.g. "yellow", "red", "yellow", "red", "turn on color X", "enable X light"), an LED effect, or turning LEDs off. Do NOT use for ambiance/activity lighting (use Scene) or emotion expression (use Emotion).
2 other projects use a version of this.
Adopted by
Most recently taken up by
- autonomous-ai/lampOSword for word, first seen Oct 15, 2026
- autonomous-ai/autonomous-osword for word, first seen Mar 30, 2026
Other versions2 projects use a version of this.
Word for word · 2
- autonomous-ai/autonomous-os★ 552100% same
- autonomous-ai/lampOS★ 552100% same
Edited · 0
None found.
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository34 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- .cursor/rules/architecture.mdcCursor rule
- .cursor/rules/docs-on-code-change.mdcCursor rule
- .cursor/rules/multi-ide.mdcCursor rule
- .cursor/rules/testing.mdcCursor rule
- agent-managementSkill
- audioSkill
- cameraSkill
- claude-buddySkill
- computer-useSkill
- connectorsSkill
- displaySkill
- emotionSkill
- environmentSkill
- face-enrollSkill
- faqSkill
- guardSkill
- habitSkill
- harness-useSkill
- input-branchingSkill
- moodSkill
- musicSkill
- music-suggestionSkill
- sceneSkill
- sensingSkill
- sensing-trackSkill
- servo-controlSkill
- servo-trackingSkill
- skill-creatorSkill
- speaker-recognizerSkill
- user-emotion-detectionSkill
- voiceSkill
- wellbeingSkill
The file
We split this skill into the rules it gives an agent
5 rules. About 0 are common, 4 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈4
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 17
Place markers at start of reply — the device fires them in order before TTS
- Distinctive: line 54
No exec/curl needed: Use inline markers at start of reply — the device fires them in order:
- Distinctive: line 110
If the API returns an error or is unreachable, inform the user: "I couldn't control the LEDs right now.
- Distinctive: line 111
If the user requests an unknown effect name, pick the closest match from the available effects table or tell the user which effects are …
- Very specific: line 115
The marker is NOT a markdown link: Never wrap it as some text — emit the plain marker [HW:/led/off:{}] followed by your sentence as normal …
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
LED Control
Quick Start
Control the device's RGB light directly. Use this skill only when the user requests a specific color, effect, or to turn LEDs off.
Workflow
- Determine the user's intent:
- Specific color ->
[HW:/led/solid:{"color":[R,G,B]}] - Two or more colors / mix / gradient ->
[HW:/led/paint:{"colors":[[R,G,B],[R,G,B]],"gradient":true}] - Effect ->
[HW:/led/effect:{"effect":"name","color":[R,G,B],"speed":1.0}] - Turn off ->
[HW:/led/off:{}]
- Specific color ->
- Place markers at start of reply — the device fires them in order before TTS
- Confirm the action to the user
Examples
Input: "Make it purple" / "turn on purple"
Output: [HW:/led/solid:{"color":[100,50,200]}] I've set the LEDs to purple.
Input: "Turn on yellow light" / "set yellow" / "switch to yellow" / "yellow light"
Output: [HW:/led/solid:{"color":[255,220,0]}] Yellow light on!
Input: "Turn on red light" / "set red" / "switch to red" / "red light"
Output: [HW:/led/solid:{"color":[255,0,0]}] Red light on!
Input: "Turn on white light" / "set white" / "white light"
Output: [HW:/led/solid:{"color":[255,255,255]}] White light on!
Input: "Change to cyan purple" / "mix blue and pink" / "gradient from red to orange"
Output: [HW:/led/paint:{"colors":[[0,200,200],[150,0,255]],"gradient":true}] Cyan-to-purple gradient on!
Input: "Do a breathing light with warm color"
Output: [HW:/led/effect:{"effect":"breathing","color":[255,180,100],"speed":0.5}] Breathing effect started with a warm glow.
Input: "Rainbow mode!"
Output: [HW:/led/effect:{"effect":"rainbow","speed":1.0}] Rainbow effect is running!
Input: "Turn off the lights"
Output: [HW:/led/off:{}] LEDs are off.
Input: "I want to relax" / "reading mode" / "goodnight" Output: Do NOT use this skill. Use Scene skill instead.
Input: Conversational reply needing emotion Output: Do NOT use this skill. Use Emotion skill instead.
How to Control LEDs
No exec/curl needed. Use inline markers at start of reply — the device fires them in order:
Solid color (automatically stops the current effect)
[HW:/led/solid:{"color":[255,220,0]}] Yellow light on!Color is an RGB array [R, G, B].
Multi-color / gradient (automatically stops the current effect)
[HW:/led/paint:{"colors":[[0,200,200],[150,0,255]],"gradient":true}] Cyan-to-purple gradient!colors: list of RGB gradient stops (2+ colors), blended smoothly across the whole stripgradient: trueis REQUIRED — without it the colors paint only the first N pixels and the rest of the strip keeps its old color- Works with 3+ stops too:
{"colors":[[255,0,0],[255,220,0],[0,200,80]],"gradient":true}= red -> yellow -> green
Effect
[HW:/led/effect:{"effect":"breathing","color":[255,180,100],"speed":0.5}] Breathing warm glow.effect(required): effect name from table belowcolor(optional): RGB arrayspeed(optional): 0.1 (slow) to 5.0 (fast), default 1.0duration_ms(optional): auto-stop after N ms
Turn off / stop effect
[HW:/led/off:{}] LEDs off.
[HW:/led/effect/stop:{}]Available effects
| Effect | Description | Best for |
breathing | Slow fade in/out with given color | Relaxation, idle ambient, meditation |
candle | Warm flickering like a real candle | Cozy evening, romantic mood |
rainbow | Hue cycle across all pixels | Fun, party, showing off |
notification_flash | 3 quick flashes then auto-stops | Alerts, timer done, reminders |
pulse | Radial brightness wave from center | Attention, heartbeat, alive feeling |
Color suggestions
| Color name | Color (RGB) |
| White | [255, 255, 255] |
| Yellow | [255, 220, 0] |
| Warm white | [255, 180, 100] |
| Orange | [255, 100, 0] |
| Red | [255, 0, 0] |
| Green | [0, 200, 80] |
| Blue | [0, 150, 255] |
| Purple | [100, 50, 200] |
| Pink | [255, 80, 150] |
Error Handling
- If the API returns an error or is unreachable, inform the user: "I couldn't control the LEDs right now. The hardware service may be unavailable."
- If the user requests an unknown effect name, pick the closest match from the available effects table or tell the user which effects are available.
Rules
- ALWAYS include the JSON body, even for no-argument commands. Every marker is
[HW:/path:{...}]— for commands that take no arguments the body is the empty object{}. Emit[HW:/led/off:{}]and[HW:/led/effect/stop:{}], NEVER the bodyless[HW:/led/off]or[HW:/led/effect/stop]. A marker without:{...}is malformed and the device silently drops it — the light will NOT turn off. - The marker is NOT a markdown link. Never wrap it as
[some text](HW:/led/off:{})— emit the plain marker[HW:/led/off:{}]followed by your sentence as normal text. - "Turn on color X" / "set light X" / "change color X" = THIS skill. Any request naming a color (yellow, red, green, purple, white, orange, pink…) routes here — NOT to Emotion or Scene. Emotion yellow/happy is for YOUR feelings, not user's lighting request.
- NEVER use
/led-coloror/led/colorfor setting color — these endpoints do NOT exist. Always use[HW:/led/solid:{"color":[R,G,B]}]. - Two or more colors at once =
/led/paintwith"gradient":true./led/solidtakes exactly ONE color — never try to express "cyan purple" as a single blended RGB; paint a gradient instead. - Solid and paint stop effects automatically. Their HAL endpoints stop the running effect before updating the strip; do not add a separate stop marker. Keep
/led/effect/stopfor an explicit stop-only request. - Solid colors = full brightness. For dim/ambient lighting, use the Scene skill instead.
- Effects run until stopped (unless
duration_msis set). Starting a new effect auto-stops the previous one. /led/offalso stops any running effect.- For "make it cozy" or "candle light" -> use
candleeffect, NOT a static orange color. - For "breathing" or "pulsing" requests -> use the matching effect.
- Combine effects with low speed (0.3-0.5) for calm moods, high speed (2.0-3.0) for energy.
- Do NOT use for activity/ambiance lighting (sleeping, relaxing, reading, focus, movie) -> use Scene skill.
- Do NOT use for expressing emotion -> use Emotion skill.
Output Template
[HW:/led/solid:{"color":[100,50,200]}] Purple light on.Examples:
[HW:/led/solid:{"color":[100,50,200]}] Purple light on.[HW:/led/effect:{"effect":"breathing","color":[255,180,100],"speed":0.5}] Warm breathing light on.[HW:/led/off:{}] Lights off.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

