# apple/homekitadk

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/apple-homekitadk).**

2,629 stars · 233 forks · C · apache-2.0 · archived

## Links

- GitHub: https://github.com/apple/HomeKitADK
- awesome-repositories: https://awesome-repositories.com/repository/apple-homekitadk.md

## Description

The HomeKit Accessory Development Kit (ADK) is an open-source framework from Apple for building smart home accessories that pair and communicate with the Home app and the broader Apple Home ecosystem. At its core, the ADK implements the HomeKit Accessory Protocol (HAP), providing the cryptographic pairing and secure session establishment—using SRP and Curve25519 key exchange—required for trusted accessory-controller links. Accessories are modeled through an event-driven architecture that manages state and characteristics, with configuration stored in a structured JSON format for runtime querying and updates.

The ADK distinguishes itself by enabling MFi-free accessory prototyping, allowing developers to experiment with HomeKit-compatible hardware without Apple's licensing program, reducing cost and certification barriers. It includes a platform abstraction layer that provides a hardware-agnostic interface for GPIO, I2C, and other peripherals, supporting diverse smart home hardware. The framework also integrates Thread networking for low-power mesh communication and uses Bonjour/mDNS for automatic accessory discovery on the local network.

The documentation covers building a HomeKit accessory from scratch, secure device pairing, and integrating custom accessories into home automation scenarios such as voice control, scenes, and automation rules. The ADK is distributed as source code with build instructions for multiple platforms.

## Tags

### Part of an Awesome List

- [HomeKit Accessory](https://awesome-repositories.com/f/awesome-lists/devtools/protocol-implementations/homekit-accessory.md) — Implements the HomeKit Accessory Protocol for secure pairing and communication with Apple Home ecosystem.

### Networking & Communication

- [HomeKit Bridges](https://awesome-repositories.com/f/networking-communication/homekit-bridges.md) — Build a HomeKit-compatible smart home accessory that pairs and communicates with Apple's Home app for remote control. ([source](https://cdn.jsdelivr.net/gh/apple/homekitadk@master/README.md))
- [Accessory Development Kits](https://awesome-repositories.com/f/networking-communication/homekit-bridges/accessory-development-kits.md) — An open-source framework for building HomeKit-compatible smart home accessories that pair with Apple's Home app.
- [Protocol Implementations](https://awesome-repositories.com/f/networking-communication/homekit-bridges/protocol-implementations.md) — A software library implementing the HomeKit Accessory Protocol for secure pairing and communication with Apple controllers.
- [Local Service Discovery](https://awesome-repositories.com/f/networking-communication/local-service-discovery.md) — Advertises accessories on the local network using mDNS/Bonjour for automatic discovery by HomeKit controllers.
- [Thread Network Management Tools](https://awesome-repositories.com/f/networking-communication/thread-network-management-tools.md) — Integrates Thread networking protocol for low-power mesh communication between smart home devices.

### Business & Productivity Software

- [Home Automation Integrations](https://awesome-repositories.com/f/business-productivity-software/home-automation-integrations.md) — Connecting custom accessories to Apple's HomeKit ecosystem for voice control, scenes, and automation rules.

### Hardware & IoT

- [Hardware Abstraction Layers](https://awesome-repositories.com/f/hardware-iot/hardware-abstraction-layers.md) — Provides a hardware-agnostic interface for GPIO, I2C, and other peripherals to support diverse smart home hardware.
- [MFi-Free Prototyping Kits](https://awesome-repositories.com/f/hardware-iot/smart-home-interoperability-standards/mfi-free-prototyping-kits.md) — Experiment with smart home hardware using an open-source implementation that avoids MFi licensing requirements. ([source](https://cdn.jsdelivr.net/gh/apple/homekitadk@master/README.md))
- [MFI-Free Development Kits](https://awesome-repositories.com/f/hardware-iot/connectivity-iot/home-automation/smart-home-bridges/mfi-free-development-kits.md) — A development toolkit for creating MFi-free smart home accessories that integrate with Apple's Home ecosystem.
- [Open-Source Prototyping Frameworks](https://awesome-repositories.com/f/hardware-iot/connectivity-iot/home-automation/smart-home-bridges/open-source-prototyping-frameworks.md) — Prototyping and testing smart home devices with an open-source implementation that avoids MFi licensing requirements.
- [MFi-Free Prototyping Kits](https://awesome-repositories.com/f/hardware-iot/mfi-free-prototyping-kits.md) — Developing HomeKit-compatible hardware without Apple's MFi program, reducing cost and certification barriers.

### Security & Cryptography

- [Device Pairing Protocols](https://awesome-repositories.com/f/security-cryptography/security/infrastructure-and-hardware/embedded-and-hardware/device-pairing-protocols.md) — Establishing trusted links between accessories and controllers using cryptographic key exchange for secure communication. ([source](https://cdn.jsdelivr.net/gh/apple/homekitadk@master/README.md))
- [HomeKit Pairing Libraries](https://awesome-repositories.com/f/security-cryptography/security/infrastructure-and-hardware/embedded-and-hardware/device-pairing-protocols/homekit-pairing-libraries.md) — A library implementing HomeKit's SRP and Curve25519 key exchange for secure device pairing and session establishment.
- [Session Key Establishments](https://awesome-repositories.com/f/security-cryptography/session-key-establishments.md) — Establishes encrypted sessions using SRP and Curve25519 key exchange for trusted accessory-controller links.

### Data & Databases

- [Configuration Stores](https://awesome-repositories.com/f/data-databases/data-serialization-formats/data-formats/json/configuration-stores.md) — Stores accessory configuration and characteristics in a structured JSON format for runtime querying and updates.

### Software Engineering & Architecture

- [Event-Driven Architectures](https://awesome-repositories.com/f/software-engineering-architecture/event-driven-architectures.md) — Manages accessory state and characteristics through an event-driven architecture that reacts to controller commands.
