Companion apps
The official Home Assistant apps for Android, iOS, iPadOS, macOS, watchOS, Wear OS, and the car. How they are built, and how to help build them.
The companion apps put Home Assistant in your pocket, on your wrist, and in your car. They show the same frontend you know from the browser, and add what only an app on the device can do: sensors, location, notifications, widgets, watch apps, and car screens.
There are two apps, each in its own repository, built by its own group of contributors:
| App | Runs on | Language | Repository |
|---|---|---|---|
| Android | Android phones and tablets, Wear OS, Android Auto, Android Automotive, Meta Quest | Kotlin | home-assistant/android |
| Apple | iPhone, iPad, Mac, Apple Watch, CarPlay | Swift | home-assistant/iOS |
Both talk to Home Assistant through the same integration in Core: mobile_app. That integration is a public API, so other apps can use it too.
This area is for developers who want to work on either app, and for anyone building an app of their own that talks to Home Assistant. You need to be comfortable with Kotlin and Android Studio, or with Swift and Xcode. If you want to help without writing code, there is plenty to do too: see ways to help.
- Fix a bug or build a feature: pick an issue in the Android or iOS repository.
- Test betas: join the Android beta on Google Play or the iOS beta on TestFlight, and report what breaks.
- Test pull requests: install a build from a pull request and tell the author if it works. See testing pull request builds.
- Review: everyone can comment on a pull request. Even a short review helps.
- Translate: both apps are translated on Lokalise. See Translations.
- Document: the user documentation lives at companion.home-assistant.io, in the companion.home-assistant repository.
- Your first contribution: choose your platform, build the app, and open your first pull request.
- How the apps fit in: the big picture, from the web view to the push service.
- Android overview: the repository, the modules, and where to find what.
- Get started: set up Android Studio and build the app.
- Architecture and UI architecture: how the app and its screens are structured.
- Testing: unit, screenshot, instrumentation, and end-to-end tests.
- Submit a pull request: the checklist and the review process.
- Apple overview: the repository, the targets, and where to find what.
- Get started: set up Xcode, signing, and build the app.
- Architecture and targets: how the code is shared across iPhone, Watch, CarPlay, widgets, and Mac.
- Submit a pull request: the checklist and the review process.
- Mobile app API: how an app connects to Home Assistant, registers itself, sends sensor data and location, and receives notifications. For both official apps, and for your own.
- Join the Home Assistant Discord and pick the developer role under Channels & Roles. Then head to the Android project thread, or to the #apple-apps channel. Questions that go beyond one app, like the
mobile_appintegration, fit the #developers channel. - Bugs and feature requests go to the issues of the Android or iOS repository.
- Questions about the
mobile_appintegration in Core go to the core repository.