A native SwiftUI front end for Home Assistant, designed around the clarity, motion, and familiarity of Apple Home.
CasaGlow turns a Home Assistant installation into a polished iPhone and iPad smart home dashboard. It combines direct Home Assistant control with native iOS interaction, Liquid Glass surfaces, responsive tile morphs, visual automation editing, and room-first smart home management.
Note
CasaGlow is an independent project in active development. It is not affiliated with or endorsed by Apple Inc. or the Home Assistant project.
Home Assistant is exceptionally powerful, but its most advanced tools can feel technical on a phone. CasaGlow explores a different front-end design: keep Home Assistant as the source of truth while presenting lights, media, climate, security, scenes, and automations through a cohesive native Apple-platform experience.
- Native by design — SwiftUI controls, iOS navigation, spring motion, haptics, context menus, and Liquid Glass.
- Home Assistant powered — communicates directly with your own Home Assistant server through REST and WebSocket APIs.
- Human-friendly automation editing — build and maintain automations visually, with JSON available as an explicit advanced fallback.
- Capability aware — controls adapt to what each Home Assistant entity actually exposes.
- Private and local-first — no CasaGlow cloud relay; your app connects to the Home Assistant instance you configure.
- Room-based accessory layout with favorites, rearranging, and resizable tiles.
- Status summaries for climate, security, lighting, and media.
- Home Assistant friendly names, areas, categories, labels, and Material Design Icons.
- Apple Home-inspired detail transitions that preserve spatial context.
- Live state synchronization with optimistic controls and automatic rollback when Home Assistant rejects a request.
- Power, brightness, RGB color, and color-temperature controls.
- Capability-aware warm-to-cool ranges based on each physical light.
- Preset colors, white-temperature presets, and a native Color Studio.
- Grouped-light controls and reusable detail components across RGB and temperature-only lights.
- Artwork-led Now Playing experiences with adaptive color treatment.
- Native playback, volume, and supported-source controls.
- Remote controls for compatible television and media-player entities.
- Sonos-specific EQ and playback modes when Home Assistant exposes them.
- Alarm arming and disarming through Home Assistant.
- Security activity assembled from Home Assistant logbook data.
- Climate, temperature, humidity, battery, and illuminance summaries.
- Per-device details with room assignment and accessory information.
- Search, organize, toggle, run, create, and edit Home Assistant automations.
- Visual triggers, conditions, and actions with friendly entity names and Home Assistant icons.
- Structured support for choose, if/then, repeat, wait, parallel, and nested logic.
- Categories and labels carried over from Home Assistant.
- Native time selection and clear run-mode controls.
- Developer options and JSON fallback remain available without dominating the everyday editing experience.
- Cached loading keeps the latest automation list visible while Home Assistant refreshes in the background.
- Xcode with the iOS 26 SDK
- iOS or iPadOS 26.1 or later
- A Home Assistant instance reachable from the device or simulator
- A Home Assistant long-lived access token
-
Clone the repository:
git clone https://github.com/epinethrone/CasaGlow.git cd CasaGlow -
Copy the credential template:
cp CasaGlow/CasaSecrets.example.swift CasaGlow/CasaSecrets.swift
-
In
CasaGlow/CasaSecrets.swift, renameCasaSecretsExampletoCasaSecrets, then enter your Home Assistant URL and long-lived access token. -
Open
CasaGlow.xcodeprojin Xcode. -
Select an iPhone or iPad running iOS 26.1 or later, then build and run.
CasaGlow/CasaSecrets.swift is ignored by Git. Never commit a real Home Assistant token. Rotate the token immediately if it is accidentally exposed.
| Component | Responsibility |
|---|---|
CasaGlowDashboardView.swift |
Main smart home dashboard, room grids, status chips, accessory details, settings, lighting, security, and media UI |
CasaGlowHomeView.swift |
Home model, entity state, zones, accessories, live synchronization, and service orchestration |
CasaGlowAutomationEditor.swift |
Native visual automation editor and advanced JSON fallback |
CasaGlowAutomationsView.swift |
Automation discovery, organization, search, contextual actions, and cached loading |
CasaGlowClimateModel.swift / CasaGlowClimateView.swift |
Climate and environmental sensor models and interfaces |
HomeAssistantAPI.swift |
Home Assistant REST API requests |
HAWebSocketClient.swift |
Authenticated Home Assistant WebSocket event stream |
MDIIcon.swift |
Rendering for Home Assistant Material Design Icons |
CasaGlow talks directly to Home Assistant. HomeKit is not required, and Home Assistant remains authoritative for entities, state, organization, capabilities, and automations.
GitHub Actions validates every proposed change:
- iOS Build compiles the app for a generic iOS Simulator without code signing.
- Xcode Analyze runs Xcode static analysis on pull requests and on a weekly schedule.
- Dependabot checks the pinned GitHub Actions dependencies monthly.
The repository is an Xcode application rather than a Swift Package, so it intentionally does not use GitHub's generic Swift Package workflow.
CasaGlow is under active development. Interfaces and Home Assistant capability mapping may evolve quickly while the app moves toward a complete, production-ready smart home management experience.
Contributions, issue reports, Home Assistant integration findings, and thoughtful iOS front-end design feedback are welcome.