Can I List USB devices on OSX - similar to lsusb on Linux. I know I can access from System Information.


2 Answers 2


In addition to system_profiler SPUSBDataType (suggested by @kjs), you can also use ioreg -p IOUSB:

$ ioreg -p IOUSB 
+-o Root  <class IORegistryEntry, id 0x100000100, retain 10>
  +-o EHCI Root Hub Simulation@1A,7  <class IOUSBRootHubDevice, id 0x100000227,$
  | +-o HubDevice@fa100000  <class IOUSBHubDevice, id 0x10000027a, registered, $
  | | +-o Apple Internal Keyboard / Trackpad@fa120000  <class IOUSBDevice, id 0$
  | | +-o BRCM2070 Hub@fa110000  <class IOUSBHubDevice, id 0x1000002b4, registe$
  | |   +-o Bluetooth USB Host Controller@fa113000  <class IOUSBDevice, id 0x10$
  | +-o FaceTime HD Camera (Built-in)@fa200000  <class IOUSBDevice, id 0x100000$
  +-o EHCI Root Hub Simulation@1D,7  <class IOUSBRootHubDevice, id 0x100000228,$
    +-o HubDevice@fd100000  <class IOUSBHubDevice, id 0x10000027b, registered, $
      +-o IR Receiver@fd110000  <class IOUSBDevice, id 0x100000288, registered,$

By default it clips to the window's width (80 chars in the example above), so you may want to add -w0 to get a full-width display. Also, adding -l will show details (probably more than you need) about each of the devices:

$ ioreg -p IOUSB -w0 -l
    +-o Root  <class IORegistryEntry, id 0x100000100, retain 10>
  | {
  |   "IOKitBuildVersion" = "Darwin Kernel Version 14.0.0: Fri Sep 19 00:26:44 PDT 2014; root:xnu-2782.1.97~2/RELEASE_X86_64"
  |   "OS Build Version" = "14B25"
  |   "OSKernelCPUSubtype" = 3
  |   "OSKernelCPUType" = 16777223
  |   "OSPrelinkKextCount" = 185
  |   "IOConsoleLocked" = No
  |   "IORegistryPlanes" = {"IOACPIPlane"="IOACPIPlane","IOPower"="IOPower","IODeviceTree"="IODeviceTree","IOService"="IOService","IOUSB"="IOUSB","IOFireWire"="IOFireWire"}

[EDIT]: If you just want the device names, you can filter the basic list to trim the junk:

$ ioreg -p IOUSB -w0 | sed 's/[^o]*o //; s/@.*$//' | grep -v '^Root.*'
EHCI Root Hub Simulation
Apple Internal Keyboard / Trackpad
BRCM2070 Hub
Bluetooth USB Host Controller
FaceTime HD Camera (Built-in)
EHCI Root Hub Simulation
IR Receiver
  • still shows more than I wanted, but is a convenient 1 line per device list
    – Milliways
    Feb 2, 2015 at 3:11
  • 1
    Is there a convenient way to use this information to mount a device? I have a nook that ioreg shows as connected, but diskutil list does not show it. Is there any info from ioreg that I could use to mount the nook? Oct 19, 2016 at 21:11
  • @stiemannkj1: I'm not familiar with nooks, so I'm not sure how they're supposed to show up on a Mac. As I understand it, mounting it will require a device drive that recognizes it as something disk-line (should the standard USB driver do this?), and having something like a recognizable filesystem on it. I'm not familiar enough with the driver system to know how to check this, but I don't think ioreg can tell you what you want to know. Oct 19, 2016 at 22:57
  • You can always pipe the output, such as to Sublime: ioreg -p IOUSB -w0 -l | subl. This ioreg command also shows the devices that my virtual box is using, which is really helpful.
    – rjferguson
    Jun 27, 2019 at 22:24
  • Unfortunately this command do not shows devices if they are connected throw dongle.
    – Ramis
    Feb 19, 2021 at 8:34

Run this command in a shell

system_profiler SPUSBDataType

This is the commandline equivalent of the System Profiler app.

  • Comments are not for extended discussion; this conversation has been moved to chat.
    – bmike
    Jan 19, 2021 at 22:17
  • 1
    you could add that this is the command-line counterpart of "System Information" UI app. Jun 3, 2021 at 8:12

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .