Casa is a Mac Catalyst app that exposes your local HomeKit data as a localhost-only REST API, plus a CLI for scripting. It is designed for automation, agents, and power users who want a fast, reliable bridge into HomeKit on their own machine.
- Local-only API (loopback, no remote access)
- HomeKit module is opt-in and off by default
- Built-in CLI for fast scripting and automation
- Onboarding flow for permissions and setup
- Works with existing Home and accessories
- Open
Casa.xcodeprojin Xcode. - Select your Team and enable the HomeKit capability.
- Build and run the app.
- Complete onboarding (enable HomeKit and install CLI).
Build from the terminal:
./scripts/restart-mac.sh
Default base URL:
http://127.0.0.1:14663
If you set an auth token in the app, pass X-Casa-Token: <token>.
Common endpoints:
GET /healthGET /homekit/accessoriesGET /homekit/accessories/:idGET /homekit/roomsGET /homekit/servicesGET /homekit/characteristics/:idPUT /homekit/characteristics/:idGET /homekit/schemaGET /homekit/camerasGET /homekit/cameras/:id
The CLI is embedded into the app at build time and can be installed from Settings or onboarding.
Examples:
# Health check
casa health
# Browse HomeKit
casa devices
casa rooms
casa services
# Read/write a characteristic
casa characteristics get <uuid>
casa characteristics set <uuid> true
# Custom URL/token
CASA_URL=http://127.0.0.1:14663 CASA_TOKEN=token casa devices
- The server only binds to loopback (
127.0.0.1). - HomeKit access requires the entitlement; the module stays off until enabled in the app.
- If you change the port or auth token, update your CLI environment variables.
- No accessories: confirm you have a Home in the Home app and grant HomeKit access in System Settings.
- Server not running: verify the port is free and check the app status badge.
- Missing CLI: use the Install CLI action in onboarding or Settings.
Casa uses Sparkle for app updates. Set these build settings or environment values:
SPARKLE_FEED_URL(appcast URL)SPARKLE_PUBLIC_KEY(Sparkle EdDSA public key)
The release workflow expects these secrets:
APPLE_CERT_BASE64APPLE_CERT_PASSWORDAPPLE_TEAM_IDAPPLE_SIGNING_IDENTITYAPPLE_PROVISION_PROFILE_BASE64KEYCHAIN_PASSWORDSPARKLE_PRIVATE_KEYSPARKLE_PUBLIC_KEY