zerowire
A wireless USB hub. Plug a USB device into an Android phone; use it from any computer or phone on the same WiFi. No cables to the host, no cloud, no account.
Free Apache-2.0 v0.3 · pre-hardware-verify
What it does
- Sender runs on an Android phone. Anything you plug into the phone's USB-C port — mouse, keyboard, gamepad, MIDI controller, label printer, microcontroller, mass-storage stick — gets shared on the LAN.
- Receivers are Linux / Windows / macOS / Android / iOS apps. They see the shared device as if it were plugged in locally.
- Discovery is mDNS. Auth is TLS 1.3 with a pairing-code PSK (HKDF-SHA256 → deterministic Ed25519 cert; both sides pin). Wrong PSK → handshake fails.
Status — v0.3
- ✅ v0.1 — HID fast-lane end-to-end (mouse/keyboard reports over the wire). Loopback verified.
- ✅ v0.2 — TLS 1.3 PSK auth + USB/IP receive path. Loopback verified.
- ✅ v0.3 — Android-side USB/IP URB pump. Control, bulk, and interrupt transfers work; isochronous returns
-EOPNOTSUPPcleanly. Verified by a Rust fixture standing in for the phone. - ⏳ Real-hardware verify still pending. Everything passes synthetic and loopback tests; a real Android phone with a real USB device on the other end is the next gate.
Platform support
| Platform | What you get | How |
|---|---|---|
| Linux | Any USB device | Built-in vhci-hcd + userspace daemon |
| Windows | Any USB device | Bundled signed usbip-win2 driver (v0.4) |
| macOS | Any USB device | DriverKit System Extension (HID-only fallback if Apple delays the entitlement) |
| Android receiver | HID + companion API | Accessibility Service injection; AIDL for apps |
| iOS receiver | HID only | Sender phone exposes Bluetooth HID alongside WiFi handshake |
Honest limits
- iOS is HID-only, ever. Apple does not allow third-party USB injection.
- Some Android phones disable USB host mode. The sender detects and refuses.
- Isochronous endpoints (USB audio, webcams) may not work on every Android device —
UsbDeviceConnectiondoesn't expose iso transfers. - v0.3 has not yet been validated on real hardware. Loopback tests pass; your phone may surprise us.
Get it
→ github.com/builtbyzero/zerowire
Open source, Apache-2.0. No paid tier yet — if/when there is one, it'll be on the sender app, and the receivers + protocol stay free forever.