Chapter 4. API Guides
4.27 Tools
4.27.1 Downloadable Tools
ESP-IDF build process relies on a number of tools: cross-compiler toolchains, CMake build system, and others.
Installing the tools using an OS-specific package manager (like apt, yum, brew, etc.) is the preferred method when the
required version of the tool is available. This recommendation is reflected in the Getting Started guide. For example,
on Linux and macOS it is recommended to install CMake using an OS package manager.
However, some of the tools are IDF-specific and are not available in OS package repositories. Furthermore, different
versions of ESP-IDF require different versions of the tools to operate correctly. To solve these two problems, ESP-
IDF provides a set of scripts for downloading and installing the correct versions of tools, and exposing them in the
environment.
The rest of the document refers to these downloadable tools simply as"tools" . Other kinds of tools used in ESP-IDF
are:
• Python scripts bundled with ESP-IDF (such as idf.py)
• Python packages installed from PyPI.
The following sections explain the installation method, and provide the list of tools installed on each platform.
Note: This document is provided for advanced users who need to customize their installation, users who wish to
understand the installation process, and ESP-IDF developers.
If you are looking for instructions on how to install the tools, see the
Tools metadata file
The list of tools and tool versions required for each platform is located in tools/tools.json. The schema of this file is
defined by tools/tools_schema.json.
This file is used by
tools/idf_tools.py
Tools installation directory
IDF_TOOLS_PATH environment variable specifies the location where the tools are to be downloaded and installed.
If not set, IDF_TOOLS_PATH defaults to HOME/.espressif on Linux and macOS, and %USER_PROFILE%\
.espressif on Windows.
Inside IDF_TOOLS_PATH, the scripts performing tools installation create the following directories:
• dist —where the archives of the tools are downloaded.
• tools —where the tools are extracted. The tools are extracted into subdirectories: tools/TOOL_NAME/
VERSION/. This arrangement allows different versions of tools to be installed side by side.
GitHub Assets Mirror
Most of the tools downloaded by the tools installer are GitHub Release Assets, which are files attached to a software
release on GitHub.
If GitHub downloads are inaccessible or slow to access, it's possible to configure a GitHub assets mirror.
To use Espressif's download server, set the environment variable IDF_GITHUB_ASSETS to dl.espressif.
com/github_assets. When the install process is downloading a tool from github.com, the URL will be
rewritten to use this server instead.
Espressif Systems
script when installing the tools or setting up the environment variables.
1464
Submit Document Feedback
Getting Started
Guide.
Release v4.4
Need help?
Do you have a question about the ESP32-S2 and is the answer not in the manual?