Skip to content

Releases: balena-io/balena-cli

v23.1.3

19 Nov 18:43
d262149

Choose a tag to compare

8a6630c (Fix version and autocomplete commands not working in offline mode, 2025-11-18)
bfc0ba7 (Deduplicate dependencies, 2025-11-19)

v23.1.2

19 Nov 15:28
ff2c94c

Choose a tag to compare

ab7ecec (push,build: Use streaming while packing the build context files, 2024-02-26)

v23.1.1

18 Nov 14:37
6946d37

Choose a tag to compare

a97c8db (Drop some usage of lodash in favor of native equivalents, 2025-11-12)

v23.1.0

18 Nov 11:46
3752b13

Choose a tag to compare

757061c (device os-update: Add support for HUPing ESR devices, 2025-11-17)
bfc464b (Deduplicate dependencies, 2025-11-18)

v23.0.1

18 Nov 03:19
2eef50e

Choose a tag to compare

00363df (Use nullish coalescing, 2025-11-11)
731e19a (Fix getExpandedProp return type, 2025-11-11)
772f597 (Re-enable JS linting and add JSDoc annotations for JS files, 2025-11-11)
ccc82d7 (Add missing type annotations, 2025-11-11)

v23.0.0

17 Nov 19:34
97d18aa

Choose a tag to compare

Breaking changes

  • Move to node 24.11.0 & drop support for older versions
  • Drop all deprecated aliases
    • What are aliases?: Aliases are just alternate names for commands. In major v20, we renamed several commands but kept the old names as aliases and deprecated them, the purpose being so users can keep using them in a transitional period until we drop them. Now we are officially dropping those deprecated old names
    • Full list of dropped commands and their alternative:
      • api-keysapi-key list
      • devices supporteddevice-type list
      • scandevice detect
      • devicesdevice list
      • logsdevice logs
      • notesdevice note
      • sshdevice ssh
      • tunneldevice tunnel
      • envsenv list
      • env addenv set
      • fleetsfleet list
      • orgsorganization list
      • releasesrelease list
      • key addssh-key add
      • keyssh-key
      • keysssh-key list
      • key listssh-key list
      • key rmssh-key rm
      • tagstag list
  • device note: Drop the --dev flag in favor of the standardized --device
  • Use oclif's native json support instead of manually adding it
    • Improve developer experience
    • Drop support for the shorthand -j
  • Replace manual completion generation with @oclif/plugin-autocomplete
    • Change how to set up auto completion. Simply run balena autocomplete now for easy instructions!
  • Replace custom version command with @oclif/plugin-version
    • Improve developer experience
    • Make the verbose output include a lot more useful information
    • Replace the -a flag with --verbose
    • Drop the -j shorthand of --json
  • Drop the balena os build-config command in favor of balena config generate
    • This means that we now have a single command for generating a config.json: balena config generate. This should remove any confusion as to why we had two commands (which we were also not sure, but it looks like it has to do with us releasing unmanaged ResinOS images as well 7 years back).
  • config generate: Drop the deprecated no-op --generate-device-api-key flag
    • The command was already able to figure out when it had to generate one based on the rest of the params anyway.
  • os configure
    • Make --config incompatible with all other flags other than --system-connection
    • Enforce --device-type dependency on --fleet
    • Drop the --version flag & fail when the image version can't be detected
    • (also applies to os initialize): Fail when a device-type.json can't be detected in the provided image
  • device init: Make --config incompatible with all other flags other than --drive, --version, & --yes
  • Replace the semver field with raw_version in balena release and balena release list
    • The raw_version is the correct field to use since it can uniquely identify a release per fleet, includes any revN or draft timestamp suffix, and is also what the UI uses.

Other changes

  • release: Include the build_log in the --json results
  • Fix lzma-native build on node24 on Linux ARM runners
  • device init:
    • Fix node DEP0190 deprecation warning
    • Validate that the provided config file paths exist

v22.5.5

14 Nov 15:51
d9161ca

Choose a tag to compare

Update actions/setup-python action to v6

Notable changes

actions/setup-python (actions/setup-python)

v6

Compare Source

v5

Compare Source

List of commits

c366802 (Update actions/setup-python action to v6, 2025-11-14)

v22.5.4

14 Nov 14:49
2c121c7

Choose a tag to compare

7899f0a (renovate: Clean node_modules and npm cache before dedupe, 2025-11-14)

v22.5.3

13 Nov 20:03
0c379e9

Choose a tag to compare

Update actions/setup-node action to v6

Notable changes

actions/setup-node (actions/setup-node)

v6

Compare Source

v5

Compare Source

List of commits

9d82d2d (Update actions/setup-node action to v6, 2025-11-13)

v22.5.2

13 Nov 17:57
99281e0

Choose a tag to compare

Update GitHub Artifact Actions to v5 (major)

Notable changes

  • Update README.md by @​nebuk89 in #​407
  • BREAKING fix: inconsistent path behavior for single artifact downloads by ID by @​GrantBirki in #​416
  • By name: name: my-artifact → extracted to path/ (direct)
  • By ID: artifact-ids: 12345 → extracted to path/my-artifact/ (nested)
  • By name: name: my-artifact → extracted to path/ (unchanged)
  • By ID: artifact-ids: 12345 → extracted to path/ (fixed - now direct)
  • You download artifacts by name
  • You download multiple artifacts by ID
  • You already use merge-multiple: true as a workaround
  • uses: actions/download-artifact@v4
  • uses: actions/download-artifact@v5
  • @​nebuk89 made their first contribution in #​407
  • feat: implement new artifact-ids input by @​GrantBirki in #​401
  • Fix workflow example for downloading by artifact ID by @​joshmgross in #​402
  • Prep for v4.3.0 release by @​robherley in #​404
  • @​GrantBirki made their first contribution in #​401
  • Add unit tests by @​GhadimiR in #​392
  • Fix bug introduced in 4.2.0 by @​GhadimiR in #​391
  • Update README.md by @​lkfortuna in #​384
  • Bump artifact version, do digest check by @​GhadimiR in #​383
  • @​lkfortuna made their first contribution in #​384
  • @​GhadimiR made their first contribution in #​383
    -actions/upload-artifact (actions/upload-artifact)
actions/download-artifact (actions/download-artifact)

v5.0.0

Compare Source

What's Changed

v5.0.0

🚨 Breaking Change

This release fixes an inconsistency in path behavior for single artifact downloads by ID. If you're downloading single artifacts by ID, the output path may change.

What Changed

Previously, single artifact downloads behaved differently depending on how you specified the artifact:

  • By name: name: my-artifact → extracted to path/ (direct)
  • By ID: artifact-ids: 12345 → extracted to path/my-artifact/ (nested)

Now both methods are consistent:

  • By name: name: my-artifact → extracted to path/ (unchanged)
  • By ID: artifact-ids: 12345 → extracted to path/ (fixed - now direct)
Migration Guide
✅ No Action Needed If:
  • You download artifacts by name
  • You download multiple artifacts by ID
  • You already use merge-multiple: true as a workaround
⚠️ Action Required If:

You download single artifacts by ID and your workflows expect the nested directory structure.

Before v5 (nested structure):

- uses: actions/download-artifact@v4
  with:
    artifact-ids: 12345
    path: dist

# Files were in: dist/my-artifact/

Where my-artifact is the name of the artifact you previously uploaded

To maintain old behavior (if needed):

- uses: actions/download-artifact@v5
  with:
    artifact-ids: 12345
    path: dist/my-artifact  # Explicitly specify the nested path

New Contributors

Full Changelog: actions/download-artifact@v4...v5.0.0

v4.3.0

Compare Source

What's Changed

New Contributors

Full Changelog: actions/download-artifact@v4.2.1...v4.3.0

v4.2.1

Compare Source

What's Changed

Full Changelog: actions/download-artifact@v4.2.0...v4.2.1

v4.2.0

Compare Source

What's Changed

New Contributors

Full Changelog: actions/download-artifact@v4.1.9...v4.2.0

actions/upload-artifact (actions/upload-artifact)

v5

Compare Source

List of commits

baa5eda (Update GitHub Artifact Actions to v5, 2025-11-13)