iOS is a free, open source automation project written in Swift and released under Apache-2.0. It has 2,353 GitHub stars, 521 forks and 293 open issues, and was last pushed 10 hours ago. On this registry it ranks #39 of 54 tracked projects in Automation, with 5 head-to-head comparisons available. It gained 3 stars over the last 3 tracked days.

What is iOS?

What it is

Home Assistant for Apple Platforms is companion app for Home Assistant on iOS and macOS. It lives in Home Assistant open-source home automation ecosystem. Project is written in Swift, licensed Apache-2.0, and tagged with home-assistant, home-automation, ios, macos, open-source-app, swift. Repository lists 2350 stars, 519 forks, 293 open issues, and 10 years age. Category is Productivity & Utilities / Automation. Last push is 2026-09-15T06:10:16Z.

Concrete problem is access to Home Assistant from Apple devices. It gives Apple users companion app path into Home Assistant, while also supporting source build, simulator testing, frontend debugging, and code signing workflows. Project is distributed through App Store and TestFlight beta, and it is also built from source with Xcode. GitHub issues, license badge, and homepage companion.home-assistant.io are listed.

Key capabilities

  • Supports iOS and macOS, using Swift.
  • Provides App Store and TestFlight beta access.
  • Builds from source with Bundler, Homebrew, Swift Package Manager, and Xcode 27.0.
  • Runs App-Debug scheme on simulator or iOS device.
  • Tests frontend with simulator builds from GitHub Actions artifacts.
  • Debugs WebView through Safari Web Inspector.
  • Uses code signing, entitlements, DEVELOPMENT_TEAM, BUNDLE_ID_PREFIX, and Fastlane linting or autocorrect.

Who uses it and how

  • Home Assistant users install app from App Store or TestFlight beta.
  • Developers clone repo, install Ruby tooling via Homebrew, rbenv, or mise, run bundle install, open HomeAssistant.xcodeproj, and run App-Debug.
  • Frontend testers download simulator build from GitHub Actions, drag .app into Simulator, launch app, and debug WebView in Safari Web Inspector.
  • Contributors use bundle exec fastlane lint and bundle exec fastlane autocorrect, with linting requirements autocorrected and PR checks.
  • Apple developers edit Configuration/HomeAssistant.overrides.xcconfig and set DEVELOPMENT_TEAM and BUNDLE_ID_PREFIX for provisioning.

Getting started

Install from App Store or TestFlight beta. For source, clone https://github.com/home-assistant/iOS.git, install Ruby tooling with Bundler, Homebrew, rbenv, or mise, run bundle install, then open HomeAssistant.xcodeproj and run App-Debug scheme in Xcode 27.0 or later.

When to use it — and when not to

Use it when Home Assistant needs Apple-platform companion app and user accepts App Store, TestFlight, or Xcode-based distribution. Avoid it when user wants simple no-build product, because source setup requires Xcode 27.0 beta, Apple developer code signing, entitlement configuration, and simulator or device debugging. Provided facts show 293 open issues and beta Xcode requirement, so development can require extra setup.

project readme (upstream, from github) — read inline

Home Assistant for Apple Platforms

TestFlight Beta invite Download on the App Store GitHub issues License Apache 2.0

Getting Started

Home Assistant uses Bundler, Homebrew, and SPM to manage build dependencies. You'll need Xcode 27.0 (or later), currently a beta, which you can download from Apple Developer Downloads. You can get the app running using the following commands:

git clone https://github.com/home-assistant/iOS.git
cd iOS

# Install the Ruby tooling (Fastlane) using one of the following.
# Swift Package Manager dependencies are resolved automatically by Xcode.

## install ruby via homebrew, use that
brew install [email protected]
$(brew --prefix)/opt/[email protected]/bin/bundle install

## install ruby via rbenv, use that
brew install rbenv ruby-build
rbenv install
bundle install

## install ruby via mise, use that
brew install mise
mise install
bundle install

Once this completes, you can launch HomeAssistant.xcodeproj and run the App-Debug scheme onto your simulator or iOS device.

Testing just the frontend

To just test the frontend, you can use a simulator version built by our GitHub actions.

  1. Install Xcode from the App Store making sure it's at least the version noted above. You do not need to install or run anything else.
  2. Launch the simulator at /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app or in Xcode under the Xcode menu > Open Developer Tool.
  3. Open a simulator under File > Open Simulator. You can install older versions of iOS in Xcode's Components preferences.
  4. Download a simulator build from the the GitHub action under "Artifacts."
  5. Drag the result .app on drop it on top of the simulator.
  6. Locate the app on the home screen and click it to launch.

The simulator behaves different than you might expect:

Action Effect
Click Tap
Click & drag Scroll
Hold ⌥ Add a second touch point
Hold ⇧⌥ Move both touch points
⌘←, ⌘→ Rotate
⌘S Take screenshot
⌘R Record video
⌘K Toggle software keyboard

You can now debug the WebView in this simulator build using Safari's Web Inspector:

  1. Make sure "Show Develop menu in menu bar" is enabled in Safari's Advanced preferences.
  2. Under the Develop menu, expand the "Simulator" menu for the simulator you've opened.
  3. Choose the WebView you want to inspect. A new window will open.

Code Signing

Although the app is set up to use Automatic provisioning for Debug builds, you'll need to customize a few of the options. This is because the app makes heavy use of entitlements that require code signing, even for simulator builds.

Edit the file Configuration/HomeAssistant.overrides.xcconfig (which will not exist by default and is ignored by git) and add the following:

DEVELOPMENT_TEAM = YourTeamID
BUNDLE_ID_PREFIX = some.bundle.prefix

Xcode should generate provisioning profiles in your Team ID and our configuration will disable features your team doesn't have like Critical Alerts. You can find your Team ID on Apple's developer portal; it looks something like ABCDEFG123.

Code style

Linters run as part of Pull Request checks. Additionally, some linting requirements can be autocorrected.

# checks for linting problems, doesn't fix
bundle exec fastlane lint
# checks for linting problems and fixes them
bundle exec fastlane autocorrect

To run autocorrect automatically before each commit, install the git pre-commit hook once:

bundle exec fastlane install_git_hooks

In the Xcode project, the autocorrectable linters will not modify your source code but will provide warnings. This project uses several linters:

Continuous Integration

We use Github Actions alongside Fastlane to perform continuous integration both by unit testing and deploying to App Store Connect. Mac Developer ID builds are available as an artifact on every build of master.

Environment variables

Fastlane scripts read from the environment or .env file for configuration like team IDs. See .env.sample for available values.

Deployment

Although all the deployment is done through Github Actions, you can do it manually through Fastlane:

Deployment to App Store Connect

# creates the builds and uploads to the app store
# each save their artifacts to build/
bundle exec fastlane mac build
bundle exec fastlane ios build

Contributing

See CONTRIBUTING.md

LICENSE

Apache-2.0

Credits

The format and some content of this README.md comes from the SwipeIt project.

Home Assistant - A project from the Open Home Foundation

Frequently asked questions

Is iOS free to use?

iOS is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does iOS do?

:iphone: Home Assistant for Apple platforms

What is iOS written in?

iOS is primarily written in Swift. Its source is publicly available at https://github.com/home-assistant/iOS, and it has 2,353 GitHub stars.