Forrest logo
tool overview
On this page you find all important commands for the CLI tool pio. If the command you are looking for is missing please ask our AI.

pio

PIO (PlatformIO) is a powerful and flexible command line tool designed for IoT (Internet of Things) development. It provides a unified ecosystem for building, debugging, and deploying firmware for various hardware platforms such as Arduino, ESP8266, ESP32, and more.

With PIO, developers can easily manage libraries, platforms, and projects directly from the command line interface. It supports multiple programming languages including C, C++, and Python.

PIO offers a wealth of features such as dependency management, version control integration, and project scaffolding. It incorporates a powerful build system that automatically resolves library dependencies and generates firmware binaries for easy deployment.

One important aspect of PIO is its support for different development platforms, including a wide range of hardware boards and development environments like Arduino IDE and Visual Studio Code. This allows developers to choose the tools they are already familiar with while benefiting from the advanced features provided by PIO.

PIO also provides seamless integration with popular code editors, enabling features like code completion, linting, and documentation lookup. It also offers comprehensive debugging capabilities through debuggers such as JTAG and GDB.

Furthermore, PIO has a vibrant and active community, with excellent documentation and a rich library registry. This enables developers to easily find and incorporate pre-built libraries into their projects.

In summary, PIO is a versatile command line tool that simplifies IoT firmware development by providing a unified ecosystem, supporting multiple hardware platforms and programming languages, integrating with various development environments, and offering powerful features for building, debugging, and deploying firmware.

List of commands for pio:

  • pio-access:tldr:27a15 pio-access: Remove a user's access to a resource.
    $ pio access revoke ${username} ${resource_urn}
    try on your machine
    explain this command
  • pio-access:tldr:76502 pio-access: Restrict access to a resource to specific users or team members.
    $ pio access private ${resource_urn}
    try on your machine
    explain this command
  • pio-access:tldr:bcc0b pio-access: Grant a user access to a resource.
    $ pio access grant ${select} ${username} ${resource_urn}
    try on your machine
    explain this command
  • pio-access:tldr:ca4ec pio-access: Allow all users access to a resource.
    $ pio access public ${resource_urn}
    try on your machine
    explain this command
  • pio-access:tldr:f96d6 pio-access: Show all resources that a user or team has access to and the access level.
    $ pio access list ${username}
    try on your machine
    explain this command
  • pio-account:tldr:2e0ff pio-account: Update your PlatformIO profile.
    $ pio account update --username ${username} --email ${email} --firstname ${firstname} --lastname ${lastname} --current-password ${password}
    try on your machine
    explain this command
  • pio-account:tldr:4869f pio-account: Reset your password using your username or email.
    $ pio account forgot --username ${username_or_email}
    try on your machine
    explain this command
  • pio-account:tldr:4dd0c pio-account: Log out of your PlatformIO account.
    $ pio account logout
    try on your machine
    explain this command
  • pio-account:tldr:538d8 pio-account: Register a new PlatformIO account.
    $ pio account register --username ${username} --email ${email} --password ${password} --firstname ${firstname} --lastname ${lastname}
    try on your machine
    explain this command
  • pio-account:tldr:70ff0 pio-account: Log in to your PlatformIO account.
    $ pio account login --username ${username} --password ${password}
    try on your machine
    explain this command
  • pio-account:tldr:7dcb6 pio-account: Permanently delete your PlatformIO account and related data.
    $ pio account destroy
    try on your machine
    explain this command
  • pio-account:tldr:b2f88 pio-account: Show detailed information about your PlatformIO account.
    $ pio account show
    try on your machine
    explain this command
  • pio-boards:tldr:319be pio-boards: List all available boards.
    $ pio boards
    try on your machine
    explain this command
  • pio-boards:tldr:dfbb2 pio-boards: List only boards from installed platforms.
    $ pio boards --installed
    try on your machine
    explain this command
  • pio-check:tldr:54724 pio-check: Perform a basic analysis check on the current project.
    $ pio check
    try on your machine
    explain this command
  • pio-check:tldr:5e827 pio-check: Perform an analysis check and only report a specified defect severity type.
    $ pio check --severity ${select}
    try on your machine
    explain this command
  • pio-check:tldr:a484d pio-check: Perform an analysis check and show detailed information when processing environments.
    $ pio check --verbose
    try on your machine
    explain this command
  • pio-check:tldr:e31aa pio-check: Perform a basic analysis check on a specific project.
    $ pio check --project-dir ${project_dir}
    try on your machine
    explain this command
  • pio-check:tldr:f6b44 pio-check: Perform an analysis check for a specific environment.
    $ pio check --environment ${environment}
    try on your machine
    explain this command
  • pio-ci:tldr:20cc7 pio-ci: Build a PlatformIO project using a specific configuration file.
    $ pio ci --project-conf ${path-to-platformio-ini}
    try on your machine
    explain this command
  • pio-ci:tldr:2bb8b pio-ci: Build a PlatformIO project and specify a specific board (`pio boards` lists all of them).
    $ pio ci --board ${board} ${path-to-project}
    try on your machine
    explain this command
  • pio-ci:tldr:7768f pio-ci: Build a PlatformIO project and specify specific libraries.
    $ pio ci --lib ${path-to-library_directory} ${path-to-project}
    try on your machine
    explain this command
  • pio-ci:tldr:99f11 pio-ci: Build a PlatformIO project in a specific directory.
    $ pio ci --build-dir ${path-to-build_directory} ${path-to-project}
    try on your machine
    explain this command
  • pio-ci:tldr:b6eb2 pio-ci: Build a PlatformIO project in the default system temporary directory and delete it afterwards.
    $ pio ci ${path-to-project}
    try on your machine
    explain this command
  • pio-ci:tldr:c3ef4 pio-ci: Build a PlatformIO project and don't delete the build directory.
    $ pio ci --keep-build-dir ${path-to-project}
    try on your machine
    explain this command
  • pio-debug:tldr:0244e pio-debug: Debug a PlatformIO project using the `gdb` debugger.
    $ pio debug --interface=${gdb} ${gdb_options}
    try on your machine
    explain this command
  • pio-debug:tldr:1e0ca pio-debug: Debug a PlatformIO project using a specific configuration file.
    $ pio debug --project-conf ${path-to-platformio-ini}
    try on your machine
    explain this command
  • pio-debug:tldr:868a9 pio-debug: Debug a specific PlatformIO project.
    $ pio debug --project-dir ${path-to-platformio_project}
    try on your machine
    explain this command
  • pio-debug:tldr:b9a41 pio-debug: Debug the PlatformIO project in the current directory.
    $ pio debug
    try on your machine
    explain this command
  • pio-debug:tldr:c5865 pio-debug: Debug a specific environment.
    $ pio debug --environment ${environment}
    try on your machine
    explain this command
  • pio-device:tldr:1def8 pio-device: Start an interactive device monitor and listen to a specific port.
    $ pio device monitor --port ${-dev-ttyUSBX}
    try on your machine
    explain this command
  • pio-device:tldr:3838a pio-device: Start an interactive device monitor and set a specific baud rate (defaults to 9600).
    $ pio device monitor --baud ${57600}
    try on your machine
    explain this command
  • pio-device:tldr:3ecc5 pio-device: List all available logical devices.
    $ pio device list --logical
    try on your machine
    explain this command
  • pio-device:tldr:5d9e6 pio-device: Start an interactive device monitor.
    $ pio device monitor
    try on your machine
    explain this command
  • pio-device:tldr:702e7 pio-device: List all available serial ports.
    $ pio device list
    try on your machine
    explain this command
  • pio-device:tldr:8cfb8 pio-device: Start an interactive device monitor and set a specific EOL character (defaults to `CRLF`).
    $ pio device monitor --eol ${select}
    try on your machine
    explain this command
  • pio-home:tldr:3f406 pio-home: Specify a unique session identifier to keep PlatformIO Home isolated from other instances and protected from 3rd party access.
    $ pio home --session-id ${id}
    try on your machine
    explain this command
  • pio-home:tldr:42427 pio-home: Automatically shutdown the server on timeout (in seconds) when no clients are connected.
    $ pio home --shutdown-timeout ${time}
    try on your machine
    explain this command
  • pio-home:tldr:6f7af pio-home: Bind to a specific IP address (defaults to 127.0.0.1).
    $ pio home --host ${ip_address}
    try on your machine
    explain this command
  • pio-home:tldr:8a62a pio-home: Do not automatically open PlatformIO Home in the default web browser.
    $ pio home --no-open
    try on your machine
    explain this command
  • pio-home:tldr:b77fc pio-home: Use a specific HTTP port (defaults to 8008).
    $ pio home --port ${port}
    try on your machine
    explain this command
  • pio-home:tldr:e688a pio-home: Open PlatformIO Home in the default web browser.
    $ pio home
    try on your machine
    explain this command
  • pio-lib:tldr:10a6a pio-lib: List installed libraries.
    $ pio lib list
    try on your machine
    explain this command
  • pio-lib:tldr:249df pio-lib: Uninstall a library.
    $ pio lib uninstall ${library}
    try on your machine
    explain this command
  • pio-lib:tldr:6b539 pio-lib: Install a library.
    $ pio lib install ${library}
    try on your machine
    explain this command
  • pio-lib:tldr:7d0cb pio-lib: Update installed libraries.
    $ pio lib update
    try on your machine
    explain this command
  • pio-lib:tldr:85f2d pio-lib: Show PlatformIO library registry statistics.
    $ pio lib stats
    try on your machine
    explain this command
  • pio-lib:tldr:9be30 pio-lib: Show details about a library.
    $ pio lib show ${library}
    try on your machine
    explain this command
  • pio-lib:tldr:ab9a5 pio-lib: Search for existing libraries.
    $ pio lib search ${keyword}
    try on your machine
    explain this command
  • pio-lib:tldr:ea209 pio-lib: List built-in libraries based on installed development platforms and their frameworks.
    $ pio lib builtin
    try on your machine
    explain this command
  • pio-org:tldr:0d5fa pio-org: Add a user to an organization.
    $ pio org add ${organization_name} ${username}
    try on your machine
    explain this command
  • pio-org:tldr:26d78 pio-org: List all organizations the current user is a member of and their owners.
    $ pio org list
    try on your machine
    explain this command
  • pio-org:tldr:2c3b4 pio-org: Update the name, email or display name of an organization.
    $ pio org update --orgname ${new_organization_name} --email ${new_email} --displayname ${new_display_name} ${organization_name}
    try on your machine
    explain this command
  • pio-org:tldr:4b25c pio-org: Remove a user from an organization.
    $ pio org remove ${organization_name} ${username}
    try on your machine
    explain this command
  • pio-org:tldr:961ab pio-org: Delete an organization.
    $ pio org destroy ${organization_name}
    try on your machine
    explain this command
  • pio-org:tldr:dce94 pio-org: Create a new organization.
    $ pio org create ${organization_name}
    try on your machine
    explain this command
  • pio-package:tldr:1a677 pio-package: Publish the current directory and restrict public access to it.
    $ pio package publish --private
    try on your machine
    explain this command
  • pio-package:tldr:76ac2 pio-package: Remove a specific version of a published package from the registry.
    $ pio package unpublish ${package_name}@${version}
    try on your machine
    explain this command
  • pio-package:tldr:ab122 pio-package: Undo the removal, putting all versions or a specific version of the package back into the registry.
    $ pio package unpublish --undo ${package_name}@${version}
    try on your machine
    explain this command
  • pio-package:tldr:b4b85 pio-package: Create a package tarball from the current directory.
    $ pio package pack --output ${path-to-package-tar-gz}
    try on your machine
    explain this command
  • pio-package:tldr:b92c4 pio-package: Publish a package.
    $ pio package publish ${path-to-package-tar-gz}
    try on your machine
    explain this command
  • pio-package:tldr:bf7b2 pio-package: Remove all versions of a published package from the registry.
    $ pio package unpublish ${package_name}
    try on your machine
    explain this command
  • pio-package:tldr:c3e4f pio-package: Create and publish a package tarball from the current directory.
    $ pio package publish
    try on your machine
    explain this command
  • pio-package:tldr:c5588 pio-package: Publish a package with a custom release date (UTC).
    $ pio package publish ${path-to-package-tar-gz} --released-at "${2021-04-08 21:15:38}"
    try on your machine
    explain this command
  • pio-platform:tldr:1e340 pio-platform: Search for existing development platforms.
    $ pio platform search ${platform}
    try on your machine
    explain this command
  • pio-platform:tldr:24465 pio-platform: Uninstall a development platform.
    $ pio platform uninstall ${platform}
    try on your machine
    explain this command
  • pio-platform:tldr:44ad3 pio-platform: Show details about a development platform.
    $ pio platform show ${platform}
    try on your machine
    explain this command
  • pio-platform:tldr:63831 pio-platform: Install a development platform.
    $ pio platform install ${platform}
    try on your machine
    explain this command
  • pio-platform:tldr:a0ab1 pio-platform: Update installed development platforms.
    $ pio platform update
    try on your machine
    explain this command
  • pio-platform:tldr:a39d6 pio-platform: List all installed development platforms.
    $ pio platform list
    try on your machine
    explain this command
  • pio-platform:tldr:b5db4 pio-platform: List all supported frameworks.
    $ pio platform frameworks
    try on your machine
    explain this command
  • pio-project:tldr:0f28a pio-project: Initialize a new PlatformIO based project, specifying one or more project options.
    $ pio project init --project-option="${option}=${value}" --project-option="${option}=${value}"
    try on your machine
    explain this command
  • pio-project:tldr:1a944 pio-project: Initialize a new PlatformIO project in a specific directory.
    $ pio project init --project-dir ${path-to-project_directory}
    try on your machine
    explain this command
  • pio-project:tldr:3d7f4 pio-project: Initialize a new PlatformIO project, specifying a board ID.
    $ pio project init --board ${select}
    try on your machine
    explain this command
  • pio-project:tldr:57e72 pio-project: Print the configuration of a project.
    $ pio project config
    try on your machine
    explain this command
  • pio-project:tldr:f97f5 pio-project: Initialize a new PlatformIO project.
    $ pio project init
    try on your machine
    explain this command
  • pio-remote:tldr:03292 pio-remote: List all active Remote Agents.
    $ pio remote agent list
    try on your machine
    explain this command
  • pio-remote:tldr:6e561 pio-remote: Start a new Remote Agent with a specific name and share it with friends.
    $ pio remote agent start --name ${agent_name} --share ${example1@example-com} --share ${example2@example-com}
    try on your machine
    explain this command
  • pio-remote:tldr:70b98 pio-remote: Run all targets on a specified Agent.
    $ pio remote --agent ${agent_name} run
    try on your machine
    explain this command
  • pio-remote:tldr:8f874 pio-remote: Update installed core packages, development platforms and global libraries on a specific Agent.
    $ pio remote --agent ${agent_name} update
    try on your machine
    explain this command
  • pio-remote:tldr:9a98d pio-remote: Run all tests in all environments on a specific Agent.
    $ pio remote --agent ${agent_name} test
    try on your machine
    explain this command
  • pio-remote:tldr:a42e0 pio-remote: List devices from specified Agents (omit `--agent` to specify all Agents).
    $ pio remote --agent ${agent_name1} --agent ${agent_name2} device list
    try on your machine
    explain this command
  • pio-remote:tldr:ffb95 pio-remote: Connect to the serial port of a remote device.
    $ pio remote --agent ${agent_name} device monitor
    try on your machine
    explain this command
  • pio-run:tldr:647a9 pio-run: Run the targets of a specified configuration file.
    $ pio run --project-conf ${path-to-platformio-ini}
    try on your machine
    explain this command
  • pio-run:tldr:74663 pio-run: Run all targets of specified environments.
    $ pio run --environment ${environment1} --environment ${environment2}
    try on your machine
    explain this command
  • pio-run:tldr:7923e pio-run: Run specified targets.
    $ pio run --target ${target1} --target ${target2}
    try on your machine
    explain this command
  • pio-run:tldr:d5982 pio-run: Run all targets.
    $ pio run
    try on your machine
    explain this command
  • pio-run:tldr:daed6 pio-run: List all available project targets.
    $ pio run --list-targets
    try on your machine
    explain this command
  • pio-run:tldr:f5356 pio-run: List all available project targets of a specific environment.
    $ pio run --list-targets --environment ${environment}
    try on your machine
    explain this command
  • pio-settings:tldr:33f78 pio-settings: Reset the values of all modified settings to their factory defaults.
    $ pio settings reset
    try on your machine
    explain this command
  • pio-settings:tldr:4f5e5 pio-settings: Display the names, values and descriptions of all PlatformIO settings.
    $ pio settings get
    try on your machine
    explain this command
  • pio-settings:tldr:b9656 pio-settings: Set a specific setting value.
    $ pio settings set ${setting} ${value}
    try on your machine
    explain this command
  • pio-settings:tldr:e955f pio-settings: Display the name, value and description of a specific PlatformIO setting.
    $ pio settings get ${setting}
    try on your machine
    explain this command
  • pio-system:tldr:01595 pio-system: Remove unused PlatformIO data.
    $ pio system prune
    try on your machine
    explain this command
  • pio-system:tldr:24664 pio-system: Install shell completion for the current shell (supports Bash, Fish, Zsh and PowerShell).
    $ pio system completion install
    try on your machine
    explain this command
  • pio-system:tldr:274d7 pio-system: List unused PlatformIO data that would be removed but do not actually remove it.
    $ pio system prune --dry-run
    try on your machine
    explain this command
  • pio-system:tldr:5b29b pio-system: Remove only cached data.
    $ pio system prune --cache
    try on your machine
    explain this command
  • pio-system:tldr:70455 pio-system: Uninstall shell completion for the current shell.
    $ pio system completion uninstall
    try on your machine
    explain this command
  • pio-system:tldr:f9bca pio-system: Display system-wide PlatformIO information.
    $ pio system info
    try on your machine
    explain this command
  • pio-team:tldr:26d5d pio-team: List all teams in an organization.
    $ pio team list ${organization_name}
    try on your machine
    explain this command
  • pio-team:tldr:4bbdc pio-team: Remove a user from a team.
    $ pio team remove ${organization_name}:${team_name} ${username}
    try on your machine
    explain this command
  • pio-team:tldr:6d84a pio-team: List all teams that the user is part of and their members.
    $ pio team list
    try on your machine
    explain this command
  • pio-team:tldr:97fff pio-team: Create a new team with the specified description.
    $ pio team create --description ${description} ${organization_name}:${team_name}
    try on your machine
    explain this command
  • pio-team:tldr:e4882 pio-team: Delete a team.
    $ pio team destroy ${organization_name}:${team_name}
    try on your machine
    explain this command
  • pio-team:tldr:ea7eb pio-team: Add a new user to a team.
    $ pio team add ${organization_name}:${team_name} ${username}
    try on your machine
    explain this command
  • pio-team:tldr:f1c68 pio-team: Change the description of a team.
    $ pio team update --description ${new_description} ${organization_name}:${team_name}
    try on your machine
    explain this command
  • pio-team:tldr:fa8d8 pio-team: Rename a team.
    $ pio team update --name ${new_team_name} ${organization_name}:${team_name}
    try on your machine
    explain this command
  • pio-test:tldr:2847d pio-test: Test only specific environments.
    $ pio test --environment ${environment1} --environment ${environment2}
    try on your machine
    explain this command
  • pio-test:tldr:2daa6 pio-test: Specify a custom configuration file for running the tests.
    $ pio test --project-conf ${path-to-platformio-ini}
    try on your machine
    explain this command
  • pio-test:tldr:3388d pio-test: Specify a port for firmware uploading.
    $ pio test --upload-port ${upload_port}
    try on your machine
    explain this command
  • pio-test:tldr:67806 pio-test: Run all tests in all environments of the current PlatformIO project.
    $ pio test
    try on your machine
    explain this command
  • pio-test:tldr:79c8f pio-test: Run only tests whose name matches a specific glob pattern.
    $ pio test --filter "${pattern}"
    try on your machine
    explain this command
  • pio-test:tldr:e5922 pio-test: Ignore tests whose name matches a specific glob pattern.
    $ pio test --ignore "${pattern}"
    try on your machine
    explain this command
  • pio-update:tldr:abdf8 pio-update: Update core packages only (skips platforms and libraries).
    $ pio update --core-packages
    try on your machine
    explain this command
  • pio-update:tldr:d12d2 pio-update: Perform a full update of all packages, development platforms and global libraries.
    $ pio update
    try on your machine
    explain this command
  • pio-update:tldr:f05a5 pio-update: Check for new versions of packages, platforms and libraries but do not actually update them.
    $ pio update --dry-run
    try on your machine
    explain this command
  • pio-upgrade:tldr:b958c pio-upgrade: Update PlatformIO to the latest version.
    $ pio upgrade
    try on your machine
    explain this command
  • pio-upgrade:tldr:f4180 pio-upgrade: Update PlatformIO to the latest development (unstable) version.
    $ pio upgrade --dev
    try on your machine
    explain this command
  • pio:tldr:9b3ff pio: Show help and list subcommands.
    $ pio --help
    try on your machine
    explain this command
  • pio:tldr:af5b0 pio: Print the version number and exit.
    $ pio --version
    try on your machine
    explain this command
  • pio:tldr:b6289 pio: Show help for a specific subcommand.
    $ pio ${subcommand} --help
    try on your machine
    explain this command
tool overview