Skip to content

Add --skip-platform option to core install #2936

Closed as not planned
Closed as not planned
@dankeboy36

Description

@dankeboy36

Describe the request

Please consider adding a --skip-platform flag to the core install command to allow installation of only the tool dependencies, excluding the platform (e.g., hardware/esp32/...).
This would benefit use cases where the core is not used for compiling or uploading sketches, but the CLI tools are still required, such as decoding core dumps or flashing precompiled binaries.

Motivation

Currently, a core install always downloads the platform in addition to its tool dependencies. For example:

arduino-cli core install esp32:esp32

Creates:

pwd
/Users/akoskitta/Library/Arduino15/packages/esp32
tree -L 3 .
.
├── hardware
│   └── esp32
│       └── 3.1.3
└── tools
    ├── esp-rv32
    │   └── 2405
    ├── esp-x32
    │   └── 2405
    ├── esp32-arduino-libs
    │   └── idf-release_v5.3-489d7a2b-v1
    ├── esptool_py
    │   └── 4.9.dev3
    ├── mklittlefs
    │   └── 3.0.0-gnu12-dc7f933
    ├── mkspiffs
    │   └── 0.2.3
    ├── openocd-esp32
    │   └── v0.12.0-esp32-20241016
    ├── riscv32-esp-elf-gdb
    │   └── 14.2_20240403
    └── xtensa-esp-elf-gdb
        └── 14.2_20240403

However, the is not needed in workflows where the firmware is already compiled (e.g., CI builds, production flashing) or the tools are invoked manually or programmatically (e.g., esptool, gdb, mkspiffs, etc.). Skipping them could save disk space and reduce install time.

Proposal

Add a flag like:

arduino-cli core install esp32:esp32 --skip-platform

This would fetch and install only the tools defined in the core’s JSON index. It would omit downloading or unpacking the hardware/ folder.

This likely depends on how cores are structured in the index and whether the platform and tools are independently listed. If tools can be installed standalone (as arduino-cli core install already handles tool dependencies), this might be a manageable change, but my Arduino Boards Manager knowledge is limited here, and I am just guessing.

If this is possible, would Arduino be open to such a contribution?

Describe the current behavior

There is no option to install only the toolchain of a core.

Arduino CLI version

1.2.0

Operating system

macOS

Operating system version

15.5

Additional context

No response

Issue checklist

  • I searched for previous requests in the issue tracker
  • I verified the feature was still missing when using the nightly build
  • My request contains all necessary details

Metadata

Metadata

Assignees

No one assigned

    Labels

    topic: codeRelated to content of the project itselftopic: package-managementRelated to the packaging and managing of the platform/librariestype: enhancementProposed improvement

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions