Cross-platform USB device and bus lister, a modern replacement for lsusb with tree view and filtering capabilities.
Cyme is a cross-platform USB device and bus profiler that serves as a modern replacement for the traditional lsusb command. It lists system USB buses and devices with full device descriptors, supporting Linux, macOS, and Windows platforms. The tool maintains compatibility with lsusb through a --lsusb flag while adding enhanced functionality.
The tool offers improved tree visualization modes that display devices, configurations, interfaces, and endpoints in a hierarchical format with multiple verbosity levels. It includes advanced filtering capabilities beyond standard vid:pid filters, supporting filter-by-name, filter-by-serial, and filter-by-class options that work across all output modes including tree view. Display output is customizable through configurable blocks for different USB descriptor levels (device, bus, configuration, interface, endpoint).
Cyme features modern terminal capabilities including colored output, UTF-8 characters, and device icon lookup, with automatic terminal width scaling and truncation indicators. It provides JSON export functionality that honors all filters and tree structures, plus a cyme watch subcommand for monitoring USB hotplug events. The tool uses a native Rust profiler built on nusb and udevrs by default, though it can optionally use libusb for compatibility or macOS system_profiler for specific use cases.
# via Homebrew
brew install cyme
# via Cargo
cargo install cyme
# via Arch Linux
pacman -S cyme
