HomeKit Smart Home Control
HomeKit Smart Home Control
Lobster can control HomeKit accessories (lights, locks, thermostats, blinds, scenes) via the HomeClaw plugin.
Architecture
User → Lobster → homekit-cli → Unix socket → HomeClaw.app → Apple HomeKit- HomeClaw.app — macOS app that connects to Apple HomeKit via native frameworks
- homeclaw-cli — CLI binary bundled in the app, communicates over
/tmp/homekit-bridge.sock - HomeClaw plugin — OpenClaw skill-only plugin that teaches the agent how to use the CLI
Setup
Prerequisites
- macOS with HomeKit accessories configured in the Home app
- HomeClaw.app installed and running
Installation
-
Install the plugin:
Terminal window openclaw plugin install /Applications/HomeClaw.app/Contents/Resources/openclaw -
Symlink the CLI into PATH:
Terminal window ln -sf '/Applications/HomeClaw.app/Contents/MacOS/homeclaw-cli' /opt/homebrew/bin/homekit-cli -
Restart the gateway:
Terminal window openclaw gateway restart -
Verify:
Terminal window homekit-cli status
No config needed
The plugin is skill-only — no binDir or other config entries required. Just the symlink so the CLI is in PATH.
Usage
The agent uses homekit-cli device-map --json to discover all devices, then homekit-cli set to control them. Examples:
- “Turn off the staircase light”
- “Lock all doors”
- “Set the thermostat to 70”
- “Close the bedroom blinds”
- “Run the movie scene”
- “What’s the temperature outside?”
Device Map
The device map is the key discovery tool. It returns every device organized by home/zone/room with semantic types, aliases, and current state. The agent should always consult it before acting to resolve ambiguous names.
Notes
- Many Lutron/Caseta “lights” are actually switches — they have
powerbut notbrightness - Multiple devices can share the same name across rooms — use
display_name(room-prefixed) for disambiguation - HomeClaw.app must be running for the CLI to work (it communicates over the Unix socket)
- Unreachable devices return
nilfor all state values
Our Setup
- Devices: 104 (101 reachable)
- Homes: 1
- Zones: Basement Floor, Main Floor, Upstairs, Outdoor, plus unzoned rooms
- Agent access: lobster (full), lobster-groups/lobster-family (not yet enabled)