A free, ad-free, glassy remote control for your Android TV. No ads. No account. No tracking. No limits. It never freezes on you.
New in 0.5.0: open a link on the TV, a health screen that shows what is using the CPU and memory, one-tap cache cleaning and an optional automatic restart.
Most TV remote apps are full of ads, locked behind subscriptions, limited to a few buttons, and crash at the worst moment. GlassRemote is a small, fast, open-source web app that does one thing: control your TV.
- Liquid Glass design made for the iPhone 16 Pro, and it looks great on Android too
- Zero ads, zero accounts, zero analytics. Everything stays on your home network
- Installs like a real app (PWA): add it to your home screen, no App Store needed
- Pure HTML, CSS and JavaScript. No framework, no build step, no external libraries
| Navigation | D-pad, touch pad, number pad, home, back, menu |
| Keyboard | Full QWERTY, voice dictation, paste |
| Apps | Official app icons, recent apps, edit mode, one tap to launch |
| Scenes | "Cinema", "Night" and your own: app + volume + sleep timer in one tap |
| Sleep timer | Turn the TV off after 15, 30, 60 minutes or more |
| Many TVs | Favorites, quick TV switcher, automatic TV discovery |
| Siri / Shortcuts | Control the TV by voice through iOS Shortcuts |
| One-handed mode | Reachable layout for big phones |
| TV health | CPU, memory and running apps at a glance, a "Clean cache" button and an optional automatic restart (TV app only) |
| Fast keys | About 10 ms from tap to key on the TV app (it was about 1 s) |
| Open a link | Paste a YouTube or web link and open it on the TV (TV app only) |
| Languages | Italiano, English, Español, Français, Deutsch, Português. Automatic or chosen in Settings |
| Offline | The interface opens even with no connection |
- Keys are about 100 times faster on the TV app: a small helper inside the APK presses them in about 10 ms instead of about 1000 ms.
- New Open a link on the TV card on the Apps screen: paste a YouTube or web link and the TV wakes up and opens it in the app that handles it (TV app only).
- New TV health screen (Settings > TV health): CPU, memory, a plain-language verdict, a Processes list, and which apps use the CPU or memory.
- Clean cache button and an optional automatic restart (off by default, only when the TV is in standby).
- Snappier animations, and a safer "open a link or app on the TV" (http/https links only).
- Health, cache and restart exist only in the TV app, not in the computer receiver. Details: AppTv/guide/05-health-and-maintenance.md.
A web page cannot talk directly to a TV: browsers cannot open raw TCP sockets, and an HTTPS page cannot call a device on your home network. So GlassRemote needs a small receiver that sits between the phone and the TV. You can run it in two ways:
A) On the TV itself (no computer)
[ Phone: the app ] --Wi-Fi--> [ GlassRemoteTv, installed on the TV ] --local ADB--> [ the same TV ]
docs/ (PWA) tv-app/ (Android, plain Java)
B) On a computer
[ Phone: the app ] --Wi-Fi--> [ Receiver ] --Android TV Remote v2--> [ Your TV ]
docs/ (PWA) receiver/ (Python) ports 6466 / 6467
- The app (
docs/): the interface you see. It also runs as a demo on GitHub Pages, with a fake TV. - GlassRemoteTv (
tv-app/): an Android app you install on the TV. It serves the interface to your phone and sends the key presses to the TV. It shows a QR code on the TV screen: scan it and the app opens on your phone. - The receiver (
receiver/): the alternative, a tiny Python program for a computer in your home.
The live demo on GitHub Pages is just a preview: it cannot control a real TV. To control your TV, open the app from your TV (
http://<tv-ip>:<port>, or scan the QR code on the TV screen) or from your receiver.
You need: an Android TV / Google TV on your home Wi-Fi and an iPhone or Android phone on the same Wi-Fi.
The ready-to-install release lives in the
AppTv/folder of this repository: the signed APK (AppTv/release/), its checksum, step-by-step install guides and instructions for an AI assistant. The rest of the repository holds the web app, the demo, the computer receiver and the TV app sources.
- Download GlassRemoteTv-0.5.0.apk from the Releases page (the same file and its
SHA256SUMS.txtare in AppTv/release/) and install it on the TV (for example with the Downloader app, oradb install). Step by step: AppTv/guide/01-install-on-your-tv.md. - On the TV turn on network debugging: Settings > Device Preferences > About > tap Build seven times > back > Developer options (full steps in the guide of step 1). Open GlassRemoteTv from the TV apps. When the TV asks Allow USB debugging?, tick Always allow from this computer, then press Allow.
- The TV shows a QR code and a PIN. Scan the code with your phone camera: the app opens and unlocks by itself.
- iPhone: Safari, Share, Add to Home Screen (type the PIN once more in the installed app). Android: Chrome menu, Install app.
Why network debugging? It is the only way a normal app can press the remote keys on an Android TV (the official remote service refuses requests that come from the TV itself). The PIN keeps other people on your Wi-Fi from using it. Read guide/07-security.md first.
You need: a computer on your home Wi-Fi (Windows, macOS or Linux) with Python 3.10+, and an Android TV / Google TV on the same network.
git clone https://github.com/MarcoCall96/GlassRemoteTv.git
cd GlassRemoteTv/receiver
python -m venv venv
# Windows: venv\Scripts\activate macOS / Linux: source venv/bin/activate
pip install -r requirements.txt
python bridge.py --lanThe receiver prints an address like http://192.168.x.x:<port>/ (each installation uses its own random port).
- On your phone (same Wi-Fi) open that address. iPhone: Safari, then Share, then Add to Home Screen. Android: Chrome, then menu, then Add to Home screen / Install app.
- In the app tap + or Search TVs on the network and choose your TV.
- The TV shows a 6-character code. Type it in the app (Pair). Done, you only pair once.
The app speaks 6 languages (Italiano, English, Español, Français, Deutsch, Português). It follows your phone by default; change it in Settings, Language.
Need more help? Step-by-step guide · Receiver guide · Troubleshooting
Android TV and Google TV. Tested on Android 10 only: see Tested TVs. The TV app needs Network debugging in the TV's Developer options; many recent TVs (Android 11 and newer) offer only Wireless debugging, which is untested here and may not work. The receiver also works with TVs that expose the Android TV Remote service (Sony, Philips, TCL, Hisense, Xiaomi, Panasonic, Sharp, Nvidia Shield, Chromecast with Google TV and more): full list in guide/03-compatible-tvs.md. Samsung (Tizen), LG (webOS), Roku, Fire TV and Apple TV are not supported.
| TV | Android | Result |
|---|---|---|
| Panasonic 4KTV-JUP (Google TV) | 10 | Everything checked works (install, keys, volume, apps, wake, link, TV health, restart) |
| Your TV here | ? | Waiting for reports |
| Your TV here | ? | Waiting for reports |
Tried it on your TV? Report it: it will be added to the table.
This repo ships with CLAUDE.md and AGENTS.md: complete instructions for an AI coding assistant (Claude, Copilot, Codex...).
Open the repo with your assistant and say: "Set up GlassRemote for me." It will walk you through every step, in your language.
- No data leaves your home network. There is no server, no analytics, no account.
- The TV app and the receiver only answer to devices on your local network and refuse everything else.
- The TV app asks for a PIN (shown on the TV) once per phone. Without it nobody can control the TV.
- Never open ports on your router for it. Never expose it to the internet.
- The TV app needs network debugging on. You can turn it off at any time, and Revoke USB debugging authorizations removes every trusted device.
- Your pairing key and certificate stay in
receiver/bridge-data/, which is git-ignored.
More in guide/07-security.md.
Ideas, bug reports and pull requests are very welcome, especially for:
- the TV app: more TV brands, a nicer first-run screen, wake from standby
- support for Samsung, LG, Roku, Fire TV
- new languages and better translations
- testing on more TVs and phones
See CONTRIBUTING.md. If GlassRemote saves you from one more ad, give it a star so others can find it.
Built on androidtvremote2 (Apache-2.0), aiohttp and segno. Brand logos come from Simple Icons. All product names, logos and app icons are trademarks of their respective owners and are used only to identify the apps on your TV. This project is not affiliated with or endorsed by any TV or streaming brand.

