elgato
Asynchronous Python client for Elgato Lights.
What it is and what it does
This package provides an async-first Python interface to Elgato Light devices, letting you query device state and control brightness, color, and power status programmatically. It wraps the Elgato device HTTP API with aiohttp, making it suitable for integration into async applications, home automation frameworks, or scripts that need non-blocking control of multiple lights.
The client is built on aiohttp for async HTTP requests, mashumaro for efficient data serialization, and orjson for fast JSON parsing. It targets Python 3.11+ and has been actively maintained since 2019, with the latest release in December 2023. The package is straightforward to use: instantiate an Elgato client with a device hostname, then await methods like info(), state(), and light() to read or modify device settings.
Use it for:
- Integrate Elgato lights into a home automation system that needs async control of multiple devices.
- Build a streaming setup controller that toggles Key Light devices based on application state or schedule.
- Monitor and log Elgato light state changes in real time for analytics or debugging.
- Create a custom lighting dashboard or CLI tool that queries and controls multiple Elgato devices.
- Automate light adjustments in response to external events (e.g., calendar, weather, or application notifications).
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Asynchronous Python client for controlling and monitoring Elgato Light devices (Key Light, Key Light Air, Key Light Mini, Light Strip) over the network.
Yes. The package is stable, actively maintained, has no known vulnerabilities, and installs with minimal friction. It is the right choice if you need to control Elgato lights from Python and your application is already async or willing to adopt asyncio. The MIT license is permissive and the dependency footprint is small.
Install
elgato on PyPI
pip
pip install elgatouv
uv add elgatopoetry
poetry add elgatoInstalling elgato
Before you install
Low install friction with a pure-Python wheel and four lightweight async-friendly dependencies (aiohttp, mashumaro, orjson, yarl). Active maintenance with a recent commit on 2026-08-06 and stable production status.
License in practice
MIT license is permissive; you can use, modify, and distribute this package with minimal restrictions, provided you include the original copyright notice and license text.
Quickstart
pip install elgato
import asyncio
from elgato import Elgato
async def main():
async with Elgato("elgato-key-light.local") as elgato:
state = await elgato.state()
await elgato.light(on=(not state.on))
asyncio.run(main())
Requires Python 3.11 or later; Elgato device must be reachable on the network at the provided hostname or IP address.
Verify before relying
- Whether the package supports discovery of Elgato devices on the network or requires manual hostname/IP entry.
- What specific control parameters (brightness, color temperature, etc.) are available beyond on/off toggling.
- Whether the package handles reconnection or session management automatically across network interruptions.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.11,<4.0) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 4 — aiohttp, mashumaro, orjson, yarl |
| Maintenance | actively maintained — 961 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 73,884/month — #14,913 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: elgato-5.1.2-py3-none-any.whl
Keywords: elgato, keylight, api, async, client
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
gotailwindAsynchronous Python client for controlling and…
permissive · top 15,000 on PyPI
rokuecpAn asynchronous Python client for controlling…
permissive · top 15,000 on PyPI
wledAn asynchronous Python client library for…
permissive · top 15,000 on PyPI
pysmartthingsAsynchronous Python client for fetching data…
permissive · top 15,000 on PyPI
python-smarttubProvides an async API and CLI to query and…
permissive · top 15,000 on PyPI
go2rtc-clientAsynchronous Python client library for…
permissive · top 15,000 on PyPI
pyControl4An async library for controlling Control4 smart…
permissive · top 15,000 on PyPI
ring-doorbellExposes Ring.com doorbell, camera, and chime…
copyleft · top 15,000 on PyPI
python-bsblanAsynchronous Python client for controlling and…
permissive · top 15,000 on PyPI
aiopyarrAsync Python client library for Lidarr, Radarr,…
permissive · top 15,000 on PyPI