Skip to main content

Memfault CLI tool

This package contains the memfault CLI tool. It is also installed as the nrfcloud command.

The purpose of the tool is to make integration with Memfault from other systems, like continuous integration servers, as easy as possible.

Install the tool and run memfault --help and nrfcloud --help for more info!

Changes

[1.12.0]

  • Install the CLI as an nrfcloud command in addition to memfault. It provides all of the memfault commands.
  • Add nrfcloud device create, which creates Nordic devices in nRF Cloud from their attestation tokens, onboarding tokens or certificates, using an Organization Auth Token. It replaces nrfcloud-utils' nrf_cloud_onboard, which needed a legacy nRF Cloud API key.

[1.11.0] - 2026-10-07

  • Add support for multi-component OTA uploads to upload-ota-payload. Pass --software-type with a non-primary software type (e.g. mfw) along with --component-version VERSION to upload a component artifact (component artifact version is independent of the Release's --software-version). Add --component-base-version BASE_VERSION to upload a per-component delta payload from BASE_VERSION to --component-version. See https://mflt.io/multi-component-ota for more details.

[1.10.0] - 2026-09-30

  • Add an upload-zchunk-ota-payload command. A zchunk OTA Release for Linux is one Release with two payloads, so the command takes both: --zchunk-header FILE.swu, the SWUpdate package carrying sw-description and the detached zchunk header, and --zchunk-image FILE.zck, the chunked image the device fetches byte ranges from. The payloads are validated before upload.

  • Remove support for Python 3.9. The minimum required Python version is now 3.10.

  • Update urllib3 dependency to 2.7.0 to address the following disclosures:

[1.9.1] - 2026-07-09

  • Fix a UnicodeEncodeError when printing the checkmark (✓) on legacy Windows code pages (e.g. cp1252).

[1.9.0] - 2026-07-09

  • Add support for multipart OTA artifact uploading. This is controlled by the Memfault cloud, and only applies when OTA payloads exceed a large size limit. No change needed when invoking the Memfault CLI.
  • Include file size when preparing uploads for better cloud-side support.

[1.8.1] - 2026-05-13

  • Add the printing of relevant web links to the Memfault app when the post-chunk and deploy-release commands are run.

[1.8.0] - 2026-03-06

  • Add the --org-token option for authenticating with an Organization Auth Token (OAT). This is now the recommended way to pass OATs to the CLI. Previously, the documented approach was to pass the OAT via --password:

    memfault --password "$ORGANIZATION_AUTH_TOKEN" ...
    

    This should now be updated to use --org-token:

    memfault --org-token "$ORGANIZATION_AUTH_TOKEN" ...
    

    Passing an OAT via --password is deprecated and will be removed in a future release.

  • Update virtualenv dependency to >=20.36.1 to address this security disclosure.

[1.7.2] - 2026-02-05

  • Fix a bug where upload-yocto-symbols and upload-elf-symbols would fail on Python 3.14 with tarfile.AbsoluteLinkError when extracting tarballs that contain absolute symlinks (e.g. Yocto's /etc/localtime).

[1.7.1] - 2026-01-13

[1.7.0] - 2025-12-15

[1.6.0] - 2025-04-23

  • Add support for uploading ELF files without DWARF debug info.

[1.5.0] - 2024-11-14

  • Add support for Python 3.13: remove unnecessary version constraints on the chardet + lxml dependencies.

[1.4.0] - 2024-11-12

  • Populate a User-Agent string in the headers of all requests to Memfault Cloud to identify the CLI version used for diagnostics. Previously the User-Agent was only included for chunk POST requests.

[1.3.0] - 2024-11-07

  • Remove support for Python 3.6 + 3.7

[1.2.0] - 2024-08-28

  • Add the upload-software-version-sbom command. Look at the SBOM docs for more info.

[1.1.0] - 2024-07-22

  • Add a user-agent string to chunk POST requests to identify CLI version used for diagnostics.

  • Fixups with ruff (RET504)

[1.0.11] - 2024-06-28

  • Add an option --no-check-uploaded for upload-mcu-symbols to skip an initial check if the symbol file already exists. This option should be used with Org Tokens limited to only uploading symbol file

  • Bump urllib3 dependency to 1.26.19

  • Fixups with ruff 0.4.10

[1.0.10] - 2024-06-13

[1.0.9] - 2024-04-04

  • Add Miniterm help text when launching the memfault console command, to indicate how to exit the console (Ctrl-]).

1.0.8

  • Add Apache 2 license

1.0.7

  • Fix bug when deactivating delta releases when multiple deployments match the filters.

1.0.6

1.0.5

  • Add support for deactivating delta releases.

1.0.4

  • Add upload-elf-symbols command for uploading ELF files with debug symbols built outside of a Yocto environment
  • Add upload-elf-coredump for uploading a Linux coredump to Memfault

1.0.3

  • Fix a bug where upload-aosp-symbols would fail when uploading too many files at once.

1.0.2

  • Fix a bug where upload-yocto-symbols would fail when some files in the tarballs provided did not have the read permission set.

1.0.1

  • Fix upload-custom-data-recording to print a more helpful error message when exceeding device rate limits.

1.0.0

Note: this release is marked as 1.0.0 but does not contain any breaking changes! The version number was bumped to reflect the maturity of the tool.

  • Fix upload-mcu-symbols to skip uploading if the symbol file has already been uploaded, and return a zero exit code in this case

0.18.1

  • Add the --deactivate option to deploy-release, which disables a release for a cohort

0.18.0

  • Add new extra-metadata option to upload-ota-payload to attach custom metadata to that OTA release. The metadata will be returned from Memfault Cloud when fetching the latest Android OTA release.
  • Continue uploading the entire folder of symbols even if any single upload fails due to the symbol file being too large.

0.17.0

  • Add new console command to read SDK exported chunks via a serial port and automatically upload to Memfault.

0.16.0

  • Add support for uploading Android debug symbols from alternative build systems.

0.15.3

  • Warn if a non-slug string is passed to the --project or --org arguments

0.15.2

  • Don't truncate help output from click when the CI environment variable is set, for consistent output formatting

0.15.1

  • Fix some compatibility issues for python3.6 + python3.7

0.15.0

  • 💥 Breaking change: update the upload-yocto-symbols subcommand to take two image paths as required arguments; one for the root filesystem image, and another for the debug filesystem image. Versions 0.14.0 and lower used to take a guess at the path of the debug filesystem image from the value passed to the --image param. To avoid confusion and to support all configurations, the Memfault CLI no longer does any guessing and now takes two separate params: --image and --dbg-image

0.14.0

  • ✨ Update the post-chunk subcommand to split uploads into batches of 500 chunks per upload, to avoid timing out when uploading very large chunk logs

0.13.0

  • 💥 Breaking change: Renamed subcommand upload-debug-data-recording to custom-data-recording

0.12.0

  • ✨ Added subcommand upload-debug-data-recording for uploading debug data files

0.11.0

  • ✨ Enable support for Yocto Dunfell based projects (previously supported Kirkstone only)

0.10.0

  • ✨ Upload-yocto-symbols now uploads additional symbol files

0.9.0

  • ✨ Expanded support for .elf uploading with the upload-yocto-symbols subcommand

0.8.0

  • ✨ Initial support for upload-yocto-symbols subcommand

0.7.0

  • 🐛 Updated to correctly only use the GNU build-id .note section

Metadata

Release files for memfault-cli 1.12.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for memfault-cli 1.12.0
File Size Uploaded Provenance
memfault_cli-1.12.0.tar.gz 50.8 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for memfault-cli 1.12.0
File Interpreter ABI Platform
memfault_cli-1.12.0-py3-none-any.whl Python 3 none any Details

Total release size: 103.3 kB

Release files / memfault_cli-1.12.0.tar.gz

Download URL memfault_cli-1.12.0.tar.gz
Size 50.8 kB
Tags Source
SHA-256 checksum
How to use checksums
e0c935afe4c81e7148c6960f584fb89d8fd6366f04c54caa2e900bc390cab7f0
BLAKE2b-256 checksum
How to use checksums
c6eb19af7850c68b0e1e88ce3f5b879534311607d6b3a9c59384bee3394f836d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.4 {"installer":{"name":"uv","version":"0.13.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / memfault_cli-1.12.0-py3-none-any.whl

Download URL memfault_cli-1.12.0-py3-none-any.whl
Size 52.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9973c7b0446ae77f85f05cdfb0b27a6717210eebe1aebcfd554d64f998950b1d
BLAKE2b-256 checksum
How to use checksums
f1a936d1b691f6ef0191468a09d60bd209f9ceb7cf0724290b8be36aadcd3b74
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.4 {"installer":{"name":"uv","version":"0.13.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Security for memfault-cli 1.12.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.12.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page