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

Release files for smpmgr 0.19.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.19.1
File Size Uploaded
smpmgr-0.19.1.tar.gz 19.4 kB Details

Built distribution (wheel)

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

Total release size: 45.1 kB

Release files / smpmgr-0.19.1.tar.gz

Download URL smpmgr-0.19.1.tar.gz
Size 19.4 kB
Tags Source
SHA-256 checksum
How to use checksums
34d95a0ff4452e2aaae51e4033cc5127e1f5eac7c87d0c89622fa8103cf41eb7
BLAKE2b-256 checksum
How to use checksums
f1c8d816a51d96c75a04ad6c8cb830d352525cc8eaf0d76ddc5ff450ed0fc21d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 7, 2026.

Transparency log

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

Download URL smpmgr-0.19.1-py3-none-any.whl
Size 25.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f5eb59a3769cc25efc4dfcc9e0ce48a0cf56014aefb5c337d1b03c34cab2df1b
BLAKE2b-256 checksum
How to use checksums
c8f39f4d4b342c0ae7671f9a1f46f3f1a7d915ac48bc2bc981a4fdbd390d7551
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 7, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.19.1 This release

2 release files

0.19.0

2 release files

0.18.1

2 release files

0.18.0

2 release files

0.17.0

2 release files

0.16.0

2 release files

0.15.0

2 release files

0.14.1

2 release files

0.14.0

2 release files

0.13.2

2 release files

0.13.0

2 release files

0.12.1

2 release files

0.12.0

2 release files

0.10.4

2 release files

0.10.3

2 release files

0.10.2

2 release files

0.9.0

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.1

2 release files

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