--- id: usb-devices version: "0.5.1" license: MIT license_treatment: permissive maintenance: active --- # usb-devices — Tools for mapping, describing, and resetting USB devices License: permissive · Maintenance: active · Downloads: 673.2K/mo ## What it is and what it does usb-devices is a lightweight Python library for querying and controlling USB devices on a system. It exposes device metadata—manufacturer, product name, vendor ID, product ID, bus and device numbers—and provides a reset operation for devices like Bluetooth adapters. The package has no runtime dependencies and installs as a pure Python wheel, making it quick to add to any project. The library is in pre-alpha development but actively maintained, with recent commits and support for Python 3.10 through 3.14. It is designed for developers who need programmatic access to USB device information or the ability to reset devices without shell commands, particularly useful for Bluetooth device management and hardware troubleshooting workflows. Use it for: - Enumerate all USB devices on a system and extract their metadata for inventory or diagnostic logging. - Reset a Bluetooth adapter (hci device) programmatically when it becomes unresponsive. - Build a hardware management tool that needs to query or control USB peripherals without spawning shell processes. - Automate device detection and initialization in embedded or IoT applications. - Debug USB device conflicts by listing all connected devices and their IDs in a Python script. ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. Maps, describes, and resets USB devices on a system, providing access to device metadata like manufacturer, product ID, and vendor ID. Yes, if you need programmatic USB device enumeration or reset. Low install friction, no dependencies, permissive license, and active maintenance make it a safe choice. Pre-alpha status means the API may change, so pin the version in production. No known vulnerabilities. ## Install pip install usb-devices uv add usb-devices poetry add usb-devices ## Installing usb-devices Before you install: Low friction: pure Python wheel with no runtime dependencies. Active maintenance with recent commits, though pre-alpha status (Development Status :: 2) signals the API may still change. License in practice: MIT license is permissive; you can use, modify, and distribute this package freely in commercial or private projects with minimal restrictions. Quickstart: pip install usb-devices from usb_devices import list_devices devices = list_devices() for device in devices: print(device.manufacturer, device.product) Requires Python 3.10 or later; system-level USB device access may require elevated privileges depending on OS and device permissions. Verify before relying: - Whether the package works on Windows, macOS, and Linux equally or has platform-specific limitations. - Whether device reset operations require root/administrator privileges on all platforms. - API stability guarantees given pre-alpha status and how breaking changes are communicated. ## Package facts - License: MIT (permissive) - Python support: supports_current - Install friction: low - Maintenance: active - Downloads: 673.2K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags usb device enumeration, list usb devices, usb device info, usb device reset, bluetooth device management, hci device control, usb device metadata, usb-hardware, device-management, bluetooth [View on SkillFed](https://skillfed.io/packages/usb-devices) · [View on PyPI](https://pypi.org/project/usb-devices/)