CleanYourTV: An Apple TV-Style Home for Android TV Bloat

By Indie Kings | October 21, 2026

Updated October 21, 2026: CleanYourTV is an open-source tool that strips advertising and preloaded apps from Android TV and Google TV sets over Wi-Fi, then installs a small replacement home screen modeled on Apple TV. It does not root the TV and does not uninstall anything. The debloat changes are package disables that a restore script can undo.

The project went from a Saturday experiment to 15,898 stars in four days. Its README says the author gave Claude Code a TV model number, let it find the set on the local network, removed 25 Xiaomi packages, and wrote a launcher. The repository was created on October 17, 2026. Version 2.5.0 landed on October 21 with 147 TV models in its release notes, and the README's contributed list is already larger.

CleanYourTV banner showing a stock Google TV home screen next to the CleanYourTV launcher

Image: CleanYourTV banner. Image credit: Gathin23/cleanyourtv, via the repository README.

What CleanYourTV does

Android TV and Google TV sets ship with a home screen that mixes installed apps with sponsored rows, recommendation feeds, and vendor services. CleanYourTV attacks that layer in two ways. It disables packages the owner does not want, and it installs a replacement launcher that shows only the apps the owner chooses.

The project's promise is narrow and specific: no root, no cable, nothing uninstalled, and a one-line restore. The TV keeps its factory firmware. The debug bridge is used to disable packages in the user profile, the same mechanism an Android phone uses when an app is disabled rather than removed. The original packages remain on the device and can be enabled again.

The replacement launcher is a native Android app written in Java. It is deliberately small, around 405 KB in the v2.5.0 release notes, and built for sets with 1 GB of RAM. The README describes it as about 429 KB installed, and the v2.5.0 notes add a CI size gate of 420 KB. It has no network access, no background services, and no video. The README says it uses AndroidX RecyclerView and nothing heavier.

ItemDetail from the repository
ProjectCleanYourTV
PurposeDebloat Android TV and Google TV, then replace the home screen
LanguageJava
LicenceMIT per the README, though GitHub reports no recognised licence
Stars and forks15,898 stars, 1,742 forks, 135 open issues at check
Repository createdOctober 17, 2026
Latest releasev2.5.0 on October 21, 2026
TV requirementAndroid 8.0 or newer for the launcher; Fire TV gets debloat only
BinariesNone; the launcher is built from source

How the debloat works

The TV needs USB debugging or network debugging enabled in its developer options. The user accepts one authorization prompt from the computer. From there, the tool uses Android's package manager to run pm disable-user against a list of packages for that TV model.

The lists live in the repository's examples/ folder, one folder per model. The README counts contributions from TCL, Sony, Xiaomi, Philips, Hisense, Amazon Fire TV, Panasonic, Skyworth, BenQ, Sharp, Toshiba, NVIDIA Shield, and many smaller brands. The README's current table lists 158 models from 52 brands, while the v2.5.0 release notes count 147 TVs from 49 brands. Both numbers reflect a project that is adding models faster than the prose can be updated.

The process is not fully automatic. The README's quick start asks the user to paste PROMPT.md into a coding assistant that has shell access, such as Claude Code, Codex, or Gemini CLI, and fill in the TV model. The assistant discovers the bloat on that specific set and asks before touching anything the user might use. The README estimates about fifteen minutes with the repository as context.

That design is unusual. CleanYourTV is not a single binary that applies a universal list. It is a repository of scripts, model-specific lists, and a prompt for an AI assistant. The assistant is the installer. The scripts are the safety rails. The restore record is the undo button.

The launcher

The home screen is the part most people will notice. It has a pitch-black background, a dock of four favorite apps in a rounded band, and a top shelf that names the focused app in large type. The ambient glow takes its color from the app's artwork. The rest of the apps sit in a grid that slides up when the user presses Down.

The focused tile lifts and shows its name under a glass highlight. Three frosted buttons open Inputs, the network panel, and Settings. The Inputs panel lists HDMI ports with what is connected, plus AV and Live TV. A thin clock, date, and greeting sit on the home screen, and a Clock screensaver drifts so it does not burn in.

Themes can change colors, wallpaper, dock size, and column count without rebuilding the APK. Module cards let other apps declare a tile, but the launcher asks the user once per app and keeps it hidden by default. The launcher also supports 4 to 7 apps per row, reduced motion for weak GPUs, an optional app library, and Hebrew right-to-left layout.

The launcher follows the TV's language. The README lists English, German, Spanish, Catalan, French, Russian, Serbian Latin, Polish, Czech, Italian, Portuguese, Turkish, Arabic, Hebrew, Simplified Chinese, Traditional Chinese, Thai, Finnish, Vietnamese, Bangla, Indonesian, Norwegian Bokmål, Dutch, and Uzbek Latin. The v2.5.0 release notes count 21 languages, so the README is again ahead of the tag.

What you need to run it

The computer and the TV must be on the same Wi-Fi network. The TV needs developer options enabled and USB debugging or network debugging turned on. On some sets the option is called Network debugging or ADB debugging. The user accepts the computer's key on the TV.

The launcher needs JDK 17 and Android SDK platform 34 to build. The README gives one-line setup for macOS and Linux, and PowerShell scripts for Windows. There is no prebuilt APK. The stated reason is control: the build takes about a minute, and the README says you control what goes on your TV.

The TV must run Android 8.0 or newer for the launcher. The install script checks the TV's API level before building and reports both numbers if the set is too old. Fire TV is different: Fire OS will not hand the home screen to a third-party launcher, so the project supports the debloat half only. On the 2015 Fire TV Box with Fire OS 5, even the debloat half fails because every package manager command is refused.

Restore, updates, and recovery

Before disabling anything, the tool writes a record to ~/.cleanyourtv/ with one file per TV and list. The record stores whether each package was enabled, already disabled, or not installed, which component owned Home, and the three animation scales. A second run of the same list keeps the first record instead of overwriting it with the cleaned-up state.

The restore script replays that record. A package the user had already disabled stays disabled, and Home returns to the component that owned it. If the record is missing, the script falls back to enabling the whole list and resetting the animation scales, which is less precise but still reversible.

Firmware updates usually bring the disabled packages back. The project includes tools/check.py, which compares the TV against the list that was applied, prints what drifted, and exits with a failure code. With --fix, it reapplies the list after the same safety checks. A weekly cron job on a home server or Raspberry Pi can run the check and report drift.

The most important install rule is to disable the stock launcher only after the new launcher is installed and running. If the stock launcher is disabled first, Home can land on a factory test app or nothing at all. The install script orders this correctly.

The real risks

CleanYourTV does not flash firmware, root the TV, or delete packages. The README's own safety answer is that the risk is disabling something the TV depends on, which is why lists are applied in small batches with a restore script ready. That is accurate, but it understates two failure modes.

The first is the setup wizard on Google TV. The package com.google.android.tungsten.setupwraith can take Home and crash-loop the system after the stock launcher is disabled. The README says to disable it too, but first check whether the saved Wi-Fi network belongs to it. If it does, disabling it deletes the network. The tool skips setupwraith until the user re-joins Wi-Fi, which is a good guard, but the failure mode is still a TV that cannot get online.

The second is ADB exposure. Network ADB is plaintext on port 5555. On firmware with ro.adb.secure=0, any device on the LAN can get a shell. The README tells users to turn debugging off and revoke authorizations when finished, then confirm the port is closed. That step should not be skipped. A TV left with open ADB is a bigger security problem than a sponsored row.

The legal and warranty picture is simpler. Disabling packages in the user profile does not void a warranty by itself, but a manufacturer may treat it as unsupported modification. The README states the project is MIT licensed and that the Outfit typeface is under the SIL Open Font License, though GitHub's own licence field for the repository reports no recognised licence. Either way, the licence covers the code, not the TV.

FAQ

Does CleanYourTV root my TV?
No. It uses Android's debug bridge and pm disable-user to disable packages in the user profile. Nothing is flashed and nothing is uninstalled.

Can I undo the changes?
Yes. The tool records the TV's state before it changes anything and includes a restore script that replays that record. Keep the debloat list you applied.

Does it work on Fire TV?
Only the debloat half. Fire OS will not hand the home screen to a third-party launcher. The 2015 Fire TV Box with Fire OS 5 refuses even the package disable commands.

Do I need to know how to code?
Not much, but you do need a computer on the same network and a coding assistant with shell access. The README's quick start is built around pasting a prompt into Claude Code, Codex, or Gemini CLI.

Why is there no APK download?
The project does not ship prebuilt binaries. You build the launcher from source with JDK 17 and Android SDK 34, which takes about a minute after setup.

What happens after a firmware update?
The disabled packages usually come back and Home returns to the stock launcher. Run tools/check.py to see what drifted, then --fix to reapply the list.

Our take: CleanYourTV is the rare debloat project that treats reversibility as a feature instead of a footnote. The restore record, the stock-launcher ordering, and the setupwraith guard are the work of someone who has actually broken a TV and had to fix it. The caution is the install path: an AI assistant with ADB access can disable the wrong package, and the README's guardrails only work if the user reads them. Build it, keep the list, and turn debugging off when you are done.

Bottom Line

CleanYourTV is an Android TV and Google TV debloat tool with a small Java replacement launcher. It disables packages over ADB without root or uninstalling anything, records the original state, and provides a restore script. Version 2.5.0 arrived on October 21, 2026, with release notes counting 147 TVs, 49 brands, and 21 languages; the README's contributed list is already larger. It had 15,898 stars and 1,742 forks at the time of check. The launcher is about 405 KB, needs Android 8.0 or newer, and has no prebuilt APK. Fire TV gets debloat only, and ADB should be closed after setup.

Sources

Gathin23/cleanyourtv repository README, including the debloat method, launcher features, supported TVs, restore process, firmware update behavior, safety notes, and licence, verified October 21, 2026.

Gathin23/cleanyourtv releases, including v2.5.0 published October 21, 2026 with 147 TVs, 49 brands, 21 languages, and a 405 KB launcher.

GitHub repository metadata for Gathin23/cleanyourtv, verified October 21, 2026: 15,898 stars, 1,742 forks, 135 open issues, Java, created October 17, 2026, last push October 21, 2026, and a licence field GitHub reports as unrecognised.

Share