Simple Management Protocol (SMP) Client
smpclient implements the transport layer of the Simple Management Protocol. This library can be
used as a dependency in applications that use SMP over serial (UART or USB), Bluetooth (BLE),
or UDP connections. Some abstractions are provided for common routines like upgrading device
firmware.
If you don't need a library with the transport layer implemented, then you might prefer to use smp instead. The SMP specification can be found here.
If you'd like an SMP CLI application instead of a library, then you should try smpmgr.
Install
smpclient is distributed by PyPI and can be installed with uv, pip, and other dependency managers.
Build with all transports:
smpclient[all]
Or none (UDP transport only):
smpclient
Or build with only the transports you need:
smpclient[serial] # Serial (UART, USB, CAN)
smpclient[ble] # Bluetooth Low Energy
smpclient[serial,ble] # Serial + BLE
The UDP transport has no additional dependencies and is always available.
User Documentation
Documentation is in the source code so that it is available to your editor. An online version is generated and available here.
Development Quickstart
Assumes that you've already setup your development environment.
- run
uv syncwhen pulling in new changes - run
uv run task fixafter making changes (fast) - run
uv run task allafter making changes (thorough) - add library dependencies with
uv:uv add <my_new_dependency> - add test or other development dependencies:
uv add --group dev <my_dev_dependency> - run tests for all supported python versions:
uv run task matrix
Development Environment Setup
Install Dependencies
Create the venv
uv sync
Verify Your Setup
uv run task all
Enable the githooks
git config core.hooksPath .githooks
Metadata
Release files for smpclient 7.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| smpclient-7.2.0.tar.gz | 4.3 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| smpclient-7.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 4.3 MB
Release files / smpclient-7.2.0.tar.gz
| Download URL | smpclient-7.2.0.tar.gz |
|---|---|
| Size | 4.3 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
cbd111a61b42fc6ce39454fee0ceec17ba3670eaf6fe126b9fef9764d8e5bb6d
|
|
BLAKE2b-256 checksum How to use checksums |
d8b697dfe4c50f56fafcf64302832ef14d6648df47907f2e971362f2c03459e8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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 Jun 11, 2026.
Transparency logRelease files / smpclient-7.2.0-py3-none-any.whl
| Download URL | smpclient-7.2.0-py3-none-any.whl |
|---|---|
| Size | 51.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
aabcc974d608555cef3b40142f6deb106fcbacda783e31a604d56d297a330540
|
|
BLAKE2b-256 checksum How to use checksums |
7d689bdab2fbbcfb1c5a4d6a8f0b4355a10632b037c86f7bfe69eff965f54813
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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 Jun 11, 2026.
Transparency log