How to Install ESPHome on Windows (Desktop App and pip Methods)

ESPHome lets you program an ESP32 with a short YAML file instead of C++ code, which makes it perfect for smart home projects. However, getting ESPHome on Windows running for the first time can be confusing, because there are several ways to install it and a few traps along the way.

We set it up on a Windows laptop for our own projects, such as the ESP32 washing machine alert, and made most of the classic mistakes. This guide shows the easy way first, then the manual method, and finally the errors we hit and how to fix them.

ESPHome on Windows guide showing the Device Builder, Python and an ESP32 on COM4

Which Way to Install ESPHome on Windows?

There are three main options. For most people, the first one is the best choice:

  • ESPHome Device Builder desktop app: the newest and easiest option. You download an installer, and it opens the Device Builder in your browser. No terminal and no manual Python setup.
  • pip in a Python virtual environment: the classic manual method. It gives you the esphome command line, which is useful for scripts and advanced users.
  • Home Assistant add-on: if you already run Home Assistant, you can use ESPHome from there instead of Windows.

In short, if you just want to flash an ESP32 and get on with your project, use the desktop app. If you like the terminal, or the app does not suit you, use pip.

🛒 What you need

As an Amazon Associate, Arelvox earns from qualifying purchases. This does not change the price you pay.

Method 1: The ESPHome Desktop App

In August 2026, the ESPHome team released a desktop version of the Device Builder for Windows, macOS and Linux. According to the official announcement, it removes the need to install Python and type commands. To install ESPHome on Windows this way:

  1. Go to esphome.io/install and download the Windows version.
  2. Run the installer and follow the steps.
  3. Start the app. It finishes its setup in the background and then opens the Device Builder in your browser.
  4. Use the tray icon next to the clock to reopen the Device Builder, check for updates or quit the app.

Best of all, it runs locally, so there is no account and no password. Everything you build stays on your computer.

Method 2: Install ESPHome With pip

If you prefer the command line, install ESPHome with Python’s package manager. The most important tip is to use a virtual environment, so ESPHome gets its own clean copy of Python packages. Many of the strange errors people report on forums come from skipping this step.

First, install Python from python.org. At the time of writing, some users reported problems with the newest Python 3.14, so Python 3.13 is the safe choice. During installation, tick Add python.exe to PATH. Then open PowerShell in a normal folder, not as administrator, and run:

# Create a working folder in your user directory
mkdir $HOME\esphome
cd $HOME\esphome

# Create and activate a virtual environment
py -3.13 -m venv venv
.\venv\Scripts\Activate.ps1

# Install ESPHome and check the version
pip install esphome
esphome version

# Start the web dashboard on http://localhost:6052
esphome dashboard configs

If PowerShell refuses to run Activate.ps1, allow local scripts once with Set-ExecutionPolicy -Scope CurrentUser RemoteSigned. Next time, you only need to open the folder, activate the environment and start the dashboard again.

Avoid the System32 Folder Trap

Unfortunately, this one caught us. When you open PowerShell as administrator, it starts in C:\Windows\System32. If you create your ESPHome folder there without noticing, everything seems to work at first. Later, however, Windows refuses to save your files unless you open PowerShell as administrator again, every single time.

To avoid it, always keep your ESPHome configurations in your user folder, for example C:\Users\YourName\esphome. If you already have files in System32, simply move the folder, including secrets.yaml, to your user directory and start the dashboard from there.

USB Drivers and the COM Port

To flash an ESP32 for the first time, Windows has to recognize its USB-to-serial chip. Most boards use one of two chips: the Silicon Labs CP2102 (CP210x driver) or the CH340. For example, our ESP32 WROOM-32 board uses the CP210x and appeared as COM4.

To check yours, plug in the board and open Device Manager. Look under Ports (COM and LPT). If you see a COM port, you are ready. If you see an unknown device or nothing at all, install the driver for your chip, or read our guide on fixing an ESP32 that is not detected on Windows.

Flash Your First ESP32

Now for the fun part. First, open the Device Builder:

  1. Click New device, give it a name and choose ESP32.
  2. Enter your Wi-Fi details. They are saved in secrets.yaml, so you can reuse them in every project.
  3. Click Install and choose Plug into this computer or the COM port of your board.
  4. Wait for the first build to finish. It takes several minutes, because ESPHome downloads the toolchain once.
  5. Open the logs. If you see the device connect to Wi-Fi, everything works.

After that first USB flash, you can update the board over Wi-Fi, so you rarely need the cable again. For a real first project, try our ESP32 mmWave presence sensor, which only needs four wires.

Common ESPHome on Windows Errors

  • “esphome is not recognized”: the virtual environment is not active. Run .\venv\Scripts\Activate.ps1 first, or use the desktop app.
  • pip installs an old version: your Python version is too old or too new for the latest ESPHome. Create a fresh virtual environment with Python 3.13 and run pip install -U esphome.
  • “Permission denied” when saving: your configuration folder is inside System32 or another protected folder. Move it to your user directory.
  • “Failed to connect to ESP32”: hold the BOOT button on the board while the upload starts, and close any other program that uses the COM port.
  • The first build is very slow: that is normal. Later builds are much faster.

FAQ: ESPHome on Windows

Does ESPHome work on Windows?

Yes. You can use the ESPHome Device Builder desktop app, install ESPHome with pip in a Python virtual environment, or run it in Docker.

Do I need Home Assistant to use ESPHome?

No. ESPHome works on its own, and devices can run automations by themselves. Home Assistant is optional, but it makes dashboards easier.

Which Python version should I use for ESPHome?

Python 3.13 is the safe choice at the time of writing. If you use the desktop app, you do not need to install Python yourself.

Why does my ESP32 not show up as a COM port?

Usually the USB cable is charge-only or the driver for the CP2102 or CH340 chip is missing. Try a data cable and install the right driver.

Is ESPHome free?

Yes. ESPHome is free and open source, and so is the desktop app.

Leave a Comment