idf-env tool helps set up and manage ESP-IDF installations

Related tags

System tools idf-env
Overview

idf-env

Tool for maintaining ESP-IDF environment.

Quick start

Install serial drivers for ESP boards on Windows. Execute following command in PowerShell:

Invoke-WebRequest 'https://dl.espressif.com/dl/idf-env/idf-env.exe' -OutFile .\idf-env.exe; .\idf-env.exe driver install --ftdi --silabs

Commands

Working with configuration

File stored in esp_idf.json

idf-env config get
idf-env config get --property gitPath
idf-env config get --property python --idf-path "C:/esp/"
idf-env config add --idf-version "v4.2" --idf-path "C:/esp/" --python "C:/python/python.exe"
idf-env config add --name idf --idf-version "v4.2" --idf-path "C:/esp/" --python "C:/python/python.exe"
idf-env config edit
idf-env config rm id

Working with installations of ESP-IDF

idf-env idf install
idf-env idf install --idf-version "master" --installer "G:\idf-installer\build\esp-idf-tools-setup-online-unsigned.exe"
idf-env idf uninstall
idf-env idf reset --path "G:\esp-idf"
idf-env idf shell
idf-env idf build

Working with Antivirus

idf-env antivirus get
idf-env antivirus get --property displayName
idf-env antivirus exclusion add --path "C:\....exe"
idf-env antivirus exclusion add --tool cmake
idf-env antivirus exclusion add --all
idf-env antivirus exclusion add --all --chunk 5
idf-env antivirus exclusion remove --path "C:\....exe"
idf-env antivirus exclusion remove --tool cmake
idf-env antivirus exclusion remove --all
idf-env antivirus exclusion list
idf-env antivirus exclusion manage

Working with drivers

idf-env driver get
idf-env driver get --property DeviceID
idf-env driver get --property DeviceID --missing

Run in elevated shell - requires Administrator privileges. Tools will request elevated privileges by UAC if necessary.

idf-env driver install --espressif --ftdi --silabs

Download drivers without installation:

idf-env driver download --espressif --ftdi --silabs

Web IDE Companion

idf-env companion start --port COM7

Launching shell

idf-env shell
Comments
  • 【Exit code: 0x2a】Requesting elevation of privileges for idf-env.exe antivirus exclusion add -a

    【Exit code: 0x2a】Requesting elevation of privileges for idf-env.exe antivirus exclusion add -a

    Hi espressif experts,

    I tried to improve the compilation speed and type in the following commands in the PowerShell, but it returned the Exit code: 0x2a. the details as below:

    PS F:\Tools\Espressif\IDF_Tools\.espressif> .\idf-env.exe antivirus exclusion add -a
    Requesting elevation of privileges for: F:\Tools\Espressif\IDF_Tools\.espressif\idf-env.exe antivirus exclusion add -a
    Exit code: 0x2a
    

    could you give me a hand?

    thanks.

    opened by xiaolongba 8
  • Feature/rust linux

    Feature/rust linux

    • Rust toolchain version updated to 1.63.0.2
    • Added VsCode and GH Codespaces devcontainer support
    • Added CI that runs in Linux, Windows and MacOs and:
      • Builds idf-env
      • Runs format check
      • Runs tests
      • Runs clippy check
    • Updated CI for generating artifacts when creating releases
    • Format all the files
    • Remove warnings for all platforms
    • Remove clippy warnings and errors for all platforms
    • Use &str instead of String for functions arguments when possible
    • Add support for installing esp-idf with idf-env idf install with the following usage:
      idf-env idf install [FLAGS] [OPTIONS]
      
      FLAGS:
          -h, --help        Prints help information
          -m, --minified    Deletes some ESP-IDF folders to save space.
      
      OPTIONS:
          -p, --path <path>          ESP-IDF installation directory
          -t, --target <target>      Comma or space separated list of targets [esp32,esp32s2,esp32s3,esp32c3,all]. [default:
                                     esp32,esp32s2,esp32s3]
          -v, --version <version>    ESP-IDF version [default: release/v4.4]
      
      • The installation of esp-idf has been tested on MacOs and Linux, but further testing on Windows is required to verify that is working or make the proper fix in case it does not work.
    opened by SergioGasquez 2
  • tools: add support for config retrieval by idf-id

    tools: add support for config retrieval by idf-id

    Add support to retrieve information about installed ESP-IDF property based on IDF ID. Syntax:

    idf-env config get --property python --idf-id esp-idf-618cf3b908db7b2ed74540bde5ba6605
    

    This should be more reliable alternative to filter by idf-path.

    This feature is necessary to solve:

    • https://github.com/espressif/idf-installer/issues/31
    • https://github.com/espressif/idf-installer/issues/29
    opened by georgik 1
  • idf-path is sensitive to trailing \

    idf-path is sensitive to trailing \

    MD5 hash is by default generated from idf-path. This mechanism is problematic, because it does not allow relocation of idf. Also in case of missing trailing backslash the cmd/PowerShell initializer is not able to identify correct env.

    opened by georgik 1
  • Feature/windows terminal launcher

    Feature/windows terminal launcher

    New command which allows to register launcher for Windows terminal. The registration is done via Windows Terminal Fragment JSON located in user's AppData. The launcher assumes presence of ESP-IDF initializer for PowerShell.

    opened by georgik 0
  • idf-env does not handle correctly zero or more than one antivirus

    idf-env does not handle correctly zero or more than one antivirus

    Command: idf-env antivirus get

    1. Incorrect behavior in case of 0 antivirus (e.g. in Windows Core container). Result: Crash
    2. More than one registered antivirus product will results in concatenated list. Expected behavior: print only active antivirus software.
    opened by georgik 0
  • Wrong description for 'driver' and 'shell'

    Wrong description for 'driver' and 'shell'

    descriptions for driver and shell are same as antivirus sub-command and it is confusing.

    PS C:\bin\Espressif> .\idf-env.exe --help
    idf-env 1.2.28
    Espressif Systems - https://www.espressif.com
    Tool for maintaining ESP-IDF environment on computer.
    
    USAGE:
        idf-env.exe [SUBCOMMAND]
    
    FLAGS:
        -h, --help       Prints help information
        -V, --version    Prints version information
    
    SUBCOMMANDS:
        antivirus      Detection of Antivirus and handling exception registration.
        certificate    Manage HTTPS certificates
        companion      ESP-IDF Desktop Web Companion for flashing and monitoring device from Web IDE.
        config         Maintain configuration of ESP-IDF installations.
        driver         Detection of Antivirus and handling exception registration.  
        help           Prints this message or the help of the given subcommand(s)
        ide            Maintain Espressif-IDE.
        idf            Maintain configuration of ESP-IDF installations.
        launcher       Manage ESP-IDF launchers.
        rust           Maintain Rust environment for Xtensa.
        shell          Detection of Antivirus and handling exception registration. 
        toit           Toit environment.
    
    opened by 7aman 0
  • Installation of driver under non-admin user - may switch to different location when accounts have different path

    Installation of driver under non-admin user - may switch to different location when accounts have different path

    Scenario: Windows with a non-admin user tries to install a driver. The user is prompted to elevate privileges, which leads to switching to a different account. The path to the driver is then taken from the admin account instead of the user's one. The installation fails if the version is not the same because the .inf file is stored in the .espressif directory under non-admin users.

    opened by georgik 0
  • Documentation request

    Documentation request

    Hi, Could someone please add a bit more information to the readme.md ? Specifically, when I type: idf-env config get --property python --idf-path %IDF_PATH%
    where exactly is idf-env getting the requested property information from ? Thanks

    opened by jmporter34 2
  • Feature request: idf-env tool for linux

    Feature request: idf-env tool for linux

    Will idf-env supported in other OS like Linux?

    Make IDF install as easy as idf-env idf install --idf-version master --chip esp32s2 will greatly simplifies the IDF setup process

    opened by leeebo 0
Releases(v1.2.30)
Owner
Espressif Systems
Espressif Systems
:stars: Manage your shell commands.

Pueue Pueue is a command-line task management tool for sequential and parallel execution of long-running tasks. Simply put, it's a tool that processes

Arne Beer 3.3k Jan 8, 2023
A tool to simplify reprovisioning a fresh OS. Installs packages and manages dotfiles.

[[TOC]] Comtrya This is better, yes? Warning This tool is ridiculously early in its development. I'm building out features as I migrate my dotfiles ov

David McKay 2 Dec 29, 2022
A tool to simplify reprovisioning a fresh OS. Installs packages and manages dotfiles.

Comtrya This is better, yes? Warning This tool is ridiculously early in its development. I'm building out features as I migrate my dotfiles over. Thos

Comtrya 272 Jan 7, 2023
It is a backup tool that creates backups and stores them on an object storage

Hold My Backup It is a backup tool that creates backups and stores them on an object storage. By default it uses minio but you can use AWS: S3 as well

Taylan Dogan 13 Feb 17, 2022
Terminal bandwidth utilization tool

bandwhich This is a CLI utility for displaying current network utilization by process, connection and remote IP/hostname How does it work? bandwhich s

Aram Drevekenin 7.5k Dec 31, 2022
Everyday-use client-side map-aware Arch Linux mirror ranking tool

Rate Arch Mirrors This is a tool, which fetches mirrors, skips outdated/syncing Arch Linux mirrors, then uses info about submarine cables and internet

Nikita Almakov 196 Jan 2, 2023
Another tool you didn't know you want

colorful-uname Another tool you didn't know you want Examples: Default operation: "All" operation: Help message: Building and installation: Build proc

S0ra 4 Oct 5, 2022
A tool for quickly switching between different file configurations, using symbolic links.

config-loader A tool for quickly switching between different file configurations, using symbolic links. Usage To use it, download the latest release f

Zacchary Dempsey-Plante 3 Aug 22, 2022
A simple rust-based tool for fetching system information

?? azf a simple rust-based tool for fetching system information you need a patched nerd font and the material design icons font ?? compiling you can c

Pedro Henrique 3 Dec 17, 2022
A simple and fast download accelerator, written in Rust

zou A simple and fast download accelerator, written in Rust Zou is a Snatch fork by @k0pernicus. Snatch is a fast and interruptable download accelerat

Antonin Carette 173 Dec 4, 2022
GTK application for browsing and installing fonts from Google's font archive

Font Finder This project is a from-scratch implementation of TypeCatcher in Rust. It is a GTK3 application for browsing through and installing fonts f

Michael Murphy 252 Dec 26, 2022
Linux Kernel Manager and Activity Monitor 🐧💻

Linux Kernel Manager and Activity Monitor ?? ?? The kernel is the part of the operating system that facilitates interactions between hardware and soft

Orhun Parmaksız 1.7k Jan 5, 2023
A project for automatically generating and maintaining Debian repositories from a TOML spec.

Debian Repository Builder A simple utility for constructing and maintaining Debian repositories. Configuration of a repo is based on the directory hie

Pop!_OS 52 Feb 7, 2022
Utility that takes logs from anywhere and sends them to Telegram.

logram Utility that takes logs from anywhere and sends them to Telegram. Supports log collection from files, journald and docker containers. More abou

Max Eliseev 85 Dec 22, 2022
A safe and ergonomic alternative to rm

rip (Rm ImProved) rip is a command-line deletion tool focused on safety, ergonomics, and performance. It favors a simple interface, and does not imple

Kevin Liu 781 Jan 7, 2023
A simple, fast and user-friendly alternative to 'find'

fd [中文] [한국어] fd is a program to find entries in your filesytem. It is a simple, fast and user-friendly alternative to find. While it does not aim to

David Peter 25.8k Dec 30, 2022
Untrusted IPC with maximum performance and minimum latency. On Rust, on Linux.

Untrusted IPC with maximum performance and minimum latency. On Rust, on Linux. When is this Rust crate useful? Performance or latency is crucial, and

null 72 Jan 3, 2023
CLI utility to move (or rename) your files to a new location and redirect all of its symbolic links, to the new path

Move Links CLI utility to move (or rename) your files to a new location and redirect all of its symbolic links, to the new path (or name). Usage execu

Ben Mefteh 18 May 22, 2022
Parallel finance a decentralized lending protocol built on top of the Polkadot ecosystem. Our unique approach will allow users to earn "double interests" from staking and lending their tokens simultaneously.

Parallel Finance A new Cumulus-based Substrate node, ready for hacking ?? Getting Started Follow these steps to get started with the Cumulus Template

parallel-finance 100 Dec 17, 2022