Metadata-Version: 2.4
Name: memfault-cli
Version: 1.8.1
Summary: Memfault CLI tool
Author-email: Memfault <hello@memfault.com>
License-Expression: Apache-2.0
Project-URL: homepage, https://docs.memfault.com
Project-URL: documentation, https://docs.memfault.com/docs/cli
Requires-Python: <4.0,>=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: Click<9,>=7
Requires-Dist: requests<3.0.0,>=2.32.4
Requires-Dist: pyelftools>=0.31
Requires-Dist: mflt-build-id<2.0.0,>=1.0.2
Requires-Dist: more-itertools>=8.0.2
Requires-Dist: pyaxmlparser<0.4.0,>=0.3.24
Requires-Dist: tqdm<5.0.0,>=4.67.1
Requires-Dist: urllib3<3.0.0,>=2.6.3
Requires-Dist: pyserial<4.0,>=3.5
Dynamic: license-file

# Memfault CLI tool

This package contains the `memfault` CLI tool.

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` for more info!

## Changes

### [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](https://nvd.nist.gov/vuln/detail/CVE-2024-53899).

### [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

- Update `urllib3` dependency to `>=2.6.3` to address
  [this security disclosure](https://www.cve.org/CVERecord?id=CVE-2026-21441).

### [1.7.0] - 2025-12-15

- Update `urllib3` dependency to `>=2.6.2` to address
  [this security disclosure](https://nvd.nist.gov/vuln/detail/CVE-2025-66418).

- Update `tqdm` dependency to `>=4.67.1` to address
  [this security disclosure](https://nvd.nist.gov/vuln/detail/CVE-2024-34062).

- Update `requests` dependency to `>=2.32.4` to address the following
  disclosures:

  - [CVE-2023-32681](https://nvd.nist.gov/vuln/detail/CVE-2023-32681)
  - [CVE-2024-35195](https://nvd.nist.gov/vuln/detail/CVE-2024-35195)
  - [CVE-2024-47081](https://nvd.nist.gov/vuln/detail/CVE-2024-47081)

- Remove support for Python 3.8. The minimum required Python version is now 3.9.

### [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](https://docs.memfault.com/docs/platform/sbom) 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

- Source pyelftools from <https://pypi.org/project/pyelftools/> again, as the
  required bugfixes have been merged upstream. See notes of 1.0.6 below.

### [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

- Source pyelftools from <https://github.com/memfault/pyelftools> while we are
  waiting for 2 bugfixes to get merged upstream
  (<https://github.com/eliben/pyelftools/pull/537> and
  <https://github.com/eliben/pyelftools/pull/538>).

### 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
