Skip to content

A go based daemon to group and manage key lights, provides a client library, a RESTful API, a CLI and a gnome-extension.

License

Notifications You must be signed in to change notification settings

jmylchreest/keylightd

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

keylightd

Build Release Latest Tag Dependabot Coverage

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).

GNOME Extension

The keylightd GNOME Extension provides convenient desktop control for your Key Lights and is available in the contrib/gnome-extension directory, from the releases page here, or from the GNOME extensions website here

Lights On Lights Off
Extension On Extension Off
Extension panel showing lights in the on state Extension panel showing lights in the off state

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]
Loading

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/keylightd/.

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.

Arch Linux (AUR)

You can install it via AUR on Arch (package name is keylightd-bin). Add your user to the keylightd group to access the socket via CLI:

# Install via AUR helper (such as yay or paru)
paru -S keylightd-bin

# Add user to group for socket access
sudo usermod -a -G keylightd $USER

# Enable and start the service
sudo systemctl enable keylightd
sudo systemctl start keylightd

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.

About

A go based daemon to group and manage key lights, provides a client library, a RESTful API, a CLI and a gnome-extension.

Topics

Resources

License

Stars

Watchers

Forks

Contributors 3

  •  
  •  
  •