keylightd

keylightd is a daemon and CLI tool for managing Key Lights on your local network. While designed primarily for Elgato Key Lights, it may also support other HTTP-based lights with similar interfaces (if you have a compatible device not explicitly supported, please open a ticket).
Features
- Automatic discovery of lights via mDNS
- Grouping of lights for batch control
- HTTP REST API for remote control
- Unix socket and CLI interface for local control
Components
- keylightd: Daemon that discovers lights, persists configuration, and exposes APIs
- keylightctl: CLI tool for managing lights and groups
graph LR
A[keylightctl] ---|Unix Socket| B[keylightd]
D[gnome-extension] ---|HTTP| B
B ---|mDNS/HTTP| C[Key Lights]
Quick Start
Download the latest release binaries and run:
# Start the daemon
./keylightd
# List discovered lights
./keylightctl light list
# Create a light group
./keylightctl group add "Office"
# Control a light group
./keylightctl group set Office on true
Configuration files are automatically generated on first save in ~/.config/keylight/.
Installation Methods
Homebrew (macOS/Linux)
Install via Homebrew using our official tap:
# Add the tap
brew tap jmylchreest/keylightd
# Install keylightd
brew install keylightd
Or install directly:
brew install jmylchreest/keylightd/keylightd
This installs both keylightd and keylightctl binaries plus a service to run the daemon.
GNOME Extension
An experimental GNOME extension for controlling lights from your desktop is available in the contrib/gnome-extension directory, from the releases page here, or from the GNOME extensions website here
Documentation
For detailed documentation, see github pages
Contributing
PRs and issues are welcome! Please ensure all tests pass and code is formatted.
License
MIT License - see the LICENSE file for details.