For Mac - Usbutil

When most Mac users need to interact with USB devices, they turn to the graphical System Information app (formerly System Profiler) or the system_profiler SPUSBDataType command in Terminal. However, buried deep within macOS is a lesser-known, command-line utility designed specifically for lower-level USB debugging and device management: usbutil .

usbutil -h If you simply want to see which USB devices are connected, run: usbutil for mac

sudo usbutil reset-port 0x14130000 Note: This requires sudo and must be used carefully; resetting the wrong port can disrupt keyboard/mouse input. On laptops, you can query or toggle power to individual USB ports (e.g., to conserve battery or force a hard reset). Example: When most Mac users need to interact with

Moreover, usbutil commands and their syntax change subtly between macOS versions (e.g., High Sierra vs. Ventura). Always check the built-in help: On laptops, you can query or toggle power

system_profiler SPUSBDataType | grep -E "Product ID:|Vendor ID:|Speed:" This is safer, more readable, and fully supported across all macOS versions. usbutil is a surgical tool for the USB stack on macOS—not a general-purpose utility. It shines in debugging scenarios: a drive that won't mount, a device that vanished after sleep, or a hub that needs port-level reset. For developers and advanced administrators, mastering usbutil opens a window into the low-level USB architecture that graphical tools cannot provide. For everyone else, admire it from a distance, and stick with system_profiler .

Unlike its Linux counterpart ( lsusb ), macOS does not ship with a dedicated lsusb command. Instead, Apple provides usbutil —a lightweight but powerful tool for examining the USB bus hierarchy, testing device connections, and diagnosing kernel-level USB issues. usbutil is a native macOS executable located in /usr/sbin/usbutil . It interacts directly with the AppleUSBHostController and the I/O Kit framework. While average users will never need it, developers, firmware engineers, and IT support specialists can leverage it to inspect device descriptors, reset USB ports programmatically, or monitor USB power events. Key Commands and Their Usage To use usbutil , open Terminal and type usbutil followed by a subcommand. Below are the most valuable options available as of macOS Ventura and Sonoma (14/15). 1. List Devices ( usbutil list-devices ) This is the closest equivalent to lsusb . It prints a hierarchical tree of all attached USB devices, including hubs, internal components (camera, Bluetooth controller), and external peripherals.

usbutil power status usbutil power off 0x14130000 For everyday tasks—ejecting drives, viewing basic USB device lists, or checking transfer speeds— usbutil is overkill and potentially dangerous. Use diskutil list , system_profiler SPUSBDataType , or the Disk Utility app instead.