Dump the USB Device Tree with system_profiler

Scriptable System Information: every USB device, hub, speed, and power draw in JSON.

macOShardwareusbDiagnosticssystem_profilerLow risk
Run `system_profiler SPUSBDataType` for a readable tree or add `-json` to pipe it into jq for scripting.

01Command

Command
$ system_profiler SPUSBDataType -json | jq

02What it does

system_profiler has a dedicated data type for every hardware domain: SPUSBDataType, SPThunderboltDataType, SPNVMeDataType, SPAudioDataType and more. The JSON output includes product IDs, negotiated speeds, and how much current each port supplies — perfect for diagnosing a drive that won't enumerate. Use -detailLevel mini for speed when you only need names, or pass a second query like `system_profiler SPUSBDataType SPAudioDataType`.

03Risk

RiskLow risk

04Undo

✓No undo needed — this command does not change persistent state.

05Sources

Last verified: 2026-09-17 · Category: System & Settings

06Related solutions