Skip to content
cccskills
FreePublished on GitHubEnglish overview

StudioLights

Control Aputure and amaran studio lights through amaran Desktop. Adjust each light’s brightness and color temperature, switch to named scenes such as recording or normal, and save the current setup for later recall.

OriginalShow the original description

Controls Aputure and amaran studio lights via the amaran Desktop WebSocket API: named scenes, per-light brightness and color temp, save the current state. USE WHEN lights recording, lights normal, recording lights, set lights for recording, studio lights, light scene, dim the key light, set the lights, lights too bright, save this lighting, green screen lights. NOT FOR house/Hue lights or thermostat (a home-control skill), studio audio, or video editing.

danielmiessler/LifeOS19,635 stars(GitHub 19,635 + cccskills 0)

Run score Not tested

See how to install

Good for

  • Setting up lights for a recording
  • Dimming a key light
  • Changing a light’s color temperature
  • Saving a lighting setup as a scene

Overview

What it does

StudioLights controls Aputure and amaran studio lights through amaran Desktop. It can adjust brightness and color temperature for individual lights, recall named scenes such as “recording” or “normal,” and save the current lighting state under a scene name. After a change, it checks the state reported by the lights.

When it helps

Use it to prepare lighting before recording or filming, dim a key light, or switch to lighting for a green screen. Saving a scene lets you recall an adjusted setup by name later. The skill is limited to studio lights; it does not control household lights or thermostats, studio audio, or video editing.

Example requests

  • “Set the lights for recording.”
  • “Set the key light to 30%.”
  • “Save the current lighting as recording.”

Notes

amaran Desktop is required to connect to the lights. First use requires registering the lights and setting up scenes. Some lights cannot set color temperature. If you rename a scene, update any shortcut or macro that calls it by name.

This overview was written by AI (OpenAI Codex) from the public SKILL.md. Check the original below for the exact behavior.

Document check

AI checked the SKILL.md for operations that need care and for setup requirements. The score comes only from actually running the skill (hands-on test).

SafetyAre sending data, deleting files, and running commands disclosed?
AGoodIt checks fixture state after changes; no external sending is specified.
Easy setupDoes it need few tools or API keys, and are they documented?
BPartly lackingIt requires amaran Desktop and fixture setup; detailed steps are separate.

Not counted in the score. Rated by AI (OpenAI Codex) as of Oct 28, 2026. Treat it as a guide and read the original before installing.

Disagree? Request a re-evaluation

Tell us which point is wrong and why. No login needed. We will check it against the SKILL.md, redo the evaluation, and show the result here.

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

Files included (4)

  • SKILL.md4.6 KB
  • Intents/Control.md2.3 KB
  • Setup.md9.2 KB
  • Tools/Lights.ts22.6 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

StudioLights

Deterministic control of a studio lighting rig through amaran Desktop's local WebSocket API (ws://127.0.0.1:33782/ws, protocol v2 — the same local API the official Bitfocus Companion module uses). The tool auto-launches amaran Desktop if it isn't running.

Ideal State

  • Every lighting change runs through Tools/Lights.ts against the rig the USER tree's devices.json and scenes.json define; no fixture, name or level is assumed from this skill.
  • Done is said only when the lights themselves read back the requested state.
  • A saved scene restores exactly the levels saved under its name, whether "recording", "normal" or any later caller asks for it.

Intent Routing

IntentTriggerFile
Control"recording", "set the lights", "light scene", "dim X", "save this lighting"Intents/Control.md
FileRead when
Setup.mdfirst-time setup: amaran Desktop, finding node IDs, and writing devices.json and scenes.json

Data & Config

The rig lives in the USER tree, never in this skill: LIFEOS/USER/CUSTOMIZATIONS/SKILLS/StudioLights/devices.json holds each fixture's name, node ID, model and whether it has color temperature, and scenes.json holds the saved scenes. Free-form notes about the rig (where each light stands, what each scene is for, which Shortcut or macro calls a scene by name) go in Config.md in the same folder; the tool never reads it. First-time setup, including how to find node IDs and a worked example of a voice trigger, is in Setup.md.

Tools/Lights.ts exits with an error pointing at Setup.md when devices.json is missing; Lights.ts devices lists the node IDs to put in it and runs before the file exists. The tool finds that folder from its own skill folder's name, so the skill folder and its USER folder must share a name.

Gotchas

  • amaran Desktop must be running, because it is the bridge between the Mac and the lights' Bluetooth mesh. Lights.ts launches it and waits up to 30s. If it opens signed out, it reports no lights; sign in once in its window.
  • Daylight-only lights report cct: 0 and ignore color-temperature writes. Mark them "supportsCct": false in devices.json and the tool skips CCT for them; Lights.ts devices guesses this for you.
  • The API's intensity unit is 0–1000, ten per percent. The tool takes 0–100 and converts.
  • Each light accepts one command per 200ms. The tool spaces writes 220ms apart, so a scene takes about half a second per light. Do not run writes in parallel.
  • Each request carries a token in the same AES-GCM format the official Bitfocus Companion module sends; Lights.ts builds it for every request.
  • amaran Desktop is the only automation path; the phone apps for these lights offer none.
  • Anything that calls a scene by name (a Shortcut, a macro, another skill) breaks silently when the scene is renamed in scenes.json, so update the caller when you rename. A Shortcuts "Run Shell Script" action works on a Mac only.

Examples

Example 1: Recording

User: "recording" / "set lights for recording"
→ Control intent
→ bun Tools/Lights.ts scene recording
→ Lights move to the levels saved in the recording scene

Example 2: Back to normal

User: "lights back to normal"
→ Control intent
→ bun Tools/Lights.ts scene normal
→ Each light reports back at the normal scene's levels

Example 3: Tune and persist

User: "key light to 30%" ... "perfect, save this as recording"
→ Control intent
→ bun Tools/Lights.ts set key --intensity 30
→ bun Tools/Lights.ts scene save recording
→ The recording scene now holds the levels the user tuned

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

AnnualReports

FreeSummary

Find and fetch vendor cybersecurity reports, then compare their findings on topics such as ransomware, breaches, cloud security, and AI. Analyses identify the reports consulted and cite each figure by vendor, year, and report, including where sources disagree.

  • Find reports in a cybersecurity topic area
  • Fetch a specific vendor report
  • Compare ransomware findings across reports
danielmiessler/LifeOS19.6KUpdated Oct 28, 2026

Compare a component's own design needs with the goals of the larger system through three structured passes. The result identifies conflicts, recommends an appropriate scope, and assesses whether the proposed design fits the whole.

  • Choosing between a service, a library, and inline code
  • Comparing feature requests with product goals
  • Checking how new components fit an existing system
danielmiessler/LifeOS19.6KUpdated Oct 28, 2026

Aphorisms

FreeSummary

Find quotes that fit a text’s themes, with attribution and a short reason for each suggestion. Add sourced quotes, research thinkers, and organize a quote collection by theme and usage history to avoid repetition.

  • Finding a fitting quote for a newsletter
  • Saving sourced quotes without duplicates
  • Researching a thinker’s quotes by theme
danielmiessler/LifeOS19.6KUpdated Oct 28, 2026

Art

FreeSummary

Create blog illustrations, technical diagrams, comparisons, comics, and icons through workflows tailored to each format. The skill guides composition, color, and model selection, then stages generated images for review before they are used in a project.

  • Creating blog header illustrations
  • Explaining a system with a technical diagram
  • Visualizing comparisons and timelines
danielmiessler/LifeOS19.6KUpdated Oct 28, 2026

ArtDirection

FreeSummary

Assess the visual quality of images, films, slides, and site captures against a brief and craft criteria. Two vision judges score the work and rank defects, guiding bounded revision; delivery is gated on a passing critique, with human calibration labels recorded separately.

  • Reviewing a render and listing the most important visual defects
  • Iterating on a film or slide deck until it meets a defined bar
  • Checking whether an image reads as professional
danielmiessler/LifeOS19.6KUpdated Oct 28, 2026

ArXiv

FreeSummary

Find arXiv papers by topic, research category, or paper ID. Retrieve titles, authors, abstracts, and links, check new submissions, and add AlphaXiv's AI-generated overviews when available to help decide which papers to read.

  • Checking new AI and machine learning papers
  • Finding papers on a specific research topic
  • Looking up a paper by its ID or arXiv URL
danielmiessler/LifeOS19.6KUpdated Oct 28, 2026

See all skills by danielmiessler

Report a problem with this skill