aiohomekit
An asyncio HomeKit client
Decision gist · record as of 2026-08-14
Yes, if you are building a Home Assistant integration or custom home automation application that needs to control HomeKit accessories. The library is actively maintained, has low install friction, and carries no known vulnerabilities. Be aware that API stability is not guaranteed outside Home Assistant's use case, and device compatibility depends on real-world HAP implementations rather than spec compliance alone.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10 or later.
- HomeKit accessories must be on the same local network and already paired with an Apple device or configured for HomeKit.
- Low friction install with 11 runtime dependencies available as wheels.
License · maintenance · safety
Apache-2.0 (permissive) — Apache-2.0 permissive license allows commercial and private use with minimal restrictions.
last release 2026-08-14 (0 days) · last repo commit 2026-08-14 · 71 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 131,770 downloads/mo, #11,575 on PyPI
Alternatives
Verify before relying
pip install aiohomekit
import asyncio
from aiohomekit.controller import Controller
async def main():
controller = Controller()
# Discover and control HomeKit accessories
asyncio.run(main())- Whether the library's API stability guarantees have been established since the description notes they were pending at time of writing
- Current device compatibility matrix beyond the Phillips Hue and Eve Extend bridges mentioned as primary test targets
What it is and what it does
aiohomekit is an asyncio-based client library that implements the HomeKit Accessory Protocol (HAP) to communicate with and control HomeKit-compatible devices over IP networks. It handles the low-level protocol details including HAP session security, event subscriptions, and the quirks of real-world HomeKit device implementations—such as strict JSON formatting requirements, boolean encoding rules, and HTTP header sensitivity. The library is designed primarily for integration with Home Assistant's homekit_controller component and does not provide API stability guarantees outside that context.
The library uses hand-rolled HTTP code rather than high-level HTTP libraries to maintain byte-for-byte accuracy on the write path and support HomeKit's event model (responses without corresponding requests). It includes 11 runtime dependencies covering CoAP, Bluetooth Low Energy scanning, cryptography, async utilities, and JSON serialization. It does not support creating HomeKit accessories (server-side), only controlling them (client-side).
Use it for
- Integrate HomeKit device control into Home Assistant or other home automation platforms via asyncio
- Build custom Python applications that discover and communicate with HomeKit accessories on local networks
- Subscribe to and handle real-time events from HomeKit devices like motion sensors or door locks
- Develop cross-platform (Linux, macOS, Windows) HomeKit clients that require async event handling
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you are building a Home Assistant integration or custom home automation application that needs to control HomeKit accessories.
The library is actively maintained, has low install friction, and carries no known vulnerabilities. Be aware that API stability is not guaranteed outside Home Assistant's use case, and device compatibility depends on real-world HAP implementations rather than spec compliance alone.
Install
aiohomekit on PyPI
Before you install
Low friction install with 11 runtime dependencies available as wheels. Actively maintained with a release on 2026-08-14 and recent commits. Targets current Python versions (3.10+).
Requires Python 3.10 or later. HomeKit accessories must be on the same local network and already paired with an Apple device or configured for HomeKit.
License in practice
Apache-2.0 permissive license allows commercial and private use with minimal restrictions.
Quickstart
pip install aiohomekit
import asyncio
from aiohomekit.controller import Controller
async def main():
controller = Controller()
# Discover and control HomeKit accessories
asyncio.run(main())
Verify before relying
- Whether the library's API stability guarantees have been established since the description notes they were pending at time of writing
- Current device compatibility matrix beyond the Phillips Hue and Eve Extend bridges mentioned as primary test targets
Package facts
| License | Apache-2.0 permissive |
| Python support | Supports the current Python release >=3.10 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 11 packagesaiocoapaiohappyeyeballsasync-interruptasync-timeoutbleakbleak-retry-connectorchacha20poly1305chacha20poly1305-reuseablecryptographyorjsonzeroconf |
| Maintenance | Actively maintained 0 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 131,770 / month, #11,575 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Intended Audience :: DevelopersIntended Audience :: End Users/DesktopProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Topic :: Home Automation |
Evidence: aiohomekit-4.0.1-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “homekit client asyncio”
- aiohomekitAn asyncio-based HomeKit client library for controlling HomeKit…
- HAP-pythonHAP-python implements the HomeKit Accessory Protocol, letting you…
- aiosonicAn asyncio HTTP/1.1, HTTP/2, and WebSocket client library with…
Give your agent the search over MCP, or paste the wish link into any chat.
More Home Automation packages
Represents and manipulates IPv4, IPv6, MAC addresses and related network objects; supports CIDR notation, subnetting, set operations, IANA lookups, and DNS reverse generation.
Home Assistant is an open-source home automation platform that centralizes control of smart home devices and automations on a local server or Raspberry Pi, prioritizing local control and privacy over cloud dependency.
Defines finite state machines and statecharts with a declarative Python API, supporting flat states, compound hierarchies, parallel regions, history states, guards, and both sync and async callbacks.
Install it if you need to model workflows, control logic, or any system with discrete states and event-driven transitions — from simple state machines to complex…
A Python library for controlling BlueZ Bluetooth adapters on Linux via the Management API, supporting both synchronous and event-driven command patterns.
An async Python library for controlling and monitoring Homematic and HomematicIP devices through multiple backend systems (CCU3, OpenCCU, Homegear, CUxD, CCU-Jack) using XML-RPC and JSON-RPC protocols.
Install it if you need to control Homematic devices from Python; the only constraint is a requirement for Python 3.14 or later and network access to a compatible…
Provides base classes and utilities for Home Assistant integrations to proxy HTTP and WebSocket traffic through Home Assistant's web server.
Install only if you are building a custom Home Assistant integration; it is not useful as a standalone package.
See also aiohasupervisor · HAP-python · pyoverkiz · ha-ffmpeg · pymiele · plugwise · async-upnp-client · infrared-protocols · openccu-loom-client