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.1]

  • Require certifi >=2026.10.19, which removes the distrusted emudhra root CA certificates.

[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.1

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.1
File Size Uploaded Provenance
memfault_cli-1.12.1.tar.gz 51.0 kB Without provenance Details

Built distribution (wheel)

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

Total release size: 103.6 kB

Release files / memfault_cli-1.12.1.tar.gz

Download URL memfault_cli-1.12.1.tar.gz
Size 51.0 kB
Tags Source
SHA-256 checksum
How to use checksums
d1e0f4339217703a3e1bff20cca0d4c1cf321a6873f4e578df43e3d3a951f3c1
BLAKE2b-256 checksum
How to use checksums
3465c3d0fd25f3235e4a0aebf5d6bb0f7fe4ddf850b1b260b4ea3632af191fd4
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":"Ubuntu","version":"26.04","id":"resolute","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.1-py3-none-any.whl

Download URL memfault_cli-1.12.1-py3-none-any.whl
Size 52.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ef895a36b46948ffbd9af8b027b7fc1067136d90375a2ea248a6bcbdf8299358
BLAKE2b-256 checksum
How to use checksums
12c03024e77e6bfe5f1abad1c19057e83006f8cefe48a58c030191c77eb04923
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":"Ubuntu","version":"26.04","id":"resolute","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.1

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.1 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