Use this file to discover all available pages before exploring further.
This guide covers everything you need to install Home Assistant Core for development, including system requirements, dependencies, and various installation methods.
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.
# From homeassistant/__main__.pydef validate_os() -> None: """Validate that Home Assistant is running in a supported OS.""" if not sys.platform.startswith(("darwin", "linux")): print( "Home Assistant only supports Linux, OSX and Windows using WSL", file=sys.stderr, ) sys.exit(1)
The default configuration directory is determined by get_default_config_dir() in homeassistant/config.py:
def get_default_config_dir() -> str: """Put together the default configuration directory based on the OS.""" data_dir = os.path.expanduser("~") return os.path.join(data_dir, CONFIG_DIR_NAME)
# Create virtual environment with specific Python versionpython3.14 -m venv venv# Activate on Linux/macOSsource venv/bin/activate# Activate on Windows WSLsource venv/bin/activate# Deactivate when donedeactivate
The hass command provides these options (from homeassistant/__main__.py):
usage: hass [-h] [--version] [-c path_to_config_dir] [--recovery-mode] [--debug] [--open-ui] [--skip-pip] [--skip-pip-packages package_names] [-v] [--log-rotate-days LOG_ROTATE_DAYS] [--log-file LOG_FILE] [--log-no-color] [--script ...] [--ignore-os-check]Home Assistant: Observe, Control, Automate.options: -h, --help show this help message and exit --version show program's version number and exit -c, --config path_to_config_dir Directory that contains the Home Assistant configuration --recovery-mode Start Home Assistant in recovery mode --debug Start Home Assistant in debug mode --open-ui Open the webinterface in a browser --skip-pip Skips pip install of required packages on startup --skip-pip-packages package_names Skip pip install of specific packages on startup -v, --verbose Enable verbose logging to file. --log-rotate-days LOG_ROTATE_DAYS Enables daily log rotation and keeps up to the specified days --log-file LOG_FILE Log file to write to --log-no-color Disable color logs --script ... Run one of the embedded scripts --ignore-os-check Skips validation of operating system