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.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 smpmgr 0.20.1
File Size Uploaded Provenance Actions
smpmgr-0.20.1.tar.gz 19.5 kB With provenance Details for smpmgr-0.20.1.tar.gz

Built distribution (wheel)

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

Total release size: 45.2 kB

Release files / smpmgr-0.20.1.tar.gz

Download URL smpmgr-0.20.1.tar.gz
Size 19.5 kB
Tags Source
SHA-256 checksum
How to use checksums
fb6effc39a3a0b7713de57b4521da2cd896598d09c0f4ea876ac02126dfa596f
BLAKE2b-256 checksum
How to use checksums
a4556a02dab4c09e8391f8d3a424c89ff65bbf0015d86d88274cfcbdb496059a
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 10, 2026.

Transparency log

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

Download URL smpmgr-0.20.1-py3-none-any.whl
Size 25.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
73006d3cb99c8094654530fc6ab8a1327308a5330f6fa7a6e66e61542649d5bc
BLAKE2b-256 checksum
How to use checksums
256634f4a88c0a20534dabd8ecb09f3420c6a746c434084438a2a421c7ccd343
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 10, 2026.

Transparency log

Security for smpmgr 0.20.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.

Full provenance

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

Select from 2 files

Attestation for smpmgr-0.20.1.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 10, 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.1 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