Working with a project

A STM32CubeCLI project records its required tool bundles so developers and automation use the same toolchain. STM32CubeCLI searches the current directory and its parents for .settings. Use --cwd <directory> to select a project elsewhere.

The project contains two files:

  • .settings/bundles.store.json records direct requirements and version ranges.

  • .settings/bundles-lock.store.json records exact bundle and dependency versions for each platform.

Commit both files. Compatible lock data selects command versions and missing bundles to install, making the toolchain reproducible while those versions remain available.

cube bundle init --project cmake@^3.30.0
cube bundle show --project

After cloning a project, run the following command to install its locked toolchain:

cube bundle install --project

See Your first project for a hands-on walkthrough of this flow, and the Command reference for the full cube bundle syntax.

External bundle locations

External bundle locations let cube discover bundles that are managed outside the standard CUBE_BUNDLE_PATH repository. Register a directory to use bundles in place, without copying or installing them into the standard repository. While developing a bundle, this lets you test changes directly from its working directory without repeatedly packaging and installing it. External locations can also contain bundles maintained by another tool or in a shared workspace.

external add <directory>...

Register directories containing externally managed bundles. A directory is recorded even if it does not currently exist.

cube bundle external add ~/cube-bundles/custom-tool
external remove <directory>...

Stop loading bundles from the specified external directories. Bundle files are not deleted.

cube bundle external remove ~/cube-bundles/custom-tool
external list

List registered external directories.

Example: cube bundle external list