Skip to main content
Glama

๐Ÿ“บ vibetv

Vibecode your TV menu. Lose the ads.

Swap your TV's ad-filled home screen for one you describe to your AI coding agent, and watch it update on the big screen every time you save.

Android TV ยท Google TV ยท Fire TV ยท Roku ยท LG webOS

CI Python Dependencies License


Everyone is trying to vibecode their TV menu: rip out the sponsored rows and autoplaying promos, and build a home screen that shows just their apps, their way. The catch is that an AI agent pointed at a TV is blind. It can't see the screen, can't press the remote, and doesn't know a D-pad from a mouse. vibetv closes that loop.

  • Build your own menu: describe it, and your agent builds a home screen that lists and launches your installed apps. Make it the TV's Home with one command, and undo it with another.

  • Remove the ads: a menu you wrote has no sponsored content. On Android TV, the reversible quiet-android-tv-home tweak also turns off the stock recommendations feed.

vibetv changes your TV's menu, not other apps: ads inside YouTube, Netflix and other streaming apps aren't touched.

 you: "make my home screen show my apps as big cards, with the weather and a clock"
  โ”‚
  โ–ผ
 AI agent edits web/app.js โ”€โ”€โ–บ vibetv serve live-reloads it on the TV
  โ–ฒ                                         โ”‚
  โ””โ”€โ”€ vibetv screenshot / tv_screenshot โ—„โ”€โ”€โ”€โ”˜   (the agent *sees* the result)

What you get

๐Ÿ”Ž Find your TV

vibetv discover finds Android/Google/Fire TV, Roku, LG and Samsung TVs on your Wi-Fi

๐Ÿงฑ Scaffold

vibetv new android-tv "My Home" gives you a TV-ready project with D-pad navigation, overscan-safe layout, and an AGENTS.md that teaches your AI the 10-foot UI rules

โšก Live reload on the TV

vibetv serve --open: save a file and the TV updates in about a second

๐Ÿ‘€ Eyes + hands for your agent

vibetv screenshot, vibetv key down down ok, vibetv logs (the TV's console.log and JS errors in your terminal)

๐Ÿค– MCP server

vibetv mcp gives Claude Code, Cursor, Codex and friends tv_screenshot, tv_key, tv_logs, tv_deploy and more

๐Ÿ  Custom launcher

Turn your app into the TV's Home screen. The bridge lists and launches every installed app

๐ŸŒ™ Custom screensaver

The same web app runs as an Android TV screensaver (Daydream)

๐ŸŽ›๏ธ Reversible tweaks

vibetv tweak apply snappy-animations. Every change is recorded and vibetv tweak revert restores the original

๐Ÿš€ One-command deploy

vibetv deploy builds and installs the APK (Android), sideloads the channel (Roku), or packages and installs it (webOS)

๐Ÿชถ Zero dependencies

Pure Python standard library. Nothing to break

Related MCP server: adb-tv-mcp

Quick start (5 minutes)

1. Install

# with uv (recommended)
uv tool install git+https://github.com/Uchebuzz/vibetv
# or pipx
pipx install git+https://github.com/Uchebuzz/vibetv

For Android TV / Google TV / Fire TV you also need adb: winget install Google.PlatformTools ยท brew install android-platform-tools ยท sudo apt install adb

2. Put your TV in developer mode (full guide)

  • Android TV / Google TV: Settings โ†’ System โ†’ About โ†’ click Build 7 times โ†’ Developer options โ†’ turn on USB debugging / Network debugging

  • Fire TV: Settings โ†’ My Fire TV โ†’ About โ†’ click the device name 7 times โ†’ Developer options โ†’ ADB debugging on

  • Roku: on the remote press Home ร—3, Up ร—2, Right, Left, Right, Left, Right and set a password

3. Connect

vibetv doctor                 # checks your setup
vibetv discover               # finds TVs on your network
vibetv add 192.168.1.42       # Android: accept the prompt on the TV
vibetv add 192.168.1.50 --password <roku-dev-password>   # Roku
vibetv screenshot             # ๐ŸŽ‰ saved tv-screenshot.png

4. Vibecode

vibetv new android-tv "Living Room"
cd living-room
vibetv deploy                 # installs the app once (or grab the APK GitHub Actions builds for you)
vibetv serve --open           # live-reload from now on

Now open your AI agent in that folder and ask for what you want:

"Turn this into my home screen: big cards for my installed apps sorted by most used, a weather widget for Lagos, and a dark theme. Check it on the TV when you're done."

The project's AGENTS.md / CLAUDE.md tells the agent how to screenshot the TV, press keys, read logs and follow TV UI rules, so it can check its own work.

Give your agent superpowers (MCP)

# Claude Code
claude mcp add vibetv -- vibetv mcp
// Cursor, Windsurf, Claude Desktop, ... (mcpServers config)
{ "mcpServers": { "vibetv": { "command": "vibetv", "args": ["mcp"] } } }

Tool

What it does

tv_screenshot

Returns the TV screen as an image the model can see

tv_key / tv_type

Press remote buttons / type text

tv_logs

Console output and JS errors from the app on the TV

tv_deploy

Build and install a project

tv_open_url

Open a URL in the TV browser or your app

tv_apps / tv_launch / tv_info

Inspect the TV and launch apps

tv_discover / tv_devices

Find and list TVs

tv_tweak_list / tv_tweak_apply / tv_tweak_revert

Reversible system tweaks

Templates

vibetv templates

Template

Runs on

What it is

android-tv

Android TV, Google TV, Fire TV, NVIDIA Shield, most smart TVs/projectors running Android

Web UI (web/) in a native Kotlin shell, plus a JS bridge (installed apps, launch, settings), a custom launcher, a screensaver, and a GitHub Actions workflow that builds the APK

roku

Roku TV, Roku sticks

SceneGraph + BrightScript channel with a RowList home screen, sideloaded over Wi-Fi

webos

LG TVs

Web app with appinfo.json, deployed with LG's ares CLI

web

Any TV browser

The bare 10-foot web app: D-pad spatial navigation, overscan-safe 1080p stage, live reload

No Android SDK? You don't need one. Push your project to GitHub and the included workflow builds the APK. Download it from the run's artifacts, then run vibetv install app-debug.apk.

Recipes

# Make your vibecoded app the Home screen (reversible)
#   1. uncomment the HOME intent-filter in app/src/main/AndroidManifest.xml, redeploy
vibetv launcher set com.vibetv.livingroom
vibetv tweak revert custom-launcher        # back to stock

# Use your app as the screensaver
vibetv screensaver set com.vibetv.livingroom/.WebDreamService --preview

# Speed up a sluggish TV box
vibetv tweak apply snappy-animations

# Drive the TV from a script
vibetv key home right right ok
vibetv type "lofi beats"
vibetv launch com.google.android.youtube.tv

More prompts to paste into your agent: prompts/.

All commands

vibetv doctor | discover [--scan] | add <ip> | devices | use <name> | remove <name> | info
vibetv key <keys...> | type <text> | screenshot [file] | apps | launch <app> | install <apk> | open <url>
vibetv templates | new <template> <name> | serve [--open] | logs [-f] | deploy
vibetv tweak list|show|apply|revert <preset> | launcher set <pkg> | screensaver show|set <component>
vibetv mcp

Every device command takes -d <name-or-ip> to target a specific TV.

Safety

  • vibetv never uninstalls system apps. It uses pm disable-user, which is fully reversible.

  • Every tweak records the previous value in ~/.vibetv/undo.json, and vibetv tweak revert puts it back.

  • Presets are labelled safe, moderate or advanced, and non-safe ones ask before applying.

  • Developer-mode passwords are stored locally in ~/.vibetv/config.json, never in your project.

  • Turn developer/network debugging off when you're done if your network isn't trusted.

Platform support

Discover

Screenshot

Keys

Live reload

Deploy

Tweaks

Android TV / Google TV

โœ…

โœ…

โœ…

โœ…

โœ…

โœ…

Fire TV

โœ…

โœ…

โœ…

โœ…

โœ…

โœ…

Roku

โœ…

โœ… (dev channel)

โœ…

n/a

โœ…

n/a

LG webOS

โœ…

โœ…

๐Ÿšง

โœ… (browser)

โœ…

๐Ÿšง

Samsung Tizen

โœ…

๐Ÿšง

๐Ÿšง

โœ… (browser)

๐Ÿšง

๐Ÿšง

๐Ÿšง = help wanted! See CONTRIBUTING.md.

Contributing

PRs are very welcome, especially new tweak presets (just a JSON file), templates, prompts, and Tizen/webOS support. See CONTRIBUTING.md.

License

MIT

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to develop, test, and certify Roku applications by providing direct control over device functions like app deployment, remote input, and SceneGraph inspection. It supports automated workflows including real-time log collection, media monitoring, and certification verification.
    1
    -
  • A
    license
    B
    quality
    C
    maintenance
    Enables AI agents to control Android TV/Android devices through ADB, including screen capture, remote control, app management, and more.
    24
    2 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to develop, deploy, navigate, inspect, and debug Roku BrightScript and SceneGraph applications with direct hardware control.
    -