Skip to main content
This guide covers everything you need to install Home Assistant Core for development, including system requirements, dependencies, and various installation methods.

System Requirements

Python Version

Home Assistant Core requires Python 3.14.2 or later. Earlier versions are not supported.
Verify your Python version:

Operating System

Home Assistant Core supports:
  • Linux - Recommended for production and development
  • macOS (Darwin) - Full support for development
  • Windows (WSL) - Use Windows Subsystem for Linux
Native Windows is not supported. The validation code in homeassistant/__main__.py explicitly checks for Linux, macOS, or WSL.

Hardware Requirements

Minimum requirements for development:
  • CPU: Modern multi-core processor (2+ cores recommended)
  • RAM: 2GB minimum, 4GB+ recommended
  • Storage: 5GB free space for code and dependencies
  • Network: Internet connection for downloading dependencies

Installation Methods

This method is best for active development.
1

Clone the Repository

2

Create Virtual Environment

Virtual environments isolate your Home Assistant installation from system packages, preventing conflicts.
3

Install in Editable Mode

The -e flag installs Home Assistant in “editable” mode, meaning changes to the source code take effect immediately without reinstalling.
4

Verify Installation

Method 2: Using pip (For Testing)

Install the latest release from PyPI:
This method installs the stable release, not the development version. Changes to the source code won’t be reflected.

Method 3: Docker (For Isolation)

Run Home Assistant Core in Docker:

Core Dependencies

Home Assistant Core has numerous dependencies defined in pyproject.toml. Key dependencies include:

Web Framework

Configuration & Validation

Utilities

Security & Authentication

Database

Network & Discovery

The full list of dependencies is automatically installed when you run pip install -e .

Configuration Directory

Home Assistant stores configuration in a dedicated directory.

Default Location

The default configuration directory is determined by get_default_config_dir() in homeassistant/config.py:
Default locations:
  • Linux/macOS: ~/.homeassistant
  • Custom: Use hass --config /path/to/config

Directory Structure

When Home Assistant starts for the first time, it creates:
Never commit secrets.yaml to version control. It contains sensitive credentials.

Development Dependencies

For full development capabilities, install additional tools:

Code Quality Tools

Testing Tools

From pyproject.toml:

Package Management

Home Assistant uses uv for fast package management:
Home Assistant can automatically install integration requirements on startup. Control this with:
Use --skip-pip during development to speed up startup time after the initial installation.

Environment Setup

Virtual Environment Best Practices

Environment Variables

Useful environment variables for development:

Installation Verification

Check Installation

Verify your installation is working:
1

Check Version

2

Test Imports

3

Check Command Help

4

Dry Run

Command Line Interface

The hass command provides these options (from homeassistant/__main__.py):

Troubleshooting

Python Version Issues

Error: “Home Assistant requires at least Python 3.14.2”Solution: Upgrade Python or use a system with Python 3.14.2+

Operating System Issues

Error: “Home Assistant only supports Linux, OSX and Windows using WSL”Solution: Install WSL on Windows or use Linux/macOS

Dependency Issues

Permission Issues

Next Steps

Now that you have Home Assistant Core installed:

Configuration

Learn how to configure Home Assistant

Quickstart

Follow the quickstart guide to create your first integration

Architecture

Understand Home Assistant’s architecture

Development Checklist

Review the development checklist

Additional Resources