skillfed

smpmgr

Simple Management Protocol (SMP) Manager for remotely managing MCU firmware

smpmgr v0.18.1 80.8K downloads/30d#14,272 on PyPI
Permissive license Apache-2.0 Active released

What it is and what it does

smpmgr is a command-line interface for communicating with microcontroller firmware using the Simple Management Protocol (SMP), a standardized protocol for device management. It connects over serial (UART or USB), Bluetooth Low Energy (BLE), or UDP and serves as a reference implementation for the smp and smpclient libraries. The tool is designed for developers working with embedded systems who need to interact with or update MCU firmware from the command line.

The package depends on readchar for terminal input, smpclient for SMP protocol handling, and typer for CLI framework construction. It supports user-provided plugins to handle proprietary SMP groups, making it extensible for custom device management workflows. The tool is distributed as a portable executable for Windows, Linux, and macOS, or installable via PyPI for Python 3.11+.

Use it for:

  • Update or query firmware on embedded devices connected via serial port or USB during development.
  • Manage Bluetooth-connected MCUs remotely without writing custom SMP client code.
  • Test SMP protocol implementations by using smpmgr as a reference client.
  • Automate firmware management tasks over UDP in networked embedded systems.
  • Extend with custom SMP groups via plugins to handle proprietary device management commands.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

CLI tool for managing microcontroller firmware over serial, Bluetooth, or UDP connections using the Simple Management Protocol (SMP).

Yes, if you work with embedded systems and need a command-line tool for SMP-based firmware management. The low install friction, active maintenance, permissive license, and plugin extensibility make it a practical choice. Install via pipx rather than pip if you plan to use it as a standalone CLI tool.

Install

smpmgr on PyPI

pip

pip install smpmgr

uv

uv add smpmgr

poetry

poetry add smpmgr

Installing smpmgr

Before you install

Low install friction with a pure-Python wheel distribution. Actively maintained as of 80 days ago. Requires Python 3.11 or later and three straightforward runtime dependencies (readchar, smpclient, typer).

License in practice

Apache-2.0 permissive license allows use in commercial and proprietary projects with minimal restrictions; you must retain license and copyright notices.

Quickstart

pip install smpmgr
smpmgr --help

Requires Python 3.11 or later. For serial/USB connections, your system must have the appropriate drivers installed; for BLE, your OS must support Bluetooth connectivity.

Verify before relying

  • Whether the package works reliably across all advertised connection types (serial, BLE, UDP) in production environments.
  • Performance characteristics and latency for large firmware transfers.
  • Whether plugin system is stable and well-documented for custom SMP group development.

Package facts

License Apache-2.0 (permissive)
Python support supports the current Python release (<4,>=3.11)
Install friction low — pure-Python wheel
Runtime dependencies 3 — readchar, smpclient, typer
Maintenance actively maintained — 80 days since the last release
First released
Downloads 80,785/month — #14,272 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: smpmgr-0.18.1-py3-none-any.whl

Programming Language :: Python :: 3Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14

Tags

firmware management CLISMP protocol toolmicrocontroller device managementserial firmware updateBLE device managementembedded device CLIUART firmware tool
embedded-systemsfirmware-managementcli-tool

More Monitoring packages