---
title: I replaced my Samsung TV's home screen with an AI agent, in 2 days and $174
date: 2026-10-24T18:00:00.000Z
edited: 2026-10-24T18:00:00.000Z
author: Ismail Ghallou (Smakosh)
canonical: https://smakosh.com/blog/replacing-samsung-tv-home-screen-with-ai
reading_time: 6 min (1355 words)
Tags: ai, hardware
---

# I replaced my Samsung TV's home screen with an AI agent, in 2 days and $174

My Samsung TV boots into Smart Hub: a wall of promoted shows, a Bixby banner, a "Samsung TV Plus" row I never asked for, and six tiles of apps I never open. Every press of the Home button goes back there. I wanted the Apple TV experience instead: a clock, a dock with Netflix, YouTube, Prime Video, my PS5, my Switch and my gaming PC, and nothing else.

So I gave an AI coding agent sdb access to the TV and let it work. This is what happened, what it cost, and a prompt you can paste to do the same.

![The launcher on the TV: clock, greeting, and a six-tile dock](/assets/blog/tvhome-launcher.png)

## The setup

- TV: Samsung TU43U8095F, running Tizen (not Android TV, which matters a lot, see below).
- Agent: [Empryo](https://empryo.com) with Claude Opus 5.5 as the builder, a laptop on the same Wi-Fi, Docker for the Tizen CLI.
- Me: pressing buttons on the remote and sending screenshots when asked.

I had the "debloat Android TV, install a custom launcher" project in mind, the kind you see on GitHub for Xiaomi and TCL sets. The first thing the agent found was that my TV is not Android. There is no adb, no package manager you can uninstall from, no third-party launcher concept. Tizen is a locked web platform with a remote-control API on port 8001 and a restricted shell over sdb.

## What worked

The launcher itself was the easy part. It is a plain Tizen web app: one HTML file, some CSS, a few hundred lines of JavaScript. Apps open through `tizen.application.launch`. The consoles are HDMI inputs, so their tiles call `tizen.tvwindow` to show the port full screen, and Back returns home. The gaming PC tile opens Moonlight, which the install script sideloads as well. The ambient background takes the colour of the focused tile.

![Focus on YouTube: the ambient background follows the tile](/assets/blog/tvhome-youtube.png)

Signing was the first real wall. 2024+ Samsung TVs reject the free certificate the Tizen CLI generates; you need a certificate issued through a Samsung account. The agent wrote a small Python script that drives that login flow and saves the certificate locally, so the install only asks once.

Installing goes over `sdb`, once Developer mode is on (Home, Apps, gear, type 1 2 3 4 5). `vd_appinstall` is one of the few commands the retail shell allows.

## What did not work

Before, for the record: Smart Hub. Promoted rows, a Bixby banner, Samsung TV Plus, and the app row somewhere below the fold. Every Home press, every boot.

<!-- before photo slot: ![Smart Hub, before](/assets/blog/tvhome-before.jpg) -->

**Debloating.** `sdb uninstall` on any preinstalled Samsung app returns error 132. They are signed system packages on a read-only partition. The agent tried it on every package in the bloat list, then tried the installer's own uninstall path, then gave up honestly. What it could do was kill the processes (Promotion, Bixby promotion, SecurityCenter, SmartThings, the AI companion launcher). They come back on every reboot, so the repo ships a `debloat.sh` that is re-run on power-on. That is the ceiling on retail firmware without a root exploit, and I would rather not brick a TV for a Bixby banner.

**The Home button.** This one took most of the second day. The launcher was installed and beautiful, but press Home from Netflix and you are back in Smart Hub. The first idea was a "keeper": a background service that notices the launcher is hidden and relaunches it. Tizen suspends background web apps, so `setTimeout` and `visibilitychange` simply never fire. Dead end, and the agent proved it dead with a logging probe before moving on.

## The breakthrough

The Home button is not hardcoded. It opens whatever app is named in a vconf key, `db/appfw/home_appid`, and on my TV that key still said `com.samsung.tv.csfs`, Samsung's launcher. Only `vconftool` can write it, and the plain `sdb shell` is closed on retail firmware. But the package installer still expands backticks in the package name it is handed:

```sh
sdb shell '0 appinstall tpk `vconftool set -t string -f db/appfw/home_appid SmkHomeKey.Go`.tpk'
```

The install fails, the backticks run first. Fire and forget, no output, but it works.

One more twist. Pointing Home straight at the launcher left it stuck behind the TV's loading screen after Netflix, because the TV relaunches its "home app" through a special path (`__NO_RAISE_WINDOW`) that does not raise a paused app. So Home points at a second, tiny app instead: it starts, launches the real launcher with an ordinary `tizen.application.launch`, and exits. About 0.2 seconds. Power-on uses `db/appfw/startup_appid` and points at the launcher directly, so a failure in the key app can never leave the TV on a black screen.

That was the moment the A/B test flipped: Netflix, Home, launcher. YouTube, Home, launcher. No Smart Hub since.

![After: Home pressed from inside Netflix, the launcher is what comes up](/assets/blog/tvhome-after-home.png)

## The numbers

Pulled from the agent's usage log for the two days of this project, as of writing this post.

|                   |                                         |
| ----------------- | --------------------------------------- |
| Wall clock        | ~20 h over two days (Oct 22 and Oct 24) |
| Active agent time | ~14 h                                   |
| Model calls       | 2,306                                   |
| Total cost        | $173.85                                 |
| Output tokens     | 2.2 M                                   |
| Input tokens      | 901 M, of which 885 M were cache reads  |

By model:

| Model                                     | Calls | Cost    |
| ----------------------------------------- | ----- | ------- |
| Claude Opus 5.5                           | 1,242 | $118.51 |
| Claude Fable 5.1                          | 145   | $48.58  |
| DeepSeek V4.1 Flash                       | 893   | $3.53   |
| Gemini 3.1 Flash Lite                     | 24    | $0.21   |
| GPT-6 Astra / GPT-6.1 Sol (one call each) | 2     | $3.02   |

Opus did the building. Fable reviewed plans and the risky changes, and wrote the post you are reading. Both ran on my Anthropic subscription. Everything else went through [LLM Gateway](https://llmgateway.io), the router I run: DeepSeek Flash handled the cheap lookups there (searching, naming, summarising command output) at 893 calls for less than four dollars, Gemini Flash Lite did a handful of web lookups, and the two GPT-6 calls were one-off second opinions on the Home button plan. 920 of the 2,306 calls, $6.76 of the $173.85, all on one key and one invoice. Most of the cost is the long context: every call carried the README, the scripts and the TV's app list, and 98% of input tokens were cache hits.

Was $174 worth it? For a weekend I would otherwise have spent reading Tizen forum threads from 2019, yes. The backtick trick alone is something I would never have found.

## What is in the repo

- `tizen/`: the launcher (HTML, CSS, JS, a boot service).
- `homekey/`: the 0.2 second Home key app.
- `scripts/install.sh`: signs, packages, installs all three apps and points Home at the key app.
- `scripts/debloat.sh`: stops the Samsung promotion and telemetry apps (they return on reboot).
- `scripts/restore.sh`: hands Home and power-on back to Samsung, then uninstalls everything.
- `scripts/remote.py`: sends remote keys from your laptop for testing.
- `scripts/samsung-cert.py`: gets the Samsung signing certificate.

## Do it yourself: the prompt

This works on Samsung Tizen TVs from roughly 2020 on. It will not work on Android TV, Google TV, LG webOS or Fire TV (for Android sets, search for "cleanyourtv" instead; it is a much shorter afternoon). Paste this into a coding agent with shell access, on a computer on the same Wi-Fi as the TV:

```text
I have a Samsung Tizen TV at <TV_IP> on my Wi-Fi. Build me an Apple TV style home screen
for it and make the Home button open it instead of Smart Hub. Work on the real device and
verify with screenshots. Ask me before anything that depends on my preferences.

What I want on the dock: <Netflix, YouTube, Prime Video, PS5 on HDMI 1, Switch on HDMI 2, ...>

Rules of the platform, so you do not waste time:
- It is Tizen, not Android. No adb. Use sdb (Tizen Studio) and the REST API on port 8001.
- Developer mode: Home > Apps > gear > type 1 2 3 4 5 > On, Host PC IP = this machine.
- 2024+ TVs need a certificate from a Samsung account; the free Tizen CLI cert is rejected.
- Preinstalled Samsung apps cannot be uninstalled (error 132). Do not loop on it; at most
  kill their processes and re-kill on boot.
- The Home button opens the app named in vconf key db/appfw/home_appid. The sdb shell is
  closed, but `0 appinstall tpk \`<cmd>\`.tpk` expands backticks, so vconftool can run that way.
- Do not point home_appid at the launcher directly: the TV relaunches home apps with
  __NO_RAISE_WINDOW and a paused launcher stays hidden. Point it at a tiny key app that
  launches the launcher with tizen.application.launch and exits. Set
  db/appfw/startup_appid to the launcher itself for power-on.
- Background web apps are suspended; timers and visibilitychange do not fire. Do not build
  a watchdog that relies on them.
- Before changing anything, save the installed app list and the current values of
  home_appid, first_screen/type and startup_appid to a backup folder, and write a
  restore script that puts them back and uninstalls what you added.

Deliverables: the launcher as a Tizen web app, an install script, a restore script, a
README, and a screenshot of the launcher on the TV after pressing Home from Netflix.
```

Expect the certificate step to need you in the browser once, and expect one or two reboots. If the agent starts fighting the Home button with a relaunch loop, paste it the vconf paragraph again.

## Related

- [LLM Gateway at $1.2M: when the flat-rate math broke](/blog/llm-gateway-flat-rate-economics), on what routing the cheap calls through a gateway does to the bill.
- [17 months of marketing LLM Gateway, audited by AI](/blog/llm-gateway-marketing-takeaways), the previous post in this journal.

## Things I would tell past me

- Say "Samsung Tizen" in the first message. My first prompt said Android TV and the agent spent the first twenty minutes looking for adb.
- Keep a backup script before an install script. The agent wrote one on day two; it should have been the first thing.
- A reviewer model that reads the final scripts cold catches the things you stop seeing. Mine flagged a restore script that reset the Home key but left power-on pointing at an uninstalled app.
- The remote still works for everything else. Inputs, settings, volume, the TV guide: all untouched. Only the Home button changed its mind.

---

_Originally published at https://smakosh.com/blog/replacing-samsung-tv-home-screen-with-ai_
