Skip to main content

ESP-IDF

Also available in 中文.

Welcome to ESP-IDF

ESP-IDF — the Espressif IoT Development Framework — is our official, production-grade SDK for every Espressif SoC. Whether you are prototyping a sensor node, shipping a Matter-certified product, or building an edge device with AI, ESP-IDF gives you drivers, networking stacks, security features, and build tooling in one place so you can focus on your application.

Why ESP-IDF

One framework, many chips. Use the same APIs, build system, and workflow across all Espressif SoC series. Switch to a newly-released chip to get the latest features, or to a cost-effective one to meet your BOM budget — all without changing your application code.

Built for real products. ESP-IDF powers applications running on over a billion ESP chips shipped worldwide. Our release roadmap includes regular feature and bugfix releases.

Open source on GitHub. Inspect the code and tap into a global community of contributors and commercial partners.

SoCs in the latest release

The latest ESP-IDF release supports the full Espressif lineup below—pick the radio, performance, and peripherals that fit your design, and stay on one framework as your product evolves.

ESP32
Wi-Fi & Bluetooth Classic & BLE
ESP32-S2
Wi-Fi
ESP32-S3
Wi-Fi & BLE
ESP32-C2
Wi-Fi & BLE
ESP32-C3
Wi-Fi & BLE
ESP32-C5
Wi-Fi & BLE
ESP32-C6
Wi-Fi, BLE & IEEE 802.15.4
ESP32-C61
Wi-Fi & BLE
ESP32-H2
BLE & IEEE 802.15.4
ESP32-P4
High-performance

For the authoritative, up-to-date list (including new chips and targets), see the ESP-IDF Compatibility — Detailed ESP-IDF Support for Chip Revisions.

New chip support status

Track the support status of newly introduced Espressif chips in ESP-IDF and related frameworks, with links to detailed per-chip status pages and rollout updates.

Hardware Support

Browse Espressif hardware resources, including DevKits, hardware design guidelines, the official KiCad library, and support status pages for new chips across SDKs and frameworks.

Install ESP-IDF

The fastest path on Windows, macOS, and Linux is the ESP-IDF Installer Manager (EIM). It installs the toolchains, Python environment, and ESP-IDF itself so you can run idf.py build without manual dependency hunting.

Download

Get GUI installers, portable binaries, and release bundles from the EIM downloads page, or install EIM with your platform package manager:

Package manager (recommended)

# Install GUI version
winget install Espressif.EIM
# Install CLI version only
winget install Espressif.EIM-CLI

To update EIM later:

winget upgrade Espressif.EIM

Manual download: Get the installer from the EIM downloads page or from GitHub Releases, then run the .exe. It will automatically detect and install any missing prerequisites and guide you through the setup process.

Note

If you download the CLI-only version (e.g., eim-cli-*.exe), it must be run from a terminal/command prompt rather than double-clicking. Double-clicking opens a terminal window briefly, displays help information, and then closes immediately — which may appear as if the installer crashed. Open PowerShell, navigate to the file location, and run it with .\eim-cli-*.exe --help.

After installation, launch the GUI from the Start Menu or use the CLI:

eim install

Package manager (recommended)

# Add the Espressif tap
brew tap espressif/eim
# Install GUI version (launchable from Applications)
brew install --cask eim-gui
# Or install CLI version only (runnable from terminal)
brew install eim

To update EIM later:

brew upgrade eim
# or
brew upgrade --cask eim-gui

Manual download: You can also download macOS .dmg or .zip installers from the EIM downloads page — useful if you prefer manual setup or offline installation.

Homebrew works on most Linux distributions:

# Add the Espressif tap
brew tap espressif/eim
# Install CLI only
brew install eim
# Or install GUI (includes CLI)
brew install --cask eim-gui

To update EIM later:

brew upgrade eim
# or
brew upgrade --cask eim-gui
Note

The GUI version requires a graphical environment and may have additional dependencies depending on your Linux distribution.

Package manager (recommended) — Debian, Ubuntu, Linux Mint, etc.

Install the Espressif signing key and add the signed APT repository:

# Install the Espressif signing key
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://dl.espressif.com/dl/eim/eim.gpg -o /etc/apt/keyrings/eim.gpg
sudo chmod 0644 /etc/apt/keyrings/eim.gpg

# Add the Espressif APT repository (deb822 with signed-by)
sudo curl -fsSL https://dl.espressif.com/dl/eim/eim.sources -o /etc/apt/sources.list.d/espressif.sources

# Update package lists
sudo apt update

# Install CLI only
sudo apt install eim-cli
# Or install GUI (includes CLI)
sudo apt install eim

To update EIM later:

sudo apt update && sudo apt upgrade eim

Manual download: use the EIM downloads page for .deb packages or portable Linux binaries.

Package manager (recommended) — Fedora, RHEL, CentOS, openSUSE, etc.

Import the Espressif signing key and add the RPM repository:

# Import the Espressif signing key
sudo rpm --import https://dl.espressif.com/dl/eim/eim.asc

# Add the Espressif RPM repository
sudo curl -fsSL https://dl.espressif.com/dl/eim/rpm/eim.repo -o /etc/yum.repos.d/espressif-eim.repo

# Install CLI only
sudo dnf install eim-cli
# Or install GUI (includes CLI)
sudo dnf install eim
Note

eim.repo enables both gpgcheck=1 (verifies each package) and repo_gpgcheck=1 (verifies repository metadata). If you previously set up this repo manually with gpgcheck=0, you can keep using it as-is — the change only affects new installs.

To update EIM later:

sudo dnf upgrade eim

Manual download: use the EIM downloads page for RPM packages or portable Linux binaries.

Package manager (recommended) — Arch Linux, Manjaro, EndeavourOS, CachyOS, etc.

# 1. Import and locally sign the Espressif signing key (required once, before pacman -Syu)
curl -fsSL https://dl.espressif.com/dl/eim/eim.asc | sudo pacman-key --add -
sudo pacman-key --lsign-key 06E9A6C0325E124198C685F18B1F38BDC9383E1D

# 2. Add the EIM pacman repository to /etc/pacman.conf
sudo tee -a /etc/pacman.conf << 'EOF'
[eim]
SigLevel = Required DatabaseOptional TrustAll
Server = https://dl.espressif.com/dl/eim/pacman/$arch
EOF

# 3. Update package databases
sudo pacman -Syu

# 4. Install CLI only
sudo pacman -S eim-cli
# Or install GUI (includes CLI)
sudo pacman -S eim-gui

Important: Step 1 (key import) must be done before running pacman -Syu. Without it, pacman cannot verify the repository database and will refuse to sync. The key fingerprint is 06E9A6C0325E124198C685F18B1F38BDC9383E1D.

Note

The GUI package depends on gtk4, libadwaita, and webkit2gtk-4.1, which may require additional setup on some distributions.

To update EIM later:

sudo pacman -Syu

Manual download: use the EIM downloads page for Arch Linux packages or portable binaries.

After EIM finishes, you have CMake-based projects, Xtensa and RISC-V toolchains, and the same idf.py workflow on every supported OS.

IDEs and editors

Use the tools you already know. ESP-IDF is CMake-first, so any editor with solid CMake and C/C++ support works well. For the most integrated experience, start here:

  • Visual Studio Code — Official ESP-IDF extension: setup, flash, monitor, and SDK configuration from the editor
  • Eclipse — ESP-IDF plug-in for Eclipse users
  • CLion — Open the project as a CMake profile and use CLion’s navigation and debugging

To know more about: Documentation

Everything you need to go from “blink” to production:

AI-assisted development (MCP)

Connect ESP-IDF to assistants and automation through Model Context Protocol (MCP) servers:

  • ESP-IDF Tools Local MCP Server (ESP-IDF v6.0+) — Exposes your project to compatible assistants; run with eim run "idf.py mcp-server" (e.g. VS Code Copilot, Cursor)
  • Espressif Documentation MCP Server — Lets tools query current Espressif documentation, including ESP-IDF, for answers grounded in published docs

ESP Component Registry

Skip boilerplate and pull in maintained, versioned building blocks from the official ESP Component Registry—drivers, protocols, UI helpers, cloud connectors, and more. Add a dependency without vendoring entire trees:

idf.py add-dependency "namespace/component_name"

Browse the full catalog at components.espressif.com.

Published components
Registry downloads (all time)

Popular right now

A snapshot of widely used components from the registry:

Frameworks for specialized stacks

When your product needs more than “vanilla” firmware, these Espressif frameworks sit on top of ESP-IDF and accelerate common domains:

  • ESP-BROOKESIA — UI toolkit for HMIs and products with displays
  • ESP-DSP — Optimized digital signal processing for audio, control, and analytics on-chip
  • ESP-WHO — Vision pipeline building blocks for ESP32-class devices with a camera
  • ESP-Matter — Matter connectivity aligned with Espressif silicon and certification paths
  • ESP-Zigbee-SDK — Zigbee stack for IEEE 802.15.4–capable chips such as ESP32-C6 and ESP32-H2

Follow us on the community side

Join other ESP32 and ESP-IDF developers for questions, project showcases, and informal support:

Related

RED DA Compliance (Part 2): Espressif’s Platform Support, Templates, and Pathways for Conformity

·5 mins
Espressif is streamlining RED Delegated Act (RED-DA) compliance by providing pre-certified firmware platforms, documentation templates, and partner support to help developers meet the upcoming EN 18031 standard. With flexible pathways including self-declaration and third-party assessments, developers can accelerate EU market readiness for Aug 2025 and beyond.

Simple Boot explained

··6 mins
In this article, we explore a simplified ESP32 boot process using single-image binaries to speed up build and flash times — ideal for development workflows. This approach sacrifices features like OTA updates but enables faster iteration.

Lightweight MQTT Broker for ESP32: Mosquitto ported to ESP-IDF

Mosquitto – the industry-standard MQTT broker – has been ported to ESP-IDF. Its lightweight version retains Mosquitto’s core functionality and security features to run on resource-constrained IoT devices. This MQTT broker is ideal for edge computing, testing, and standalone IoT deployments. In this article, we will do an overview and show you how to get started.

ESP-IDF Tutorials: Soft-AP

·9 mins
This tutorial guides you through setting up a soft-AP using an Espressif module and ESP-IDF. It covers the process of creating a project, configuring Wi-Fi, and handling connection events through event loops. Upon completion, you’ll be able to establish a soft-AP and manage Wi-Fi connections. It is the first step to building more advanced networking applications.