System Requirements
Python Version
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
Method 1: Development Installation (Recommended)
This method is best for active development.1
Clone the Repository
2
Create Virtual Environment
3
Install in Editable Mode
-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 inpyproject.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 byget_default_config_dir() in homeassistant/config.py:
- Linux/macOS:
~/.homeassistant - Custom: Use
hass --config /path/to/config
Directory Structure
When Home Assistant starts for the first time, it creates:Development Dependencies
For full development capabilities, install additional tools:Code Quality Tools
Testing Tools
pyproject.toml:
Package Management
Home Assistant usesuv for fast package management:
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
Thehass command provides these options (from homeassistant/__main__.py):
Troubleshooting
Python Version Issues
Operating System Issues
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