LinuxCommandLibrary

pio-system

Manage and control PlatformIO system

TLDR

Install shell completion for the current shell (supports Bash, fish, Zsh and PowerShell)

$ pio system completion install
copy

Uninstall shell completion for the current shell
$ pio system completion uninstall
copy

Display system-wide PlatformIO information
$ pio system info
copy

Remove unused PlatformIO data
$ pio system prune
copy

Remove only cached data
$ pio system prune --cache
copy

List unused PlatformIO data that would be removed but do not actually remove it
$ pio system prune --dry-run
copy

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)

Copied to clipboard