Skip to main content
Glama
butterflyskies

elgato-keylight

README.md
# elgato-keylight

Control Elgato Key Lights from CLI, waybar, and Claude Code (MCP).

## Install

```bash
# Development
uv sync

# Global CLI
uv tool install -e ".[mcp]"
```

## CLI

```bash
elgato status                # Show all lights
elgato on                    # Turn all on
elgato off                   # Turn all off
elgato toggle                # Toggle on/off
elgato brightness 75         # Set brightness (0-100)
elgato brightness-up         # +10 brightness
elgato brightness-down       # -10 brightness
elgato temperature 200       # Set color temp (143-344)
elgato preset webcam         # Apply preset (per-light values)
elgato identify              # Flash to identify
elgato -l right status       # Target specific light

# Effects
elgato flash                 # Flash on/off
elgato pulse                 # Smooth brightness pulse
elgato celebrate             # Color temperature dance
elgato alert                 # Urgent attention flash
elgato mood focus            # Set mood (cozy/focus/relax/energize/movie)
```

## Waybar

Add to `~/.config/waybar/config.jsonc`:

```jsonc
"custom/lights": {
    "exec": "elgato-waybar",
    "return-type": "json",
    "interval": 30,
    "on-click": "elgato toggle",
    "on-click-right": "elgato preset video",
    "on-scroll-up": "elgato brightness-up",
    "on-scroll-down": "elgato brightness-down"
}
```

Add to `~/.config/waybar/style.css`:

```css
#custom-lights {
    color: #7aa2f7;
}
#custom-lights.off {
    color: #565f89;
}
#custom-lights.mixed {
    color: #e0af68;
}
```

## MCP Server

Add to `~/.claude.json`:

```json
{
    "mcpServers": {
        "elgato-keylight": {
            "command": "uv",
            "args": ["run", "--directory", "/path/to/elgato-control-home-automation", "--extra", "mcp", "elgato-mcp"]
        }
    }
}
```

## Config

Config lives at `~/.config/elgato-keylight/config.toml`. Presets support per-light overrides:

```toml
[presets.webcam]
brightness = 32       # fallback for unnamed lights
temperature = 179

[presets.webcam.right]
brightness = 18       # right light gets its own values
temperature = 181

[presets.webcam.left]
brightness = 46       # left light gets its own values
temperature = 177
```

## License

Licensed under either of

- Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
- MIT License ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)

at your option.

TDQS

A3.7/5.0

Scored across 13 tools

Disambiguation5/5

Each tool has a clear, distinct purpose: basic on/off/toggle, brightness/temperature control, status query, presets, and specific effects. Descriptions like 'alert_flash' vs 'flash_lights' highlight urgency vs casual use, preventing confusion.

Naming Consistency4/5

Most tools follow a verb_noun pattern (e.g., 'turn_on', 'set_brightness'), but 'celebrate' is a single-word verb, and 'dim_for_attention' uses a preposition, introducing slight inconsistency.

Tool Count5/5

13 tools cover all essential controls (power, brightness, temperature, status) plus presets and effects without being excessive. The count is well-scoped for the domain.

Completeness5/5

The tool set includes CRUD-like operations (turn on/off, set brightness/temp, get status), multiple presets (apply_preset, set_mood_lighting), and fun effects, leaving no obvious gaps for typical usage.

Maintenance

ActivitySlowing
ResponsivenessNo issues