Light as a feather. A minimal, ad-free home screen for Android TV and Google TV.
Plume replaces the cluttered stock home screen with the two things you actually use: your apps and what you were watching. There are no ads, no sponsored rows, no account and no tracking, and it stays out of the way of the apps it launches.
- Tiny and fast. A 0.4 MB APK with no third-party libraries. It uses about 50β70 MB of RAM and has no extra background services.
- Home button support on Google TV. The Home button opens Plume directly, even on devices where the system launcher can't be replaced. Holding Home still opens the Google TV dashboard.
- Continue Watching. Resume shows and films from Android TV's Watch Next list and from apps that publish their own "Continue Watching" channel, such as Stremio.
- Clean apps row. Monochrome logos (or the same logos in brand colour) in a single row, with names on focus, always or never. Rearrange it by holding OK, sort by most used, or hide apps you don't use (they stay in All apps). An optional PIN locks the layout so small hands can't rearrange it.
- Sources list. The Sources icon in the top bar opens the list of the TV inputs. A console or set-top box that names itself over HDMI-CEC (for example "PlayStation 5") shows with its logo, and selecting it switches the TV to that input. A port with no signal says so. Hold OK on an input to put it in the apps row, and again to take it out.
- Remote keys. Change what a button on your remote does, for example the TV, Netflix or Settings button. A key can do one thing on a press and another when you hold it. See Remote keys.
- Light, dark or automatic theme, each with its own wallpaper. Add your own photos from your phone by scanning a QR code, or show a folder of photos from the TV or a USB drive that changes on a timer.
- Optional Gallery screensaver. Public-domain landscape paintings in 16:9, downloaded only if you choose it, or a folder of your own photos.
- Optional weather under the clock.
- Updates itself. Plume checks GitHub once a day and installs new versions from its settings (from 1.2 on). The first update asks you to allow installs from Plume.
Measured on a Hisense Google TV (Android 12, 1.8 GB RAM):
| Plume | Projectivy Launcher | Google TV launcher | |
|---|---|---|---|
| APK size | 0.4 MB | ~10β14 MB | ~25 MB |
| RAM while running | ~50β70 MB | ~65β70 MB | ~93 MB, plus a ~22 MB helper process |
| Extra background services | None | 2 | 1 always-on helper |
| Return to home from an app | ~95 ms | β | β |
- Android TV or Google TV running Android 8.0 (Oreo) or newer
- A way to sideload an APK: the Downloader app, a USB drive with a file manager, or
adb
- Download the latest
Plume-<version>.apkfrom the Releases page. - Install it on your TV, using any of these:
- Downloader app: enter the code
2125356. It always points to the latest release. - USB drive: copy the APK over and open it with a file manager.
- adb:
adb install Plume-<version>.apk
- Downloader app: enter the code
- Open Plume from your apps. Its settings panel opens automatically on first launch.
Plume's settings panel includes two setup rows:
| Setting | What to do |
|---|---|
| Home button | Press OK. In the Accessibility screen that opens, select Plume: Home button and turn it on. |
| Default launcher | Press OK and choose Plume in the dialog. |
Allow the TV listings permission when asked; Continue Watching needs it.
Note
Android shows the same generic warning for every accessibility service. Plume's service listens for the Home key, for the keys you set under Remote keys and for the system launcher appearing. It cannot read screen content.
Tip
Android 13 and newer: Android blocks sideloaded apps from Accessibility at first. Open Settings β Apps β Plume, choose Allow restricted settings from the menu, then turn the service on.
adb shell pm grant dev.plume android.permission.WRITE_SECURE_SETTINGSThis lets Plume:
- set the Gallery screensaver from its own settings
- turn its Home button service back on automatically if the app is ever force-stopped
Everything else works without it.
Android 13 and newer grey out the Accessibility switch for apps installed outside the Play Store, and most Google TV builds hide the Allow restricted settings menu that would unlock it. If Plume's setup reaches the ADB step, unlock it once from a computer (or a phone ADB app) on the same network:
-
On the TV, open Settings β System β About and press Android TV OS build seven times to turn on Developer options.
-
In Settings β System β Developer options, turn on Network debugging (called USB debugging on some TVs).
-
Run these, using the address Plume shows:
adb connect <tv-address>:5555 adb shell pm grant dev.plume android.permission.WRITE_SECURE_SETTINGS
-
Accept the debugging prompt on the TV, then choose Try again in Plume. Plume turns its Home button service on by itself.
| Action | How |
|---|---|
| Rearrange apps | Hold OK on an app, or use Settings β Edit apps row |
| Hide a Continue Watching item | Hold OK on its card, then Remove from Continue Watching |
| Remove an app from the row | Hold OK on it, then Remove from row (it stays in All apps) |
| Choose which apps feed Continue Watching | Settings β Continue Watching apps |
| Pin an app from All apps to the front | Open All apps, hold OK on the app (this also unhides it) |
| Hide apps from the row | Settings β Apps in row |
| Show app names always, on focus or never | Settings β App names |
| Switch between monochrome and colour icons | Settings β Icon style |
| Update Plume | Settings β Updates |
| Change what a remote key does | Plume settings β Remote keys |
| Lock the layout with a PIN | Settings β Lock layout |
| Open the Google TV dashboard | Hold the Home button |
Plume settings β Remote keys β Add a key, then press the key on your remote. Plume detects it. For each key, choose what a Press does and what a Hold does:
- open an app or an HDMI input (Open an app or inputβ¦)
- a media key: Play / Pause, Next, Previous, Stop, Rewind or Fast-forward
- a system action: Back, Recent apps, Notifications, Quick settings or the Power menu
- open Android settings or Network settings
- Do nothing
Back, OK, the arrows, Home, Power and the volume keys can't be changed, so the remote can't be locked out and keeps its volume. A key you set stops doing its usual job. Remove this key gives it back. The keys work through the Home button service, so Plume: Home button must be on in Accessibility settings.
Open Light mode wallpaper or Dark mode wallpaper in Plume settings and choose Add from phoneβ¦. Scan the QR code with your phone (it must be on the same Wi-Fi as the TV), pick a photo and upload it. It becomes the wallpaper straight away. The TV turns it upright, crops it to the screen around its centre and saves a small copy. The upload page only works while that screen is open. Remove a photoβ¦ in the same list deletes one.
You can also copy .jpg, .png or .webp files to Android/data/dev.plume/files/wallpapers/ yourself:
adb push my-wallpaper.jpg /sdcard/Android/data/dev.plume/files/wallpapers/A gentle fade is added automatically so the rows stay readable (Settings β Photo fade turns it off).
Choose Choose a folder on this TVβ¦ in the wallpaper list to use a whole folder of photos, from the TV's storage or a USB drive. Plume asks for access to your photos the first time. The photos take turns in shuffled order; Settings β Folder photo changes sets how often, from every minute to once a day. The screensaver can show a folder too: Settings β Screensaver β Your photos.
Settings β Lock layout sets a 4-digit PIN. While it's on, Plume settings and anything that changes the home screen (moving, removing or pinning apps, hiding shows) ask for the PIN first; opening apps works as usual. One PIN unlocks changes for five minutes, until you leave the home screen. Use the arrows or the remote's number keys to enter it.
The lock keeps the layout safe, it isn't parental control: apps can still be opened by voice search or from Android settings. Forgot the PIN? Android Settings β Apps β Plume β Clear data removes it, along with your layout and settings.
Select Settings β Screensaver to switch to Gallery. Plume downloads the paintings (4.7 MB) from this repository's releases and stores them privately. Switching back to another screensaver deletes them again, so they only take space while you use them.
Plume has no analytics, no ads and no account. It only connects to the internet to:
- load poster images for your Continue Watching items
- check this repository's GitHub releases for a new version, once a day, and download it when you choose to update
- download the Gallery paintings from this repository, only if you choose that screensaver
- get the Bing picture of the day (about 300 KB), only if you choose it as your wallpaper. Plume sends a request to bing.com when the home screen opens: once a day, or once an hour until the picture has changed that day, because Bing changes it at a set time for each country. Bing sees the TV's IP address and its language and country, which Plume sends to get the picture for your country. Plume keeps one picture and deletes it when you choose another wallpaper.
- fetch the weather, only if you turn it on. It looks up your approximate location from your IP address via ipwho.is, then gets the forecast from Open-Meteo.
Add from phone⦠runs a small upload page on the TV itself, reachable only on your home network and only while that screen is open. Photos go straight from your phone to the TV and nowhere else.
The Home button still opens the old home screen
Check that Settings β Home button shows On. If the app was force-stopped, Android turns its accessibility service off; open Plume once (or grant the optional adb permission above) to restore it.
Continue Watching is empty
Make sure the TV listings permission is allowed (Settings β Apps β Plume β Permissions), and that the app you watch publishes to Android TV's Watch Next list. Check Settings β Continue Watching apps in Plume too.
The screensaver option says it needs an adb permission
Google TV hides third-party screensavers from its own settings, so Plume needs the one-time WRITE_SECURE_SETTINGS grant shown above to switch it for you.
git clone https://github.com/aradhyas8/Plume_Launcher.git
cd Plume_Launcher
./gradlew assembleReleaseThe APK is written to app/build/outputs/apk/release/. Without a keystore.properties file, release builds are signed with your local debug key, which is fine for installing your own build.
Bug reports, design ideas, translations and pull requests are welcome. Plume stays small on purpose, so please read CONTRIBUTING.md first: it lists what's in and out of scope and how to send a change. Open an issue before starting on a feature.
- Screensaver paintings (public domain, scans via Wikimedia Commons; files in
screensaver/):- Frederic Edwin Church: The Heart of the Andes, The Icebergs, Chimborazo, Cotopaxi
- Ivan Shishkin: Rye
- Jasper Francis Cropsey: Autumn on the Hudson River
- Martin Johnson Heade: Thunder Storm on Narragansett Bay
- Wallpapers: "Canada" by Thomas Curryer, via Unsplash (CC0)
- App logos: Simple Icons (CC0). All trademarks belong to their respective owners.
- HDMI input icons: Material Symbols by Google (Apache 2.0)
Copyright (C) 2026 aradhyas8
Plume Launcher is free software, released under the GNU General Public License v3.0. You may use, modify and redistribute it, but any distributed version, modified or not, must also be released under the GPL-3.0 with its full source code.

