cyme(1)
π cyme(1) β General Commands Manual
okay bestie, this is cyme(1) from the General Commands Manual and she is that girl. Strap in π
β¨ 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] [--filter-exclude]
[-v|--verbose]... [-b|--blocks] [--bus-blocks] [--config-blocks]
[--interface-blocks] [--endpoint-blocks] [--block-operation] [-m|--more]
[--sort-devices] [--sort-buses] [--group-devices] [--hide-buses]
[--hide-hubs] [--list-root-hubs] [--decimal] [--no-padding] [--color]
[--encoding] [--icon] [--headings] [--json] [--from-json]
[-F|--force-libusb] [-c|--config] [-z|--debug]... [--mask-serials]
[--mute-hubs] [--system-profiler] [-h|--help] [-V|--version]
[subcommands]
πΈ DESCRIPTION πΈ
List system USB buses and devices. A modern cross-platform lsusb. that's it, that's the vibe. your USB situation, but make it iconic β¨
π OPTIONS π
-l,--lsusbβ tries really hard to keep the output compatible with plain oldlsusb, for the nostalgia girlies π«Ά-t,--treeβ dumps the whole USB device hierarchy as a tree, branch by branch, like a little family tree but for hardware π³-d,--vidpid <VID:[PID]>β shows only the devices rocking that vendor and product ID number you gave (hexadecimal, babe), formatted asVID:[PID]-s,--show <SHOW>β shows only the devices with that device number and/or bus number (decimal, ngl), formatted as[[bus]:][devnum]-D,--device <DEVICE>β picks which devicelsusbwill examine β you hand it over as a Linux/dev/bus/usb/BBB/DDDstyle path--filter-name <FILTER_NAME>β filters on whatever string is hanging out inside the name--filter-serial <FILTER_SERIAL>β filters on whatever string is hanging out inside the serial--filter-class <FILTER_CLASS>β filters on the USB class code. the possible values are lowkey a lot, so:use-interface-descriptorβ the device class is unspecified, so interface descriptors get used to figure out which drivers are neededaudioβ speaker, microphone, sound card, MIDI π§cdc-communicationsβ the modern serial interface; shows up as a UART/RS232 port on most systemshidβ Human Interface Device; game controllers, keyboards, mice etc. also super commonly used as a device data interface rather than creating something from scratchphysicalβ force feedback joystickimageβ still imaging device; scanners, cameras πΈprinterβ laser printer, inkjet printer, CNC machinemass-storageβ Mass storage devices (MSD): USB flash drive, memory card reader, digital audio player, digital camera, external drivehubβ high speed USB hubcdc-dataβ used together with class 02h (Communications and CDC Control) abovesmart-cardβ USB smart card readercontent-securityβ fingerprint readervideoβ webcampersonal-healthcareβ pulse monitor (watch)audio-videoβ webcam, TVbillboardβ describes the USB-C alternate modes supported by the deviceusb-type-c-bridgeβ an interface to expose and configure the USB Type-C capabilities of Connectors on USB Hubs or Alternate Mode Adaptersbdpβ this base class is defined for devices that conform to the "VESA USB BDP Device Specification" found at the VESA website. This specification defines the usable set of SubClass and Protocol values. Values outside of this defined spec are reserved. These class codes can only be used in Interface Descriptorsmctpβ this base class is defined for devices that conform to the "MCTP over USB" found at the DMTF website as DSP0283. This specification defines the usable set of SubClass and Protocol values. Values outside of this defined spec are reserved. These class codes can only be used in Interface Descriptorsi3c-deviceβ an interface to expose and configure the I3C function within a USB device to allow interaction between host software and the I3C device, to drive transactions on the I3C bus to/from target devicesdiagnosticβ trace and debugging equipmentwireless-controllerβ wireless controllers: Bluetooth adaptors, Microsoft RNDISmiscellaneousβ this base class is defined for miscellaneous device definitions. Some matching SubClass and Protocols are defined on the USB-IF websiteapplication-specific-interfaceβ this base class is defined for devices that conform to several class specifications found on the USB-IF websitevendor-specific-classβ this base class is defined for vendors to use as they please
--filter-exclude <KEY=VALUE>β excludes devices matching aKEY=VALUEcriteria.KEYis one of:vidpid,name,serial,class,bus,number. Comma-separate multipleKEY=VALUEpairs to AND them (one occurrence). Repeat the arg to OR exclusions. yes bestie, AND and OR, she contains multitudes π-v,--verboseβ verbosity level (repeat it to build up the count):1prints device configurations;2prints interfaces;3prints interface endpoints;4prints everything and more blocks. go off, she's nosy and we love that for her-b,--blocks <BLOCKS>...β specifies the blocks that get displayed for each device and in what order. Supply the arg multiple times or as csv to specify multiple blocks.
[default: bus-number,device-number,icon,vendor-id,product-id,name,serial,speed]
Possible values:
bus-numberβ number of the bus device is attached todevice-numberβ bus issued device numberbranch-positionβ position of the device in its parent branchport-pathβ Linux style port pathsys-pathβ Linux udev reported syspathdriverβ Linux udev reported driver loaded for the deviceiconβ icon based on VID/PIDvendor-idβ unique vendor identifier β purchased from USB IFproduct-idβ vendor unique product identifiervid-pidβ unique vendor identifier and product identifier as a string formatted'vid:pid'likelsusbnameβ the device name as reported in descriptor, or usingusb_idsif Nonemanufacturerβ the device manufacturer as provided in descriptor, or usingusb_idsif Noneproduct-nameβ the device product name as reported by theusb_idsvidpid lookupvendor-nameβ the device vendor name as reported by theusb_idsvid lookupserialβ device serial string as reported by descriptorspeedβ advertised device capable speednegotiated-speedβ negotiated device speed as connectedspeed-labelβ advertised device speed as the USB-IF label stringnegotiated-speed-labelβ negotiated device speed as the USB-IF label stringtree-positionsβ position along all branches back to the trunk devicebus-powerβ macOSsystem_profileronly β actually bus current in mA not power!bus-power-usedβ macOSsystem_profileronly β actually bus current used in mA not power!extra-current-usedβ macOSsystem_profileronly β actually bus current used in mA not power!bcd-deviceβ the device versionbcd-usbβ the supported USB versionbase-classβ base class enum of the interface provided by USB IF β only available when using libusbsub-classβ sub-class value of the interface provided by USB IF β only available when using libusbprotocolβ protocol value for the interface provided by USB IF β only available when using libusbuid-classβ class name from the USB IDs repositoryuid-sub-classβ sub-class name from the USB IDs repositoryuid-protocolβ protocol name from the USB IDs repositoryclassβ fully defined USB Class Code enum based on the BaseClass/SubClass/Protocol tripletbase-valueβ base class as a number value rather than an enumlast-eventβ last time the device was seenevent-iconβ event iconoperation-modeβ advertised device speed as a USB-IF Gen NxM operation mode string (e.g.'USB 3.2 Gen 2x1')negotiated-operation-modeβ negotiated device speed as a USB-IF Gen NxM operation mode stringspeed-marketing-labelβ advertised device speed as the USB-IF recommended marketing label (e.g.'USB 5 Gbps')negotiated-speed-marketing-labelβ negotiated device speed as the USB-IF recommended marketing label
--bus-blocks <BUS_BLOCKS>...β specifies the blocks that get displayed for each bus and in what order. Supply the arg multiple times or as csv to specify multiple blocks.
[default: port-path,name,host-controller,host-controller-device]
Possible values:
bus-numberβ system bus number identifiericonβ icon based on VID/PIDnameβ system internal bus name based on the Root Hub device namehost-controllerβ system internal bus provider namehost-controller-vendorβ vendor name of the PCI Host Controller frompci.idshost-controller-deviceβ device name of the PCI Host Controller frompci.idspci-vendorβ PCI vendor ID (VID)pci-deviceβ PCI device ID (PID)pci-revisionβ PCI Revision IDport-pathβ syspath style port path to the bus, applicable to Linux only
--config-blocks <CONFIG_BLOCKS>...β specifies the blocks that get displayed for each configuration and in what order. Supply the arg multiple times or as csv to specify multiple blocks.
[default: number,icon-attributes,max-power,name]
Still on the --config-blocks possible values, bestie β finishing the list π
nameβ the Name straight out of the string descriptornumberβ the Number of config, i.e.bConfigurationValue; the value you set to enable the configurationnum-interfacesβ how many Interfaces are available for this configurationattributesβ the Attributes of the configuration, akabmAttributesicon-attributesβ an Icon representation ofbmAttributesmax-powerβ Maximum current consumption in mA--interface-blocks <INTERFACE_BLOCKS>...β okay so this one picks which blocks show up for each interface and the order they show up in β¨ Supply the arg multiple times or as csv to give multiple blocks.
[default: port-path,icon,alt-setting,base-class,sub-class]
Possible values:
nameβ Name from string descriptornumberβ Interface numberport-pathβ Interface port path (only applicable on Linux)base-classβ Base class enum of interface provided by USB IFsub-classβ Sub-class value of interface provided by USB IFprotocolβ Protocol value for interface provided by USB IFalt-settingβ Interfaces can have the same number but an alternate settings defined heredriverβ Driver obtained from udev (Linux only)sys-pathβ syspath obtained from udev (Linux only)dev-pathβ The/dev/device paths for the interface if any exist (Linux only)mount-pathsβ Mount paths for MSD interfaces in CSVpartition_no:mount_pathformat (Linux only)num-endpointsβ An interface can have many endpointsiconβ Icon based on BaseClass/SubCode/Protocoluid-classβ Class name from USB IDs repositoryuid-sub-classβ Sub-class name from USB IDs repositoryuid-protocolβ Protocol name from USB IDs repositoryclassβ Fully defined USB Class Code based on BaseClass/SubClass/Protocol tripletbase-valueβ Base class as number value rather than enum
--endpoint-blocks <ENDPOINT_BLOCKS>...β same deal but for each endpoint π Which blocks, and in what order. Supply arg multiple times or csv to specify multiple blocks.
[default: number,direction,transfer-type,sync-type,usage-type,max-packet-size]
Possible values:
numberβ Endpoint number on interfacedirectionβ Direction of data into endpointtransfer-typeβ Type of data transfer endpoint acceptssync-typeβ Synchronisation type (Iso mode)usage-typeβ Usage type (Iso mode)max-packet-sizeβ Maximum packet size in bytes endpoint can send/receiveintervalβ 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
--block-operation <BLOCK_OPERATION>β the Operation to perform on the blocks you supplied via--blocks,--bus-blocks,--config-blocks,--interface-blocksand--endpoint-blocksπ«Ά
Default is add for ease of use; new is more explicit and was the legacy behaviour (< 2.3.0)
[default: add]
Possible values:
addβ Add new blocks to the existing blocks, ignoring duplicatesappendβ Append new blocks to the end of the existing blocksnewβ Replace all blocks with new onesprependβ Prepend new blocks to the start of the existing blocksremoveβ Remove matching blocks from the existing blocks
-m,--moreβ Print more blocks by default at each verbosity. Lowkey just gives you more π
Only works if --blocks,--x--blocks not supplied as args or in config
--sort-devices <SORT_DEVICES>β the Sort devices operation, iykyk
[default: device-number (flat), branch-position (tree)]
Possible values:
device-numberβ Sort by bus device numberbranch-positionβ Sort by position in parent branchno-sortβ No sorting; whatever order it was parsed
--sort-busesβ Sort devices by bus number. If using anysort-devicesother thanno-sort, this happens automatically β¨--group-devices <GROUP_DEVICES>β Group devices by value when listing
[default: no-group]
Possible values:
no-groupβ No groupingbusβ Group into buses with bus info as heading β like a flat tree
--hide-busesβ Hide empty buses when printing tree; those with no devices. Ghost buses, be gone π--hide-hubsβ Hide empty hubs when printing tree; those with no devices. When listing will hide hubs regardless of whether empty of not--list-root-hubsβ Show root hubs when listing; Linux only π§--decimalβ Show base16 values as base10 decimal instead. It's giving math class fr fr--no-paddingβ Disable padding to align blocks β will cause--headingsto become maligned π (yes bestie, it will look a mess, that's the trade)--color <COLOR>β Output coloring mode π
[default: auto]
Possible values:
autoβ Show colours if the output goes to an interactive consolealwaysβ Always apply colouring to the outputneverβ Never apply colouring to the output
--encoding <ENCODING>β Output character encoding
[default: glyphs]
Possible values:
glyphsβ Use UTF-8 private use area characters such as those used by NerdFont to show glyph iconsutf8β Use only standard UTF-8 characters for the output; no private use area glyph iconsasciiβ Use only ASCII characters for the output;0x00-0x7F(127 chars)
--icon <ICON>β When to print icon blocks π
[default: auto]
Possible values:
autoβ Show icon blocks if the [Encoding] supports icons matched in the [icon::IconTheme]alwaysβ Always print icon blocks if included in configured blocksneverβ Never print icon blocks
--headingsβ Show block headings π--jsonβ Output as json format after sorting, filters and tree settings are applied; without-treewill be flattened dump of devices--from-json <FROM_JSON>β Read from json output rather than profiling system. Replay era β¨-F,--force-libusbβ Force pure libusb profiler on macOS rather than combiningsystem_profileroutput
Has no effect on other platforms or when using nusb
-c,--config <CONFIG>β Path to user config file to use for custom icons, colours and default settings π-z,--debugβ Turn debugging information on. Alternatively can useRUST_LOGenv:INFO,DEBUG,TRACE--mask-serials <MASK_SERIALS>β Mask serial numbers with'*'or random chars π Privacy slay.
Possible values:
no-maskβ No maskinghideβ Hide with'*'charscrambleβ Mask by randomising existing charsreplaceβ Mask by replacing length with random chars
--mute-hubsβ Apply muted colour to hub device lines instead of per-block colours--system-profilerβ Use thesystem_profilercommand on macOS to get USB data
If not using nusb this is the default for macOS, merging with libusb data for verbose output. nusb uses IOKit directly so does not use system_profiler by default
-h,--helpβ Print help (see a summary with'-h')-V,--versionβ Print version
β¨ SUBCOMMANDS β¨
cyme-watch(1)β Watch for USB devices being connected and disconnected π the main character of hot-plugging honestlycyme-help(1)β Print this message or the help of the given subcommand(s)
π¦ VERSION π¦
v3.0.2
πΈ AUTHORS πΈ
John Whittington <john@jbrengineering.co.uk> β the icon who made all this happen, no cap π
and that's the whole page bestie, you ate that π this was cyme version 3.0.2, documented right here in the cyme(1) manual page β go forth and enumerate your USB tree with main character energy π
β¨π«Ά
π¦ where this page comes from
- alpine 3.24: cyme-doc 3.0.2-r0 Β· GPL-3.0-or-later
- arch rolling: cyme 3.0.2-1 Β· GPL-3.0-or-later
- nixpkgs unstable: cyme 3.0.2
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms