The cleanyourtv Prompt, Explained
An unofficial, section-by-section walkthrough of the cleanyourtv prompt: what it tells your coding assistant to do, what it asks you, and how to run it with Claude Code.
Updated October 20, 2026 · Unofficial guide
The cleanyourtv prompt is the single block of text that does the actual work in the cleanyourtv project. You don't run a wizard or install an app on your computer; you paste it into a coding assistant with shell access, fill in your TV's model, and the assistant reads your TV, backs it up, strips the bloat, and builds a new launcher, all over Wi-Fi. This page walks through it section by section, in the order it actually runs, so you know what it's about to do before you paste it in.
What the cleanyourtv prompt is for
It went viral after a tweet on 17 October 2026 describing a TV "vibe coded" clean in an afternoon: 25 Xiaomi packages removed, a new launcher installed, nothing rooted. The repo itself was called tv-vibehack until 19 October, when TechCrunch covered it as "People are using AI to make their smart TVs dumb again." This prompt is what makes that repeatable: instead of a script tuned to one TV, it's instructions an AI assistant follows on whatever TV you point it at, discovering the bloat itself rather than relying on a pre-written list.
Before you paste the cleanyourtv prompt: wake up Developer options
It assumes ADB is already reachable, so this step comes first and isn't part of the prompt text itself:
- On the TV: Settings → Device Preferences → About, then press OK on Build seven times.
- Go back one level to Developer options and turn on USB debugging (and Network/ADB debugging if your TV shows a separate toggle).
- Leave the TV powered on and connected to the same Wi-Fi as your computer.
Connect: how the cleanyourtv prompt finds your TV
The first section tells the assistant to find the TV on your network by hostname, ARP table, or by asking you for the IP, then connect over ADB on port 5555. If you're helping someone in another home, the prompt branches to a Tailscale address instead of scanning your own network; see our guide to smart TV ads for the DNS half of that setup, or the project's own REMOTE.md for the full remote walkthrough.
Two platform quirks are baked into this section because they come up often enough to name explicitly:
- macOS "No route to host." Recent macOS blocks the stock
adbbinary under Local Network privacy even when the port is open. The prompt tells the assistant not to debug this, and to switch to the Pythonadb-shellpackage instead. - Wireless debugging only. Some Google TV sets never open port 5555 and only expose Wireless debugging. The prompt has the assistant look for
_adb-tls-connect._tcpwithdns-sd -Boradb mdns services, ask you for the pairing code, and runadb pairthenadb tcpip 5555.
You'll see "Allow USB debugging?" pop up on the TV screen during this step. The prompt tells the assistant to warn you it's coming so you can accept it with the remote.
Back up first: what the cleanyourtv prompt saves before touching anything
Before any package is disabled, this section has the assistant save the full installed-package list, the disabled-package list, getprop output, and all settings to a backup folder, and write a restore script that can re-enable everything in reverse. It also asks what's plugged into the TV's USB ports, since debugging mode can cut their power, and reminds the assistant to close network ADB when the whole run is finished.
Closing ADB matters: port 5555 is plaintext, and on firmware with ro.adb.secure=0 anyone on your LAN could get a shell to the TV while it's open. The prompt has the assistant verify closure with nc -vz <tv ip> 5555, which should fail once debugging is off.
Debloat: the checklist questions the cleanyourtv prompt asks
This is the longest section, and the one that actually touches your TV. It has the assistant sort every installed package into five buckets: manufacturer telemetry and analytics, manufacturer ad and content services (recommendation rows, PatchWall-style shelves), background services you probably don't need, preloaded apps, and streaming apps. Only the first categories get disabled automatically, with pm disable-user --user 0, never an uninstall.
Before touching anything you might actually use, the cleanyourtv prompt has the assistant stop and ask a checklist, roughly:
- Which streaming apps do you actually use?
- Do you want to keep the built-in voice assistant?
- Keep Chromecast and Miracast casting working?
- Keep automatic firmware updates on?
It also has the assistant protect anything the TV leans on structurally, even if you don't tick it: the TV tuner and HDMI input services, the input/source menu, remote and Bluetooth pairing, the on-screen keyboard, Google Play Store and Play Services. It tells the assistant to check unclear package names with dumpsys package rather than guess from the name, and to disable in small batches with a screenshot between each, since a batch that goes wrong is hard to diagnose after the fact.
One optional extra lives in this section too: it offers to turn on ad-blocking Private DNS as a system-wide extra, which we cover in more depth in our guide to removing ads from a smart TV.
Launcher: what the cleanyourtv prompt builds
With the bloat cleared, this section moves to the replacement home screen. It first checks whether the TV accepts sideloaded APKs at all, since some China-market sets reject anything with android.intent.category.HOME or fail every install with a verification error, in which case the prompt has the assistant stop after the debloat half and say so plainly rather than keep retrying.
Where installs work, it has the assistant build a small native Android TV launcher (Java, AndroidX RecyclerView, roughly 300 KB installed as com.gathin.tvhome), install it over ADB, and only then disable the stock launcher, since disabling it too early can leave Home pointed at a factory test app. The design brief in the prompt is explicit: pitch-black background, a rounded dock of your four chosen apps, a 4-column grid that slides up on Down, one glass highlight that moves between tiles instead of borders, and frosted pill buttons for Inputs, Wi-Fi and Settings. The dock order and the four apps are something you pick; it asks rather than assumes.
It also flags the Google TV setup wizard, com.google.android.tungsten.setupwraith, which can grab Home back and crash-loop the system once the stock launcher is disabled. See our cleanyourtv restore guide for the exact recovery command if that happens.
Verify: screenshots, not assumptions
The last working section has the assistant check its own work rather than trust that a command succeeded. After each change it injects a remote key press over ADB, pulls a screenshot from the TV, and looks at it before moving to the next step. Two caveats baked into this section: Live TV and HDMI screenshots come back as empty (0-byte) files, which is the TV's behaviour and not a sign of a broken debloat; and an injected key press proves navigation works, not that the physical remote's accessibility-bound button does, so the prompt has the assistant ask you to press the real button for anything that depends on an accessibility service.
When the run finishes, it has the assistant hand you three things: a restore script, a build-and-install script, and a short README explaining how to re-enable any app or change the dock order and wallpaper.
Running the cleanyourtv prompt with Claude Code
- Clone or download the cleanyourtv repo, and open Claude Code in that folder so it has
tools/andlauncher/as context. - Open PROMPT.md, copy the whole thing, and paste it into Claude Code.
- Replace the
<MODEL NAME HERE>placeholder with your exact TV model, as printed on the box or under Settings → About. - Send the cleanyourtv prompt, then stay near the TV. You'll need to accept the "Allow USB debugging?" dialog and answer the checklist questions as they come up.
- Expect to be watching screenshots and confirming steps for about fifteen minutes if the repo is present as context, since the cleanyourtv prompt is designed to pause and verify rather than run end to end unattended.
The same cleanyourtv prompt text works in Codex and Gemini CLI; the only requirement the project states is a coding assistant with shell access on a computer that's on the same network as the TV. If your model already has a tested list in examples/, mention that in your own prompt text, since the assistant can apply a known-good list instead of discovering the bloat from scratch; browse 80 tested TV lists to check first.
What the cleanyourtv prompt deliberately won't do
- It won't uninstall system packages, only disable them with
pm disable-user, so a restore script can reverse every change. - It won't touch Samsung Tizen or LG webOS sets; this prompt and the underlying tools only work on Android TV and Google TV.
- It won't install a launcher on Fire TV, since Fire OS won't hand Home to a third-party app; on Fire TV it does the debloat half only.
- It won't run unattended; every destructive step is batched, screenshotted, and gated behind a question when your personal use is involved.
For the DNS-level ad blocking the cleanyourtv prompt offers as an extra, see removing ads from a smart TV. If a run goes sideways and you want everything back the way it was, see restoring your TV after cleanyourtv. For platform-specific walkthroughs, see debloating Android TV and debloating Google TV.