--- id: smpmgr version: "0.18.1" license: Apache-2.0 license_treatment: permissive maintenance: active --- # smpmgr — Simple Management Protocol (SMP) Manager for remotely managing MCU firmware License: permissive · Maintenance: active · Downloads: 80.8K/mo ## 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 above — 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 pip install smpmgr uv add smpmgr 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_current - Install friction: low - Maintenance: active - Downloads: 80.8K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags firmware management CLI, SMP protocol tool, microcontroller device management, serial firmware update, BLE device management, embedded device CLI, UART firmware tool, embedded-systems, firmware-management, cli-tool [View on SkillFed](https://skillfed.io/packages/smpmgr) · [View on PyPI](https://pypi.org/project/smpmgr/)