python-ipmi
Pure python IPMI library
What it is and what it does
python-ipmi is a pure Python library that abstracts communication with Intelligent Platform Management Interface (IPMI) devices—typically baseboard management controllers in servers and embedded systems. It provides multiple interface backends: native RMCP for direct network communication, legacy RMCP and RMCP+ using ipmitool as a backend, KCS for local access, and IPMB for I2C-based communication. The library handles session establishment, authentication, privilege levels, and routing to allow you to query device information and send management commands to remote or local systems.
The package is designed for system administrators and developers who need to programmatically interact with server management hardware without writing raw IPMI protocol code. It has been tested against real hardware including Kontron, HPE iLO, and other vendor implementations. With no runtime dependencies and support for Python 3.7 through 3.13, it integrates easily into automation and monitoring tools.
Use it for:
- Query device health and sensor data from remote servers via network IPMI without manual commands
- Automate power control, reboot, and chassis management across a fleet of managed systems
- Monitor and log BMC firmware versions and system information for inventory tracking
- Build custom management dashboards or alerting systems that integrate with Python infrastructure
- Test IPMI implementations on embedded systems or custom hardware using local KCS or IPMB
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Pure Python library for communicating with IPMI-enabled devices over multiple interfaces including RMCP, RMCP+, KCS, and IPMB.
Yes, if you need to automate IPMI device management from Python. The library is actively maintained, has no external runtime dependencies, and covers a broad range of IPMI interfaces. The Alpha status and LGPLv2+ copyleft license are not blockers for most use cases, but verify API stability for your specific workflow and ensure ipmitool or compatible hardware is available for your chosen interface.
Install
python-ipmi on PyPI
pip
pip install python-ipmiuv
uv add python-ipmipoetry
poetry add python-ipmiInstalling python-ipmi
Before you install
Low install friction with no runtime dependencies. Actively maintained with last commit on 2026-07-06. Alpha-stage maturity (Development Status :: 3 - Alpha) means the API may still evolve.
License in practice
Licensed under LGPLv2+, a copyleft license. You may use and modify the library freely, but any derivative works must also be distributed under compatible terms and include source code.
Quickstart
pip install python-ipmi
import python-ipmi
interface = create_interface('ipmitool', interface_type='lan')
connection = create_connection(interface)
connection.session.set_session_type_rmcp('10.0.0.1', port=623)
connection.session.establish()
For RMCP, RMCP+, and KCS interfaces, ipmitool must be installed on the system. For IPMB interface, either a Total Phase Aardvark device or Linux ipmb-dev driver with I2C slave mode support is required.
Verify before relying
- Whether the library's Alpha status indicates active API changes or simply conservative versioning
- Performance characteristics and latency for high-frequency polling or bulk operations
- Compatibility with specific BMC firmware versions beyond the tested devices listed
Package facts
| License | LGPLv2+ (copyleft) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 247 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 626,306/month — #5,690 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: python_ipmi-0.5.8-py3-none-any.whl
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
pyghmiPyghmi provides Python bindings for IPMI…
permissive · top 15,000 on PyPI
pyftdiPyFtdi provides a pure-Python user-space driver…
permissive · top 15,000 on PyPI
python-rrmngmntManages remote Linux machines and services over…
copyleft · top 15,000 on PyPI
pylibftdiPythonic interface to FTDI USB devices via…
permissive · top 15,000 on PyPI
spidevProvides Python bindings to interact with SPI…
permissive · top 15,000 on PyPI
pyRFXtrxA Python library that communicates with RFXtrx…
copyleft · top 15,000 on PyPI
smbus2smbus2 provides pure Python I2C/SMBus…
permissive · top 5,000 on PyPI
ft4222Provides Python bindings to LibFT4222, enabling…
permissive · top 15,000 on PyPI
Adafruit-PureIOProvides pure Python access to Linux I2C and…
permissive · top 15,000 on PyPI
pygit2pygit2 provides Python bindings to libgit2,…
copyleft · top 5,000 on PyPI