idf-component-manager
Espressif IDF Component Manager
What it is and what it does
IDF Component Manager is a dependency resolver and downloader for ESP-IDF embedded projects. It reads `idf_component.yml` manifest files to identify component dependencies, resolves version constraints, and automatically downloads components from the ESP Component Registry or Git repositories into a `managed_components` directory during CMake configuration. The tool caches a `dependencies.lock` file to avoid re-downloading unchanged components on subsequent builds.
The package integrates directly into the ESP-IDF build pipeline and supports version constraints, optional dependencies, conditional inclusion rules, pre-release versions, local paths, and custom registries. It is intended for developers building firmware for Espressif chips (ESP32, ESP32-C3, etc.) who want to reuse and share modular components without manually managing versions.
Use it for:
- Manage multiple ESP-IDF component dependencies in a single project manifest without manual version tracking.
- Share reusable embedded components across projects via the ESP Component Registry or private Git repositories.
- Automatically resolve and download transitive dependencies during the build process to ensure reproducible firmware builds.
- Conditionally include components based on IDF version or target chip using manifest rules.
- Cache component metadata to reduce registry requests when building frequently on the same machine.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Automatically downloads and manages ESP-IDF component dependencies for embedded projects, resolving versions from the ESP Component Registry or Git repositories during the CMake build process.
Yes. This is the official Espressif dependency manager for ESP-IDF projects. It is actively maintained, has no known vulnerabilities, supports current Python versions, and is widely used (top 5000 PyPI packages). Install it if you are developing ESP-IDF firmware and want automated component dependency management; it is the standard tool for this workflow.
Install
idf-component-manager on PyPI
pip
pip install idf-component-manageruv
uv add idf-component-managerpoetry
poetry add idf-component-managerInstalling idf-component-manager
Before you install
Low install friction with a pure-Python wheel distribution. Actively maintained with a recent release (31 days ago) and current commits. Supports modern Python versions (3.10–3.14).
License in practice
Licensed under Apache-2.0 (permissive), allowing use in commercial and proprietary projects with minimal restrictions.
Quickstart
pip install idf-component-manager
# In your ESP-IDF project, create idf_component.yml:
# dependencies:
# component: "~2.0.0"
# username/component: ">=1.0.0"
# Then run: idf.py reconfigure
# Component Manager downloads dependencies to managed_components/
Requires ESP-IDF environment to be set up and active; CMake integration is automatic but only works within an ESP-IDF project structure.
Verify before relying
- Whether the tool works offline or requires network access to the ESP Component Registry for typical workflows.
- Performance characteristics when resolving large dependency graphs or working with many components.
Package facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (<4.0,>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 16 — psutil, rich, rich-click, esp-pylib, pyparsing, ruamel.yaml, requests, requests-file, requests-toolbelt, jsonref, pydantic, pydantic-core, pydantic-settings, pathvalidate, typing-extensions, truststore |
| Maintenance | actively maintained — 31 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,497,795/month — #3,832 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: idf_component_manager-3.1.0-py3-none-any.whl
Tags
More Build Tools packages
Provides reusable utilities for Python…
permissive · top 100 on PyPI
tqdmWraps any iterable to display a real-time…
copyleft · top 100 on PyPI
pippip is the standard installer for Python…
permissive · top 100 on PyPI
hatchlingHatchling is a standards-compliant Python build…
permissive · top 100 on PyPI
grpcio-toolsGenerates Python gRPC service stubs and message…
permissive · top 1,000 on PyPI
pre-commitpre-commit is a framework for installing and…
permissive · top 1,000 on PyPI
esp-idf-kconfigProvides kconfig language support and IDE…
permissive · top 5,000 on PyPI
esp-idf-monitorProvides serial communication monitoring and…
permissive · top 15,000 on PyPI
esp-idf-nvs-partition-genGenerates binary NVS (Non-Volatile Storage)…
permissive · top 15,000 on PyPI
idf-build-appsFinds and builds ESP-IDF and ESP8266 RTOS…
permissive · top 15,000 on PyPI
esp-idf-diagCollects ESP-IDF environment, system, and…
permissive · top 15,000 on PyPI
esp-idf-panic-decoderParses ESP-IDF panic handler output (registers…
permissive · top 15,000 on PyPI
esp-bool-parserParses and evaluates boolean expressions from…
permissive · top 15,000 on PyPI
esp-idf-sizeAnalyzes statically allocated RAM and binary…
permissive · top 5,000 on PyPI
conanConan is a decentralized, open-source package…
permissive · top 5,000 on PyPI
keboola.componentWraps the Keboola Common Interface to simplify…
permissive · top 15,000 on PyPI