cyme(1)

NAME
cyme - List system USB buses and devices; a modern cross-platform `lsusb`

SYNOPSIS
cyme [-l|--lsusb] [-t|--tree] [-d|--vidpid] [-s|--show] [-D|--device] [--filter-name] [--filter-serial] [--filter-class] [-v|--verbose]... [-b|--blocks] [--bus-blocks] [--config-blocks] [--interface-blocks] [--endpoint-blocks] [-m|--more] [--sort-devices] [--sort-buses] [--group-devices] [--hide-buses] [--hide-hubs] [--decimal] [--no-padding] [--no-colour] [--ascii] [--headings] [--json] [--from-json] [-F|--force-libusb] [-c|--config] [-z|--debug]... [--mask-serials] [-h|--help] [-V|--version]

DESCRIPTION
List system USB buses and devices; a modern cross-platform `lsusb`

OPTIONS

-l, --lsusb=LSUSB
    Attempt to maintain compatibility with lsusb output

-t, --tree=TREE
    Dump USB device hierarchy as a tree

-d, --vidpid=VIDPID
    Show only devices with the specified vendor and product ID numbers (in hexadecimal) in format VID:[PID]

-s, --show=SHOW
    Show only devices with specified device and/or bus numbers (in decimal) in format [[bus]:][devnum]

-D, --device=DEVICE
    Selects which device lsusb will examine - supplied as Linux /dev/bus/usb/BBB/DDD style path

--filter-name=FILTER_NAME
    Filter on string contained in name

--filter-serial=FILTER_SERIAL
    Filter on string contained in serial

--filter-class=FILTER_CLASS
    Filter on USB class code
    Possible values:

    •   use-interface-descriptor: Device class is unspecified, interface descriptors are used to determine needed drivers

    •   audio: Speaker, microphone, sound card, MIDI

    •   cdc-communications: The modern serial interface; appears as a UART/RS232 port on most systems

    •   hid: Human Interface Device; game controllers, keyboards, mice etc. Also commonly used as a device data interface rather then creating something from scratch

    •   physical: Force feedback joystick

    •   image: Scanners, cameras

    •   printer: Laser printer, inkjet printer, CNC machine

    •   mass-storage: Mass storage devices (MSD): USB flash drive, memory card reader, digital audio player, digital camera, external drive

    •   hub: High speed USB hub

    •   cdc-data: Used together with class 02h (Communications and CDC Control) above

    •   smart-cart: USB smart card reader

    •   content-security: Fingerprint reader

    •   video: Webcam

    •   personal-healthcare: Pulse monitor (watch)

    •   audio-video: Webcam, TV

    •   billboard: Describes USB-C alternate modes supported by device

    •   usb-type-c-bridge: An interface to expose and configure the USB Type-C capabilities of Connectors on USB Hubs or Alternate Mode Adapters

    •   i3c-device: An interface to expose and configure I3C function within a USB device to allow interaction between host software and the I3C device, to drive transaction on the I3C bus to/from target devices

    •   diagnostic: Trace and debugging equipment

    •   wireless-controller: Wireless controllers: Bluetooth adaptors, Microsoft RNDIS

    •   miscellaneous: This base class is defined for miscellaneous device definitions. Some matching SubClass and Protocols are defined on the USB-IF website

    •   application-specific-interface: This base class is defined for devices that conform to several class specifications found on the USB-IF website

    •   vendor-specific-class: This base class is defined for vendors to use as they please

-v, --verbose=VERBOSE
    Verbosity level: 1 prints device configurations; 2 prints interfaces; 3 prints interface endpoints; 4 prints everything and all blocks

-b, --blocks=BLOCKS
    Specify the blocks which will be displayed for each device and in what order
    Possible values:

    •   bus-number: Number of bus device is attached

    •   device-number: Bus issued device number

    •   branch-position: Position of device in parent branch

    •   port-path: Linux style port path

    •   sys-path: Linux udev reported syspath

    •   driver: Linux udev reported driver loaded for device

    •   icon: Icon based on VID/PID

    •   vendor-id: Unique vendor identifier - purchased from USB IF

    •   product-id: Vendor unique product identifier

    •   name: The device name as reported in descriptor or using usb_ids if None

    •   manufacturer: The device manufacturer as provided in descriptor or using usb_ids if None

    •   product-name: The device product name as reported by usb_ids vidpid lookup

    •   vendor-name: The device vendor name as reported by usb_ids vid lookup

    •   serial: Device serial string as reported by descriptor

    •   speed: Advertised device capable speed

    •   tree-positions: Position along all branches back to trunk device

    •   bus-power: macOS system_profiler only - actually bus current in mA not power!

    •   bus-power-used: macOS system_profiler only - actually bus current used in mA not power!

    •   extra-current-used: macOS system_profiler only - actually bus current used in mA not power!

    •   bcd-device: The device version

    •   bcd-usb: The supported USB version

    •   class-code: Class of interface provided by USB IF - only available when using libusb

    •   sub-class: Sub-class of interface provided by USB IF - only available when using libusb

    •   protocol: Prototol code for interface provided by USB IF - only available when using libusb

--bus-blocks=BUS_BLOCKS
    Specify the blocks which will be displayed for each bus and in what order
    Possible values:

    •   bus-number: System bus number identifier

    •   icon: Icon based on VID/PID

    •   name: Bus name from descriptor or usb_ids

    •   host-controller: Host Controller on macOS, vendor put here when using libusb

    •   pci-vendor: Understood to be vendor ID - it is when using libusb

    •   pci-device: Understood to be product ID - it is when using libusb

    •   pci-revision: Revsision of hardware

    •   port-path: syspath style port path to bus, applicable to Linux only

--config-blocks=CONFIG_BLOCKS
    Specify the blocks which will be displayed for each configuration and in what order
    Possible values:

    •   name: Name from string descriptor

    •   number: Number of config, bConfigurationValue; value to set to enable to configuration

    •   num-interfaces: Interfaces available for this configuruation

    •   attributes: Attributes of configuration, bmAttributes

    •   icon-attributes: Icon representation of bmAttributes

    •   max-power: Maximum current consumption in mA

--interface-blocks=INTERFACE_BLOCKS
    Specify the blocks which will be displayed for each interface and in what order
    Possible values:

    •   name: Name from string descriptor

    •   number: Interface number

    •   port-path: Interface port path, applicable to Linux

    •   class-code: Class of interface provided by USB IF

    •   sub-class: Sub-class of interface provided by USB IF

    •   protocol: Prototol code for interface provided by USB IF

    •   alt-setting: Interfaces can have the same number but an alternate settings defined here

    •   driver: Driver obtained from udev on Linux only

    •   sys-path: syspath obtained from udev on Linux only

    •   num-endpoints: An interface can have many endpoints

    •   icon: Icon based on ClassCode/SubCode/Protocol

--endpoint-blocks=ENDPOINT_BLOCKS
    Specify the blocks which will be displayed for each endpoint and in what order
    Possible values:

    •   number: Endpoint number on interface

    •   direction: Direction of data into endpoint

    •   transfer-type: Type of data transfer endpoint accepts

    •   sync-type: Synchronisation type (Iso mode)

    •   usage-type: Usage type (Iso mode)

    •   max-packet-size: Maximum packet size in bytes endpoint can send/recieve

    •   interval: Interval for polling endpoint data transfers. Value in frame counts. Ignored for Bulk & Control Endpoints. Isochronous must equal 1 and field may range from 1 to 255 for interrupt endpoints

-m, --more=MORE
    Print more blocks by default at each verbosity

--sort-devices=SORT_DEVICES
    Sort devices by value
    Possible values:

    •   branch-position: Sort by position in parent branch

    •   device-number: Sort by bus device number

    •   no-sort: No sorting; whatever order it was parsed

--sort-buses=SORT_BUSES
    Sort devices by bus number

--group-devices=GROUP_DEVICES [default: no-group]
    Group devices by value when listing
    Possible values:

    •   no-group: No grouping

    •   bus: Group into buses with bus info as heading - like a flat tree

--hide-buses=HIDE_BUSES
    Hide empty buses when printing tree; those with no devices. When listing will hide Linux root_hubs

--hide-hubs=HIDE_HUBS
    Hide empty hubs when printing tree; those with no devices. When listing will hide hubs regardless of whether empty of not

--decimal=DECIMAL
    Show base16 values as base10 decimal instead

--no-padding=NO_PADDING
    Disable padding to align blocks - will cause --headings to become maligned

--no-colour=NO_COLOUR
    Disable coloured output, can also use NO_COLOR environment variable

--ascii=ASCII
    Disables icons and utf-8 charactors

--headings=HEADINGS
    Show block headings

--json=JSON
    Output as json format after sorting, filters and tree settings are applied; without -tree will be flattened dump of devices

--from-json=FROM_JSON
    Read from json output rather than profiling system - must use --tree json dump

-F, --force-libusb=FORCE_LIBUSB
    Force libusb profiler on macOS rather than using/combining system_profiler output

-c, --config=CONFIG
    Path to user config file to use for custom icons, colours and default settings

-z, --debug=DEBUG
    Turn debugging information on. Alternatively can use RUST_LOG env: INFO, DEBUG, TRACE

--mask-serials=MASK_SERIALS
    Mask serial numbers with '*' or random chars
    Possible values:

    •   hide: Hide with '*' char

    •   scramble: Mask by randomising existing chars

    •   replace: Mask by replacing length with random chars

-h, --help
    Print help (see a summary with '-h')

-V, --version
    Print version

VERSION
v1.3.1

AUTHORS
John Whittington <john@jbrengineering.co.uk>