usbwidth is a Linux-native desktop utility designed to visualize your USB hardware hierarchy and intelligently identify performance bottlenecks. Built with Electron, React, and TypeScript, it provides real-time insights into how your peripherals are connected and whether they are operating at their full potential.
- 🔍 Live Topology Tree: Visualize your entire USB controller, hub, and device hierarchy in an interactive, real-time tree view.
- 🧠 Context-Aware Rule Engine: Intelligent status classification for every device:
- ✅ NORMAL: Devices operating at their intended speed.
⚠️ LIMITED: Devices functioning correctly but restricted by older standards (e.g., USB 2.0).- ❌ WARNING: High-bandwidth devices (SSDs, Capture Cards) severely bottlenecked by slow ports or shared hubs.
- 💡 Smart Recommendations: Actionable, prioritized suggestions to optimize your hardware setup.
- 🏷️ Bandwidth Tiering: Automatic classification of devices into LOW, MEDIUM, and HIGH bandwidth tiers based on hardware signatures.
- 🐧 Linux Native: Low-level integration with
sysfsandlsusb(no Windows-specific overhead).
- Framework: Electron
- Frontend: React + TypeScript
- Build Tool: Vite
- Styling: Vanilla CSS (Modern Dark Mode)
- Download the latest
usbwidth-Linux-x.x.x.AppImagefrom the Releases page. - Open your terminal in the download folder and make it executable:
chmod +x usbwidth-Linux-1.0.4.AppImage
- Important for Fedora/Sandboxed users: If the app fails to open, run it with the
--no-sandboxflag:./usbwidth-Linux-1.0.4.AppImage --no-sandbox
- Clone the repository:
git clone https://github.com/justd3ep/usbwidth.git cd usbwidth - Install dependencies & Run:
npm install npm run dev
The application traverses /sys/bus/usb/devices/ to build a real-time map of your system's hardware state. It calculates physical port paths and cross-references them against a weighted tier-mapping system to distinguish between a "slow" device (like a keyboard) and a "bottlenecked" device (like an SSD on a USB 2.0 hub).
Distributed under the MIT License. See LICENSE for more information.