Skip to main content

Simple Management Protocol (SMP) Manager

smpmgr is a CLI application for interacting with device firmware over a serial (UART or USB), Bluetooth (BLE), or UDP, connection. It can be used as a reference implementation of the smp and smpclient libraries when developing your own SMP application.

The SMP specification can be found here.

Install

You can download a portable executable for Windows, Linux, and macOS from the latest releases page.

smpmgr is also distributed by PyPI. If you already have a Python environment setup, then it is strongly recommended to install smpmgr with pipx instead of pip.

Custom SMP Groups

smpmgr supports user-provided plugins that implement proprietary SMP groups.

smpmgr --plugin-path=plugins --help

See /plugins for more information and examples.

Development Quickstart

Assumes that you've already setup your development environment.

  1. activate envr, the environment manager for bash, zsh, and PS:
    . ./envr.ps1
    
  2. run poetry install when pulling in new changes
  3. run lint after making changes
  4. run test after making changes
  5. run build to build a portable executable bundle at dist/smpmgr-<git tag>. Refer to portably.py for details.
  6. add library dependencies with poetry:
    poetry add <my_new_dependency>
    
  7. add test or other development dependencies using poetry groups:
    poetry add -G dev <my_dev_dependency>
    

Development Environment Setup

Install Dependencies

Create the venv

poetry install

The venv should be installed to .venv.

Activate envr

envr supports bash, zsh, and PS in Linux, MacOS, and Windows. If you are using an unsupported shell, you can activate the .venv environment manually, use poetry run and poetry shell, and refer to envr-default for useful aliases.

. ./envr.ps1

Verify Your Setup

To verify the installation, make sure that all of the tests are passing using these envr aliases:

lint
test

Enable the githooks

The pre-commit hook will run the linters but not the unit tests.

git config core.hooksPath .githooks

Metadata

Release files for smpmgr 0.20.2

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

Source distribution (sdist)

Source distribution for smpmgr 0.20.2
File Size Uploaded Provenance Actions
smpmgr-0.20.2.tar.gz 19.9 kB With provenance Details for smpmgr-0.20.2.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for smpmgr 0.20.2
File Interpreter ABI Platform Actions
smpmgr-0.20.2-py3-none-any.whl Python 3 none any Details for smpmgr-0.20.2-py3-none-any.whl

Total release size: 45.9 kB

Release files / smpmgr-0.20.2.tar.gz

Download URL smpmgr-0.20.2.tar.gz
Size 19.9 kB
Tags Source
SHA-256 checksum
How to use checksums
c660b3fd547cdac3f45d16fb429e5c980c00e0f7cbc271f21223913e93397ce7
BLAKE2b-256 checksum
How to use checksums
9e9a8ce811446500c64f355e235c818ec40626f92d61f52253ad6ee88bcb5517
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 11, 2026.

Transparency log

Release files / smpmgr-0.20.2-py3-none-any.whl

Download URL smpmgr-0.20.2-py3-none-any.whl
Size 26.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c0c8696712f020672c0fccd978854cb720a344210907f8dc772abcae4d4d1fe2
BLAKE2b-256 checksum
How to use checksums
f75438d64e7c3fdb3ddccc4e66c83602b4d826e9800f05830b7b29c22527938d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 11, 2026.

Transparency log

Security for smpmgr 0.20.2

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.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for smpmgr-0.20.2.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 11, 2026.

Transparency log

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

0.20.2 This release

2 release files Full 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