pio-system
Manage and control PlatformIO system
TLDR
Install shell completion for the current shell (supports Bash, fish, Zsh and PowerShell)
Uninstall shell completion for the current shell
Display system-wide PlatformIO information
Remove unused PlatformIO data
Remove only cached data
List unused PlatformIO data that would be removed but do not actually remove it
SYNOPSIS
pio system {subcommand} [subcommand_options]
PARAMETERS
info
Displays detailed system-wide information about PlatformIO Core, Python environment, OS, and installed packages.
completion
Manages shell tab-completion for the PlatformIO CLI. Can install or uninstall completion scripts.
prune
Removes unused or orphaned PlatformIO packages, tools, and frameworks from the global storage, optimizing disk space.
install
Ensures that all required system components for PlatformIO are installed and configured correctly.
update
Updates PlatformIO Core, installed development platforms, and tools to their latest versions.
uninstall
Uninstalls PlatformIO Core from the system. Use with caution as this permanently removes PIO Core.
repair
Attempts to repair common issues with the PlatformIO Core installation or its components.
DESCRIPTION
pio system is a vital subcommand within the PlatformIO (PIO) command-line interface, designed for comprehensive management of the PlatformIO ecosystem across your system. It serves as a central hub for maintaining the health, efficiency, and integrity of your PIO development environment. Through various sub-commands, pio system enables users to perform essential tasks such as inspecting detailed system information, installing or updating crucial dependencies, pruning unused development tools and packages to free up disk space, and configuring shell tab-completion for an improved user experience. It plays a critical role in diagnosing and resolving common PlatformIO-related issues, ensuring that all necessary components are correctly installed and up-to-date. This command empowers developers to efficiently manage their IoT development toolchain, from initial setup to ongoing maintenance, by providing centralized control over PlatformIO's foundational elements.
CAVEATS
The pio system command requires the PlatformIO CLI to be installed on your system.
Many of its subcommands necessitate active internet connectivity for downloading updates or installing new components.
Be extremely cautious when using the uninstall subcommand, as it permanently removes PlatformIO Core from your system.
Depending on your system's configuration and how PlatformIO was installed, some commands might require administrator or root privileges.
The exact set of available subcommands and their specific options may vary slightly with different versions of PlatformIO Core.
SUBCOMMAND SPECIFIC OPTIONS
Each subcommand within pio system offers its own specific options and arguments to fine-tune its behavior. To view these, you can append --help after the subcommand. For example, to see options for configuring shell completion, run pio system completion --help.
PLATFORMIO ECOSYSTEM MANAGEMENT
pio system is indispensable for managing the intricate web of dependencies, including compilers, upload tools, debuggers, and development frameworks, that PlatformIO seamlessly abstracts for a vast array of microcontrollers and development boards. It ensures a consistent and functional development environment across different projects.
HISTORY
PlatformIO began as an open-source project aimed at simplifying cross-platform embedded development. The pio system subcommand was introduced as part of the evolving PlatformIO CLI to provide users with direct control over the underlying components and infrastructure that PlatformIO relies upon. Its development paralleled the growth of the PlatformIO ecosystem, as the need for robust system management tools became apparent to handle diverse development platforms, frameworks, and toolchains. This command set helps maintain the portability and stability of PlatformIO across different operating systems, reflecting the project's commitment to a seamless developer experience for IoT and embedded systems.
SEE ALSO
pio(1)