Home Assistant Core: Local-First Home Automation Platform on Python
Home Assistant runs home automation locally, connecting devices and services while keeping control and data on the user's system.
At a glance
- What is it?
- Home Assistant is an Apache-2.0 open-source home automation platform that runs entirely on a local server, connecting devices and services without routing data through a cloud provider. The project requires Python 3.14.2 or higher and releases monthly, with 2026.9.4 published on 2026-09-27.
- Who is it for?
- Home Assistant Core suits developers and DIY enthusiasts who want full control over their home automation data and are comfortable maintaining a Python-based server on a Raspberry Pi, a dedicated machine, or a Docker container. It is not the right choice for users who expect a managed cloud infrastructure, automatic updates without interaction, or the add-on marketplace that Home Assistant OS provides.
- Can I use it commercially?
- Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository received new commits within the last day.
- What is it written in?
- Mainly Python, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 29, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
What Home Assistant Solves and Who It Is For
Commercial smart home platforms tie device data and automation logic to vendor cloud services. When the vendor's server is down, the automations stop. Home Assistant takes the opposite approach: the README describes it as putting local control and privacy first, powered by a community of tinkerers and DIY enthusiasts.
The target users are technically literate homeowners who want to connect devices from different brands into a single automation layer that runs on their own hardware without depending on any vendor's continued operation. The README notes it is perfect to run on a Raspberry Pi or a local server, and the project website at home-assistant.io includes a live demo, installation instructions, tutorials, and documentation.
Modular Architecture and the Integration Model
Home Assistant's core design is modular. The README states that support for other devices or actions can be implemented easily through its modular approach, and it links to the architecture documentation at developers.home-assistant.io for the full technical description.
In practice this means a device or service is represented by an integration, which is a Python module in the homeassistant/ directory that implements a defined interface. The pyproject.toml lists the core runtime dependencies: aiohttp for async HTTP, Jinja2 for templating, SQLAlchemy for the local state database, and PyYAML for configuration files. The requirements.txt in the repository pins every core dependency to an exact version, which makes the dependency set reproducible but also means each monthly release updates these pins across a large set of packages.
Home Assistant Core vs Other Installation Methods
The project documentation distinguishes four installation methods: Home Assistant OS (the recommended path, a dedicated operating system image), Home Assistant Container (Docker-based, no add-ons), Home Assistant Supervised (full HA stack with add-ons on user-managed Linux), and Home Assistant Core (the Python application only, minimal tooling, no add-ons).
The repository at home-assistant/core contains the Python application that is the foundation for all four. Running Core directly means installing the homeassistant Python package and managing the Python environment, without the operating-system-level tooling that Home Assistant OS or Supervised provide. The README links to home-assistant.io/getting-started for the current installation instructions for all variants.
For Container deployments, the repository includes a Dockerfile and a .dockerignore at the root. The Dockerfile uses S6-Overlay for process supervision, installs the core dependencies via uv, and exposes the application on its configured port.
Python Version Requirement and Dependency Management
The pyproject.toml requires Python 3.14.2 or higher. This is a strict lower bound: Python 3.14 was released in 2025 and is not yet present in all Linux distribution package managers by default. Teams installing Home Assistant Core on an existing server must verify their Python version before installing, or build Python from source.
The requirements.txt file at the root of the repository lists the exact pinned versions of all runtime dependencies. For the 2026.9.4 release, this includes aiohttp 3.14.3, Jinja2 3.1.6, SQLAlchemy 2.0.54, cryptography 50.0.1, PyJWT 2.13.0, and uv 0.12.17, among others. The monthly release cadence means these pins change with every release, and automated update tooling that reads requirements.txt will trigger rebuild pipelines on every version bump.
Automation, Integrations, and the Configuration Layer
Home Assistant configurations are written in YAML. The Jinja2 template engine is listed as a core dependency and is used in automations to compute values from device states. The automation model follows an event-driven pattern: a trigger fires, optional conditions are checked, and actions execute.
Integrations for connecting specific devices or services are in the homeassistant/components/ directory. The CODEOWNERS file at the root of the repository lists the maintainers for each integration. The homeassistant-intents package in requirements.txt (pinned to 2026.9.17) handles natural language intent processing for voice commands. The ha-ffmpeg package handles audio/video processing for media-related integrations.
Limitations: No Add-Ons, High Python Requirement, Maintenance Burden
Home Assistant Core has no add-on store. The add-on ecosystem, which includes tools like the Mosquitto MQTT broker, the DuckDNS client, and the VS Code server integration, is only available on Home Assistant OS and Supervised installations. Teams that need these must use a different installation method or manage the add-on services separately.
The Python 3.14.2 requirement is a real barrier on systems running older LTS distributions. Ubuntu 22.04, for example, ships with Python 3.10 and would require a manual Python upgrade or a containerised deployment. The pyproject.toml shows a development version already targeting 2026.10.0, confirming that the dependency floor advances with each release cycle.
The monthly release cadence also means that automated update pipelines and those who skip multiple releases must manage larger diffs. The README advises following the per-release migration notes for any configuration or breaking API changes.
Alternative: Node-RED and the Difference in Approach
Node-RED is a common automation layer that complements or replaces Home Assistant's built-in automation editor for complex workflows. Node-RED uses a visual flow-based programming model where automation logic is drawn as connected nodes in a browser UI, and it can connect to the same MQTT brokers and local APIs that Home Assistant uses.
The difference is focus. Home Assistant provides a unified state model for hundreds of device integrations, a UI for managing device states, and an automation engine. Node-RED provides a visual programming environment without a built-in device integration layer. Many users run both together, using Node-RED for intricate logic and Home Assistant for device management and the dashboard. Running Home Assistant Core alone, without Node-RED, is the simpler starting point for users who do not need flow-based programming.
Maintenance, Release Cadence, and License
The repository is not archived and the last push was on 2026-09-27. The project follows a monthly release cadence: 2026.9.4 on 2026-09-27, 2026.9.3 on 2026-09-18, and 2026.9.2 on 2026-09-11 are the three most recent releases in September 2026. The project is licensed under Apache-2.0.
The repository is a part of the Open Home Foundation, whose badge and logo appear in the README. The CONTRIBUTING.md, CODEOWNERS, and AI_POLICY.md files at the root document the contribution and governance process. A signed CLA (CLA.md) is required for code contributions.
Editorial conclusion
Home Assistant Core suits developers and DIY enthusiasts who want full control over their home automation data and are comfortable maintaining a Python-based server on a Raspberry Pi, a dedicated machine, or a Docker container. It is not the right choice for users who expect a managed cloud infrastructure, automatic updates without interaction, or the add-on marketplace that Home Assistant OS provides. Before installing Core specifically, read the installation guide at home-assistant.io to confirm whether Core, Container, Supervised, or OS is the right variant for your hardware and maintenance preferences.
Frequently asked questions
What is Home Assistant Core?
Home Assistant Core is the Python application at the foundation of the Home Assistant home automation platform. It can be installed directly with Python and pip, without the operating system tools that Home Assistant OS or Supervised installations provide. The README describes it as putting local control and privacy first.
Is Home Assistant Core still supported?
Yes. The repository is not archived and the last push was on 2026-09-27. The 2026.9.4 release was published on that date. Development follows a monthly release schedule.
Is it better to run Home Assistant on Docker or a VM?
The README and project documentation distinguish Home Assistant Container (Docker) from Home Assistant OS (a VM or dedicated hardware image). Docker (Home Assistant Container) provides portability and easy backup but does not include the add-on store. Home Assistant OS includes the add-on store but requires dedicated hardware or a VM. The README points to home-assistant.io/getting-started for guidance on choosing an installation method.
How do I install Home Assistant Core?
The README directs users to home-assistant.io/getting-started for installation instructions. Core requires Python 3.14.2 or higher. The repository also includes a Dockerfile for container-based deployments.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/home-assistant-core)
Community notes