Connect a microcontroller or Arduino USB port to WSL 2 so you can flash firmware or run serial tools from Linux.
Share a USB security key or smart card from a Windows host into a Linux virtual machine running under WSL 2.
Access a USB camera or sensor from inside WSL 2 for development with tools like OpenCV.
| dorssel/usbipd-win | chillicream/graphql-platform | dockersamples/example-voting-app | |
|---|---|---|---|
| Stars | 5,700 | 5,702 | 5,691 |
| Language | C# | C# | C# |
| Setup difficulty | moderate | moderate | easy |
| Complexity | 2/5 | 3/5 | 2/5 |
| Audience | developer | developer | vibe coder |
Figures from each repo's GitHub metadata at analysis time.
Requires Windows 10 or newer with WSL 2 already installed, USB device must be manually re-attached from WSL 2 after each reboot.
This project lets you share a USB device connected to a Windows machine with another computer or virtual machine running Linux. The most common use case is connecting a physical USB device, such as a microcontroller, a camera, or a security key, into a Linux environment running under WSL 2 (Windows Subsystem for Linux) on the same Windows PC. Normally, WSL 2 runs Linux inside a virtual machine on Windows, which means it cannot directly see USB devices plugged into the Windows host. This software bridges that gap by running a background service on Windows that makes USB devices available over the network using a protocol called USBIP. The Linux side can then attach to that service and use the device as if it were plugged in locally. Installation is straightforward: you run an installer file or use the Windows Package Manager command winget install usbipd. The installer adds a background service, a command-line tool, and a firewall rule. From there, you use simple commands to list your USB devices, mark one as shared, and then attach it from the Linux side. Sharing a device persists across reboots, though you need to re-attach on the Linux side after a reboot or if the device is unplugged. For WSL 2 users specifically, attaching a device can be done entirely from within Windows with a single command, without needing administrator rights on the Linux side. A list of GUI tools and IDE integrations is available in the project wiki for those who prefer not to use a command line. The software supports Windows 10 and Windows Server 2019 or newer. It is released under the GPL-3.0 license.
A Windows background service that lets you share any USB device plugged into your Windows PC with a Linux environment running in WSL 2, using simple command-line tools and no admin rights on the Linux side.
Mainly C#. The stack also includes C#, Windows, WSL2.
GPL-3.0, free to use and modify, but any software you distribute that includes this code must also be released as open source under the GPL.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.