LinuxCommandLibrary

pio-settings

Manage PlatformIO settings

TLDR

Display the names, values, and descriptions of all PlatformIO settings

$ pio settings get
copy

Display the name, value, and description of a specific PlatformIO setting
$ pio settings get [setting]
copy

Set a specific setting value
$ pio settings set [setting] [value]
copy

Reset the values of all modified settings to their factory defaults
$ pio settings reset
copy

SYNOPSIS

pio settings {get|list|set} [KEY[=<VALUE>]] [OPTIONS]

PARAMETERS

get <KEY>
    Retrieve and display the value of a specific setting

list
    List all current settings with their values

set <KEY> <VALUE>
    Assign a new value to the specified setting

--storage-dir <DIR>
    Custom PlatformIO storage directory (default: ~/.platformio)

--verbose
    Enable detailed verbose output

-h, --help
    Show command help and exit

DESCRIPTION

pio settings is a subcommand of the PlatformIO CLI tool for configuring global settings in PlatformIO, an open-source ecosystem for IoT and embedded development. It enables users to list, get, or set key-value pairs that control PlatformIO's behavior across projects, such as telemetry, cache directories, update checks, and default protocols.

Settings are persisted in a JSON file within the PlatformIO storage directory (default: ~/.platformio). This command is crucial for customizing the environment, optimizing performance, or troubleshooting issues without modifying project-specific platformio.ini files. For instance, disable telemetry with pio settings set enable_telemetry no or check current values with pio settings list.

Changes typically take effect immediately for CLI usage but may require restarting the PlatformIO IDE extension in VSCode for full propagation. It's designed for both novice and advanced users to tailor PlatformIO to specific workflows or hardware setups.

CAVEATS

Settings are global and affect all projects; IDE restart may be needed for changes to propagate. Not all settings support every data type (bool, string, int).

KEY SETTINGS EXAMPLES

enable_telemetry: yes/no (anonymized usage stats)
default_tasks_dir: path (CI/CD tasks)
upload_protocol: custom uploader
check_internet: yes/no (network checks)

HISTORY

Part of PlatformIO Core since v2.0 (2015); evolved with settings like telemetry in v3.x for privacy controls.

SEE ALSO

pio(1), pio run(1), pio upgrade(1)

Copied to clipboard