python-ipmi
Pure python IPMI library
Decision gist · record as of 2026-08-14
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.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- 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.
- Low install friction with no runtime dependencies.
License · maintenance · safety
LGPLv2+ (copyleft) — 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.
last release 2025-12-10 (247 days) · last repo commit 2026-07-06 · 203 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 626,306 downloads/mo, #5,690 on PyPI
Alternatives
Verify before relying
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()- 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
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 on it.
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
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.
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.
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()
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 |
| Classifiers | Development Status :: 3 - AlphaEnvironment :: ConsoleLicense :: OSI Approved :: GNU Lesser General Public License v2 or later (LGPLv2+)Natural Language :: EnglishOperating System :: OS IndependentProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Topic :: Software Development :: Libraries :: Python Modules |
Evidence: python_ipmi-0.5.8-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “baseboard management controller communication”
- python-ipmiPure Python library for communicating with IPMI-enabled devices over…
- pyghmiPyghmi provides Python bindings for IPMI (Intelligent Platform…
- aiounifiAsynchronous Python library for communicating with UniFi Network…
Give your agent the search over MCP, or paste the wish link into any chat.
More Python Modules packages
Converts domain names between Unicode and ASCII-compatible encoding (Punycode) according to IDNA 2008 and Unicode Technical Standard 46, with security validation and broader script coverage than the standard library.
Install it if you work with internationalized domain names, need to validate domains, or use HTTP clients that depend on it transitively.
Setuptools is a Python build backend and package management tool that handles building, distributing, and installing Python packages, including support for C/C++ extension modules.
PyYAML parses and emits YAML 1.1 data format, enabling serialization and deserialization of configuration files and Python objects to and from human-readable YAML text.
Pydantic validates Python data structures against type hints, coercing and checking input at runtime to ensure it matches a declared schema.
Provides reusable metadata objects for use with PEP-593 `typing.Annotated` to express common constraints like bounds, collection sizes, and predicates on types.
Install it if you use or build libraries that need to express type constraints in a standardized, inspectable way—or if you want to annotate your own types with…
Provides runtime tools to inspect and introspect Python type annotations, enabling programmatic examination of type hints at execution time.
See also pyghmi · pyftdi · python-rrmngmnt · pylibftdi · spidev · pyRFXtrx · smbus2 · ft4222 · Adafruit-PureIO · pygit2