Use your Android phone as a mouse, keyboard and media remote for Windows.
- Mouse: trackpad, clicks, dragging, two-finger scrolling and pinch zoom.
- Keyboard: text, function keys and shortcuts.
- Media: volume, mute, play/pause and previous/next track.
The Android menu includes saved mouse, connection, theme and display settings.
Android and the Windows dashboard default to US English. Choose English or Português (Brasil) in the sidebar footer (below About on Android); changes apply immediately without disconnecting. Android saves its choice in the app; the dashboard saves it in the current browser profile.
On Windows, install Flutter, the Android SDK with NDK, Rust, Node.js, the .NET SDK (build only) and Visual Studio's Desktop development with C++ workload. The Iroh plugin compiles its Rust networking library for Android and Windows. Velopack SDK and CLI are pinned to 1.2.161. From the repository root:
.\scripts\build_windows.ps1
.\scripts\build_android.ps1Packages and SHA-256 checksums are written to output/windows/ and output/android/.
| Path | Purpose |
|---|---|
app/ |
Android Flutter client: views, view models and repositories |
web/src/ |
Browser dashboard; npm run build in web/ produces web/dist/ |
web/server/ |
Windows background host, tray and native input integration |
packages/remote_core/ |
Shared Dart protocol, encryption and diagnostics |
site/ |
Static project website; npm run dev previews it locally |
Android and Windows have separate dependencies and builds. The Windows ZIP includes the dashboard.
Run npm run dev from site/ to preview the website at http://127.0.0.1:4173/.
For dashboard development, start the Windows app and run npm run dev from web/. Open http://127.0.0.1:5173/; source changes reload automatically and API requests use the running Windows dashboard. Set ORC_DASHBOARD_URL if its loopback port differs from 47654.
- Extract the Windows ZIP into a user-writable directory and run its root
Open Remote Control.exelauncher. Double-click its tray icon to open the dashboard in your browser. - Install the Android APK. On the same network, select the discovered PC and approve the phone in the dashboard.
- To use the PC from another network, scan the dashboard's pairing QR and save the connection. The PC must remain running and connected to the internet.
Persistent connections use Iroh's free public infrastructure to find each other and, when a direct connection cannot be established, relay end-to-end encrypted traffic. These shared relays have rate limits and no uptime guarantee; operators can see connection metadata such as IP addresses. Local discovery remains available without the relay.
Windows checks for updates after startup; approve downloading and restarting on the dashboard's Updates page. From 0.2.1, stop the old server and extract the first managed ZIP into a new user-writable directory. Identity and paired phones are retained. Keep the managed directory in place: updates retain the executable path and its existing Windows Firewall authorization.
Android checks for compatible updates on startup and in About > Updates. Downloads require approval, can continue in the background, and can be cancelled. Android asks for installation permission and confirmation; updating preserves saved PCs and settings. Google Play and a Google account are not required.