Automatically manages gnirehtet reverse tethering for Quest and other Android VR headsets over USB.
Explore the docs »
Download
·
Report Bug
·
Request Feature
TetherMate is a Windows 10/11 desktop app that automatically manages adb + gnirehtet reverse tethering for compatible Android-based VR headsets (Meta Quest 2 and similar). It lets you use a wired network connection over USB while still supporting Wi‑Fi–based streaming apps like Virtual Desktop.
- What it does
- How it works
- Requirements
- Usage
- Build & package (single-file EXE)
- Compatibility notes
- Third-party licenses
- Built with
TetherMate provides a stable, low-latency wired alternative for VR streaming by managing reverse tethering over USB. It watches connected ADB devices, selects a target device, and keeps gnirehtet running only when the device is ready.
- The app bundles the
adbandgnirehtetbinaries already in this repository. - On startup it extracts the binaries into
%LOCALAPPDATA%\TetherMate\bin. - A background monitor refreshes the device list via
adb devices -land probes ready devices usingadb shell getprop. - A device is considered ready when:
- ADB reports it in
devicestate, and - It responds to
adb shell getpropprobes.
- ADB reports it in
gnirehtetauto-starts when the selected device becomes ready and stays ready for a few seconds (debounce).gnirehtetauto-stops when the selected device is disconnected, unauthorized, offline, or otherwise not ready.- If you change the selected target device, the app stops the current session and starts a new one if the new device is ready.
- Windows 10/11
- .NET 8 SDK (build-time only)
- Connect your headset/device via USB and accept the ADB authorization prompt inside the headset.
- The device will appear in the Connected ADB devices list.
- Use the Target device dropdown to select the device to manage.
- Manual Start / Stop / Restart controls are provided for overrides.
The headset must have Developer Mode enabled and USB/ADB debugging turned on, or the app will never see it as ready.
- Enable Developer Mode for the headset in the Meta Quest mobile app (Device settings → Developer Mode).
- On the headset, open Settings → System → Developer and toggle USB debugging on.
- Connect the headset via USB and accept the Allow USB debugging prompt inside the headset.
- Unauthorized: Put on the headset/device and accept the USB debugging prompt.
- Offline: Replug the USB cable or toggle USB debugging in the headset settings.
- No devices listed:
- Ensure USB debugging is enabled.
- Try a different USB cable/port.
- Verify that the headset is powered on and awake.
- gnirehtet errors: Check the log panel for the exact error output.
./build.ps1This produces a single, self-contained EXE at:
./dist/TetherMate.exe
dotnet publish src/TetherMate/TetherMate.csproj -c Release -r win-x64 -p:PublishSingleFile=true -p:SelfContained=true -p:IncludeAllContentForSelfExtract=true -o dist- The app targets Windows 10/11 and uses WPF for a native UI.
- The
gnirehtetCLI is invoked with the-s <serial>argument to target the selected device.
This project is licensed under the Apache License 2.0. See LICENSE.
gnirehtetis licensed under the Apache License 2.0. Seelicenses/gnirehtet-LICENSE.txt.- Android platform tools (
adb.exe,AdbWinApi.dll,AdbWinUsbApi.dll) ship with third-party licenses. SeeNOTICE.txt, which includes Apache-2.0, MIT, BSD, ISC, OpenSSL/SSLeay, GPLv2, LGPLv2.1, and other license texts.
- C# / .NET 8
- WPF (Windows Presentation Foundation)
adb+gnirehtet