Inspect which USB devices are connected and how they are nested under hubs.
Watch live activity graphs to see which USB device is transferring data.
Safely eject a USB storage device from the terminal on Linux.
Debug USB hardware issues by viewing vendor IDs, speeds, and power draw.
| gnomeria/usbtree | deeplethe/forkd | change-42-yhmm/quota-float | |
|---|---|---|---|
| Stars | 273 | 282 | 291 |
| Language | Rust | Rust | Rust |
| Setup difficulty | easy | hard | easy |
| Complexity | 2/5 | 4/5 | 2/5 |
| Audience | developer | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
Ships as a single dependency free binary installable via Homebrew, shell script, or Cargo, no root access needed for basic use.
usbtree is a terminal app that shows you a live picture of every USB device plugged into your computer, arranged as a tree so you can see which devices are connected through which hubs. It works on Linux, macOS, and Windows, and it does not need root access or any extra libraries installed, since it talks to USB devices through a pure Rust library instead. The tree updates once a second and shows each device's speed, its class such as audio or storage, and how it is nested under hub devices. When you plug something in or unplug it, the change shows up immediately with a timestamped log of the event, and unplugged devices linger briefly in red before disappearing. A detail panel shows deeper information for a selected device, like its path in the system, vendor and product IDs, serial number, and connected children. On Linux only, it can also show live activity graphs of how much data each device is sending or receiving, with a more detailed version available if you run it as root. Other features include a safe eject option for storage devices on Linux, a view for PCI devices in addition to USB, live filtering to search the tree, and a demo mode that fakes a device tree with scripted activity so you can try the interface without any real hardware. Device names come from a chain of sources: your own personal overrides file, descriptor strings from the device itself, or a downloadable database of known vendor and product IDs. Installation is straightforward: a single small binary with no dependencies, installable through Homebrew, a shell script, a PowerShell script, or by building from source with Cargo. The project uses the MIT license and ships prebuilt binaries for common platforms and architectures.
A terminal app that shows a live, color coded tree of every USB device plugged into your computer, with details and real time activity graphs on Linux.
Mainly Rust. The stack also includes Rust, Ratatui, nusb.
MIT license: you can use, copy, modify, and distribute this freely, including commercially, as long as you keep the copyright notice.
Setup difficulty is rated easy, with roughly 5min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
double-check against the repo, no cap.