pio-update
Update the PlatformIO core and packages
TLDR
Perform a full update of all packages, development platforms, and global libraries
Update core packages only (skips platforms and libraries)
Check for new versions of packages, platforms, and libraries but do not actually update them
SYNOPSIS
pio update [OPTIONS]
PARAMETERS
--force, -f
Force update packages, ignoring platform compatibility checks.
--dry-run, -n
Simulate updates without downloading or installing anything.
-v, --verbose
Enable verbose output for detailed progress.
--help
Show command help and exit.
--version
Show version and exit.
DESCRIPTION
The pio update command is part of the PlatformIO CLI, a popular cross-platform build system for embedded development. It updates all installed development platforms, libraries, and toolchain binaries to their latest compatible versions. This ensures developers have access to the newest features, bug fixes, and hardware support without manual intervention.
PlatformIO manages dependencies across multiple IDEs like VSCode, Vim, and CLion, making pio update essential for keeping projects current. It checks the PlatformIO registry for updates and downloads only what's needed, respecting semantic versioning to avoid breaking changes. Run it periodically in CI/CD pipelines or after adding new boards/libraries.
Unlike pio upgrade, which targets the core installer, pio update focuses on project-specific packages. It's safe by default but offers flags for advanced control.
CAVEATS
Requires internet access; use --force cautiously as it may introduce incompatibilities. Not for updating PlatformIO Core (use pio upgrade).
EXAMPLE USAGE
pio update --dry-run
pio update --force
EXIT CODES
0: Success
1: Update failed or no updates available.
HISTORY
Introduced in early PlatformIO versions around 2015 as part of core package management. Evolved with PlatformIO 4.x+ to support better dependency resolution and registry integration.
SEE ALSO
pio upgrade(1), pio platform update(1), pip install --upgrade(1)


