New in version 1.6
v1.6: Adds standby wake for Kodi remotes — the TV wakes and Kodi comes to the front when Yatse Remote Starter or Kore sends its wake packet. The on-device HTTP port is now configurable, with the default unchanged at 8080. The battery-exemption prompt opens the system settings screen instead of asking for a restricted permission. Contributed by Nicolas da Luz Duque.
TV Remote turns your Android TV into a self-hosted web remote that any device on your local network can control — phone, tablet, laptop — without installing any app on the controller device.
HOW IT WORKS
The app runs a tiny HTTP server (port 8080) directly on your TV. Open http://<tv-ip>:8080 in any browser and you get a full remote control interface. Input is injected via ADB loopback — the app connects to the TV's own ADB daemon at 127.0.0.1:5555, so no root is required.
FEATURES
• D-pad navigation (up, down, left, right, OK/Enter)
• Back, Home, Menu buttons
• Volume up / down / mute
• Power / sleep toggle
• Channel up / down rocker + numeric keypad (0–9)
• Keyboard text input — type into any focused field on the TV
• Google Assistant launch
• Works from any browser on the same LAN — no app needed on the controller
PRIVACY
Completely local. No data leaves your network. No accounts, no telemetry, no analytics, no ads.
REQUIREMENTS
• Android TV or Google TV device (Android 8.0+)
• Developer Options enabled on the TV
• ADB over network enabled (TCP/IP mode, port 5555)
• Both the TV and the controller must be on the same LAN
The app starts automatically on boot and runs as a foreground service to stay alive when the TV is in use.
Open source (MIT) — source code at https://github.com/Legvan/tv-remote
Versions
Although APK downloads are available below to give you the choice, you should be aware that by installing that way you will not receive update notifications and it's a less secure way to download. We recommend that you install the F-Droid client and use that.
Download F-Droid
-
This version requires Android 8.0 or newer.
It is built and signed by the original developer, and guaranteed to correspond to this source tarball.
Permissions
-
view network connections
Allows the app to view information about network connections such as which networks exist and are connected.
-
view Wi-Fi connections
Allows the app to view information about Wi-Fi networking, such as whether Wi-Fi is enabled and name of connected Wi-Fi devices.
-
connect and disconnect from Wi-Fi
Allows the app to connect to and disconnect from Wi-Fi access points and to make changes to device configuration for Wi-Fi networks.
-
run foreground service
Allows the app to make use of foreground services.
-
run foreground service with the type "connectedDevice"
Allows the app to make use of foreground services with the type "connectedDevice"
-
have full network access
Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet.
-
run at startup
Allows the app to have itself started as soon as the system has finished booting. This can make it take longer to start the phone and allow the app to slow down the overall phone by always running.
-
prevent phone from sleeping
Allows the app to prevent the phone from going to sleep.
-
com.porter.tvremote.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
Download APK
3.9 MiB
PGP Signature
|
Build Log
New in version 1.5
v1.5: Fixes a crash on Android 14 and newer, where the server failed to start because the manifest was missing a permission that the connectedDevice service type requires. Reported by a user on Android 14; the app was unaffected on Android 12 and older. No other changes to the remote.
-
This version requires Android 8.0 or newer.
It is built and signed by the original developer, and guaranteed to correspond to this source tarball.
Permissions
-
view network connections
Allows the app to view information about network connections such as which networks exist and are connected.
-
view Wi-Fi connections
Allows the app to view information about Wi-Fi networking, such as whether Wi-Fi is enabled and name of connected Wi-Fi devices.
-
connect and disconnect from Wi-Fi
Allows the app to connect to and disconnect from Wi-Fi access points and to make changes to device configuration for Wi-Fi networks.
-
run foreground service
Allows the app to make use of foreground services.
-
run foreground service with the type "connectedDevice"
Allows the app to make use of foreground services with the type "connectedDevice"
-
have full network access
Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet.
-
run at startup
Allows the app to have itself started as soon as the system has finished booting. This can make it take longer to start the phone and allow the app to slow down the overall phone by always running.
-
prevent phone from sleeping
Allows the app to prevent the phone from going to sleep.
-
com.porter.tvremote.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
Download APK
3.9 MiB
PGP Signature
|
Build Log
New in version 1.4
v1.4: Targets Android 16 (API 36) as required by Google Play. Handles the mandatory edge-to-edge layout so the UI no longer sits under the system bars on phones. No changes to the remote itself.
-
This version requires Android 8.0 or newer.
It is built and signed by the original developer, and guaranteed to correspond to this source tarball.
Permissions
-
view network connections
Allows the app to view information about network connections such as which networks exist and are connected.
-
view Wi-Fi connections
Allows the app to view information about Wi-Fi networking, such as whether Wi-Fi is enabled and name of connected Wi-Fi devices.
-
run foreground service
Allows the app to make use of foreground services.
-
run foreground service with the type "connectedDevice"
Allows the app to make use of foreground services with the type "connectedDevice"
-
have full network access
Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet.
-
run at startup
Allows the app to have itself started as soon as the system has finished booting. This can make it take longer to start the phone and allow the app to slow down the overall phone by always running.
-
prevent phone from sleeping
Allows the app to prevent the phone from going to sleep.
-
com.porter.tvremote.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
Download APK
3.9 MiB
PGP Signature
|
Build Log