The Expressif CLI targets .NET 10 and requires a matching Microsoft.NETCore.App 10.x runtime with the same architecture as the selected distribution.

Install as a .NET global tool

The global tool is the simplest cross-platform option when the .NET SDK is already installed.

dotnet tool install --global Expressif-cli
expressif version

Expressif-cli is the package identifier. The installed command is expressif.

To install a specific version, update it, or remove it:

dotnet tool install --global Expressif-cli --version <version>
dotnet tool update --global Expressif-cli
dotnet tool uninstall --global Expressif-cli

Open a new terminal if the command is not immediately available after installation.

Install on Windows

Download the installer for the machine architecture from the Expressif releases page. Installer filenames follow this pattern:

expressif-<version>-net10.0-<runtime>-setup.exe

For example:

expressif-1.32.0-net10.0-win-x64-setup.exe

The installer places the executable under Program Files, adds it to the system PATH, and checks for the required .NET runtime. Remove it from Settings > Apps > Installed apps.

Use a portable archive

Portable archives are useful for pinned, isolated, or manually managed deployments.

Choose the archive that matches the platform:

Platform Runtime identifier Format
Windows x64 win-x64 .zip
Windows Arm64 win-arm64 .zip
Linux x64 linux-x64 .tar.gz
Alpine Linux x64 linux-musl-x64 .tar.gz

On Windows with PowerShell:

Expand-Archive `
  -LiteralPath .\expressif-<version>-net10.0-win-x64.zip `
  -DestinationPath "$env:LOCALAPPDATA\Expressif"

& "$env:LOCALAPPDATA\Expressif\expressif.exe" version

On Linux:

mkdir -p "$HOME/.local/share/expressif"
tar -xzf expressif-<version>-net10.0-linux-x64.tar.gz \
  -C "$HOME/.local/share/expressif"
chmod +x "$HOME/.local/share/expressif/expressif"

Add the extraction directory to PATH, or create a symbolic link in a directory already on PATH. For Alpine Linux, use the linux-musl-x64 archive.

Verify the installation

expressif version
expressif --help
expressif evaluate --help

expressif version prints both the CLI version and the Expressif library version. Include both lines when reporting an issue because the versions can differ.

Troubleshooting

If expressif is not found, open a new terminal and inspect command resolution:

Get-Command expressif -All
command -v -a expressif

For a .NET global tool, verify that the user tool directory is on PATH: %USERPROFILE%\.dotnet\tools on Windows or $HOME/.dotnet/tools on Linux.

If the runtime is missing, inspect the installed runtimes:

dotnet --list-runtimes

Install Microsoft.NETCore.App 10.x for the executable architecture. The ASP.NET Core or Windows Desktop runtime alone is not a substitute.


This site uses Just the Docs, a documentation theme for Jekyll.