Desktop app for controlling and mirroring an Android device over ADB on Windows.
The app combines:
- A React + TypeScript frontend (Vite)
- A Tauri (Rust) backend that runs ADB/scrcpy commands
- Detect default network gateway from Windows
- List connected ADB devices
- Switch device to TCP/IP mode on port 5555
- Connect to device over Wi-Fi using gateway:5555
- Start scrcpy mirroring
- Send quick actions:
- Home button
- Power button
- PIN entry
- Windows 10/11
- Node.js (recommended LTS)
- Rust toolchain (Cargo + rustc)
- Tauri v2 build requirements for Windows (MSVC/Build Tools + WebView2)
- Android device with Developer Options and USB debugging enabled
adb.exeandscrcpy.exeavailable by one of these methods:- In a folder you select in the app (recommended)
- Or on your system PATH
src/React UI componentssrc-tauri/src/commands.rsTauri commands that execute ADB/scrcpy operationssrc-tauri/src/lib.rsTauri app setup and command registrationscrcpy/helper folder for local scrcpy/adb-related binaries and scripts
npm installnpm run tauri devThis starts:
- Vite dev server (
http://localhost:5173) - Tauri desktop shell
If you only want the frontend:
npm run devnpm run tauri build- Launch the app.
- Click the folder button and select the directory containing both
adb.exeandscrcpy.exe. - Click Get Gateway.
- Click Set Port (sets ADB TCP mode to
5555). - Click Connect ADB.
- Click Start Mirror.
- Use Go Home, Power Button, and Enter PIN as needed.
npm run dev- Start Vite frontendnpm run build- TypeScript build + Vite production buildnpm run lint- Run ESLintnpm run preview- Preview Vite buildnpm run tauri dev- Run desktop app in dev modenpm run tauri build- Build desktop app
- "Missing binaries in path"
- Ensure the selected folder contains both
adb.exeandscrcpy.exe.
- Ensure the selected folder contains both
- ADB connect fails
- Verify device is authorized via USB first (
adb devices). - Ensure phone and PC are on the same network.
- Re-run Set Port and Connect ADB.
- Verify device is authorized via USB first (
- Mirror does not start
- Confirm
scrcpy.exeis valid and executable. - Try launching
scrcpy.exemanually once to confirm dependencies.
- Confirm
- Current implementation targets Windows command behavior.
- Some UI sections (for example mirror toggles/browser area) are present as placeholders and may not yet be fully wired to backend command arguments.