LinuxWindowsmacOS

Where Are ESPHome Config Files Stored?

ESPHome device configs are YAML files you choose, usually ~/esphome or /config/esphome under Home Assistant. Secrets stay in secrets.yaml.

Last updated

ESPHome has no fixed config path. The folder you point the dashboard at becomes the config folder, and each device is one YAML file inside it. That freedom confuses people looking for a standard location.

Two conventions cover nearly everyone. Standalone installs use a folder in your home directory. The Home Assistant add-on uses /config/esphome inside the Home Assistant config tree. Pick one layout and keep shared bits in a common subfolder with !include.

Where ESPHome stores this, by platform

Linux
~/esphome/

Default working folder for pip and Docker runs. Each device gets living-room.yaml style file here. Launch the dashboard against this dir.

Linux
/config/esphome/

Home Assistant add-on location. Reaches from the host via the Samba or SSH add-on. Same per-device YAML layout.

Windows
%USERPROFILE%\esphome\

Same user-chosen folder pattern on desktop. Docker Desktop users typically bind-mount a host folder to /config in the container.

macOS
~/esphome/

Same convention via pip or Docker. Bind-mount the folder to /config when running the container.

Frequently asked questions

How do I move ESPHome configs to a new machine?

Copy the device YAML plus secrets.yaml into the new folder, keeping relative includes intact. The dashboard reads whatever directory you launch it against, so point it at the new location.

Should secrets.yaml stay out of git?

Yes for Wi-Fi passwords and API keys. Reference them with !secret in device files and keep the real values in secrets.yaml beside them. That file should never be shared or committed.

Notice an outdated path? Let us know.