Nuvmote
Bluetooth Remote & Controller
Turns your Android phone into a full input controller for any Bluetooth-capable host. Works as a standard Bluetooth HID device — so no drivers, no apps, and no configuration needed on the PC, TV, or other host.
ONE PHONE.
EIGHT CONTROL MODES.
Trackpad
One-finger move, tap, double-tap and drag. Two-finger scroll and right-click. Smooth, like a laptop trackpad.
Keyboard
Full QWERTY with modifier chording — Ctrl, Shift, Alt, Win/Cmd — and buffered text input.
TV Remote
D-Pad navigation with Back, Home, Menu and long-press repeat. Built for Android TV and Google TV.
Media
Play, Pause, Previous, Next, Fast Forward, Rewind, Volume and Mute via standard HID Consumer keys.
Gamepad
Normalized dual joysticks with deadzones, face buttons (A/B/X/Y), shoulder controls (L1/R1/L2/R2).
Presentation
Page navigation, slideshow start/stop, blackout toggle and elapsed presentation timer.
Numpad
Calculator-style numeric keypad for fast number entry on any connected host.
Macro Pad
One-tap custom key combos — Copy/Paste, Run Dialog, Save, Force Close, Lock Screen and more.
STANDARD BLUETOOTH HID.
NOTHING EXTRA NEEDED.
Nuvmote uses Android's native BluetoothHidDevice API to register your phone as a standard Bluetooth HID peripheral — the same protocol used by physical keyboards and mice.
Any Bluetooth-capable host that accepts standard HID devices will work with Nuvmote — no drivers to install, no server apps, no pairing ceremony beyond standard Bluetooth.
All input data is converted to HID scancodes in volatile memory and streamed directly over Bluetooth. It is never stored, logged, or transmitted elsewhere.
Phone requirements
Android 9.0+ with Bluetooth chipset supporting Peripheral mode. Some budget ROMs (older MIUI, Realme Go) disable the HID Device profile — the app displays "UNSUPPORTED" in this case.
Host requirements
Standard Bluetooth hardware with native HID keyboard/mouse support. Windows, macOS, Android TV, Linux, ChromeOS all work without additional configuration.
// Input pipeline — volatile only val report = PointerProcessor .toMouseReport(touchEvent) // Stream over Bluetooth HID hidDevice.sendReport( host, HidDescriptor.MOUSE_ID, report.toByteArray() ) // Never written to disk // Never uploaded anywhere // Expires when connection ends dataStore.updateData { // Only settings stored locally it.copy(sensitivity = value) }
TESTED PLATFORMS.
| Platform | Keyboard | Trackpad / Mouse | Media Keys | Gamepad |
|---|---|---|---|---|
| Windows 10 / 11 | ✓ | ✓ | ✓ | ✓ |
| macOS / iPadOS | ✓ | ✓ | ✓ | Supported (may need mapping) |
| Android TV / Google TV | ✓ | ✓ | ✓ | Supported |
| Linux (X11 / Wayland) | ✓ | ✓ | ✓ | ✓ |
| Android (Phone / Tablet) | ✓ | ✓ | ✓ | Supported |
| Samsung Tizen OS | ✓ | Model dependent | Volume / Mute | Varies by model |
| LG webOS | ✓ | Model dependent | Volume / Mute | Varies by model |
Local-first by design.
All HID input — keystrokes, trackpad movements, button presses — is processed in volatile memory and streamed directly over Bluetooth. It is never cached, logged, or stored.
Preferences (sensitivity, theme, scroll direction) are stored locally using Jetpack DataStore and are never uploaded to external servers.
Nuvmote includes Google AdMob ads and the Google UMP consent platform. These third-party components may collect advertising identifiers and network data as described in the full privacy policy.
Read the full privacy policyTAKE CONTROL.
Nuvmote is currently in development. When available, it will be listed on Google Play.