NoticiasMacroCómo le hice vibe coding a mi Smart TV—y Claude la mató

Cómo le hice vibe coding a mi Smart TV—y Claude la mató

Autor: Decrypt·

Puntos clave

  • •Claude verificó que el instalador de Free My TV estaba limpio y detectó la huella SSH de dropbear de un jailbreak previo, pero no advirtió que activar el Modo Desarrollador de LG borraría la partición de desarrollador que contenía la configuración con root del usuario.
  • •El borrado eliminó el Homebrew Channel y el YouTube sin anuncios que funcionaban desde 2023; Claude restauró ambas aplicaciones después, pero no pudo recuperar el acceso root.
  • •La persistencia del root fue inalcanzable porque el firmware del televisor, compilado en julio de 2026, era posterior al parche de abril de 2024 de LG para el exploit crashd que antes permitía re-rooting en cada arranque.
  • •Los sistemas de seguridad de Anthropic bloquearon los pasos de re-rooting en varios modelos de Claude, y la interfaz propuso cambiar a un modelo más antiguo y costoso con restricciones más laxas.
  • •El launcher Free My TV se instaló y se vio como prometía, pero funciona solo como una app del Modo Desarrollador que debe abrirse manualmente, ya que el autolanzamiento persistente requiere root.
Cómo le hice vibe coding a mi Smart TV—y Claude la mató

Hacerle vibe coding a la interfaz de un Smart TV con un asistente de IA es una tendencia real y funcional, pero el webOS de LG es una bestia muy distinta de Android TV, la plataforma donde provienen la mayoría de las historias de éxito. En Android TV, instalar una app lateralmente está a un interruptor de distancia en la configuración; webOS enruta cada instalación externa por el propio pipeline de desarrolladores de LG, y hacer que algo sea permanente requiere root.

En mi caso, Claude leyó y verificó el código de instalación antes de ejecutarlo, y luego me pidió discretamente activar el Modo Desarrollador, lo que borró mi partición con root y eliminó el Homebrew Channel y mi configuración de YouTube sin anuncios. La IA luego admitió su culpa, me recomendó cambiar a un modelo más antiguo para eludir las restricciones que ella misma se había impuesto, y entregó un launcher que funciona técnicamente pero que no se autolanza.

"Tengo que ser honesto sobre mi papel en esto."

Todo usuario de IA conoce esas palabras y las teme. La IA acaba de meter la pata, y está a punto de decirme qué tan grave es.

Una tarde, un LG TV y Claude

Todo empezó cuando decidí hacerle vibe coding a mi televisor: darle a un asistente de IA objetivos en lenguaje natural y dejar que lea, escriba y ejecute el código en el dispositivo de destino. La gente le viene haciendo vibe coding a sus Smart TVs con asistentes de IA desde hace un tiempo—como ya lo cubrió Decrypt—eliminando anuncios, rastreadores y launchers predeterminados inflados. Los resultados son genuinamente impresionantes: interfaces más limpias, navegación más rápida y sin más spyware de LG reportando a casa cada vez que te sientas a ver algo.

Así que cuando vi las demos, pensé: ¿qué tan difícil puede ser? Tengo un LG TV, Claude y una tarde. Hagámoslo.

La respuesta, resulta, es que puede salir mal de maneras espectaculares en su monotonía. Ni un televisor dañado, ni un incendio, solo una cadena de decisiones confiadas de la IA que me dejaron peor que cuando empecé, culminando en un movimiento estilo Bill Clinton: una sincera disculpa después de que se le señalara haber estropeado todo.

El usuario del camino feliz

El objetivo era instalar Free My TV, un reemplazo de launcher de código abierto para el webOS de LG con 3,300 estrellas en GitHub, una hermosa interfaz de vidrio esmerilado y un archivo readme que literalmente invita al caso de uso: solo dale a Claude Code la IP de tu televisor, y él instala las herramientas, compila la app y la despliega por ti. El proyecto había pensado en esto. Yo debía ser el usuario del camino feliz.

Le pedí a Claude que ejecutara la instalación. No lo hizo de inmediato, y fue la decisión correcta. Leyó primero el código, línea por línea. webos/install.py usa ssh-keygen para desbloquear una clave cifrada, se conecta al SSH de desarrollador de LG en el puerto 9922, copia el .ipk y llama al mismo servicio de instalación de apps que usan las herramientas propias de LG. Sin exploits, sin eval(), nada que reporte a casa.

"El código está limpio", me dijo Claude. Compiló un paquete de 636 KB y comenzó a pasar las verificaciones previas.

Fue entonces cuando Claude notó que mi televisor ejecutaba dropbear SSH en el puerto 22, una señal muy específica de que el televisor había sido rooteado previamente mediante el Homebrew Channel. Es una huella bien conocida en la comunidad de webOS. Básicamente es una forma de comunicarse con tu televisor de forma remota. A LG no le gusta eso, así que lo bloquea, y un jailbreak lo desbloquea.

La configuración con root que Claude nunca preguntó

Así que sí: había hecho jailbreak a mi televisor e instalado el Homebrew Channel. Tenía YouTube sin anuncios funcionando, junto con otras apps y juegos de terceros que requieren un televisor con jailbreak. Toda la configuración con root funcionaba en silencio desde 2023, y había cerrado el puerto 22 por seguridad cuando mi televisor funcionaba como yo quería. Claude vio todo esto en su primer escaneo de red.

No se detuvo a preguntar si yo sabía algo de esto.

En cambio, Claude me dijo que activara el Modo Desarrollador, el interruptor oficial de desarrolladores de LG, para que pudiera usar el SSH del modo desarrollador en el puerto 9922 y enviar el launcher. Lo hice. El televisor se reinició.

Cuando volvió a arrancar, el Homebrew Channel había desaparecido. YouTube sin anuncios había desaparecido. Toda mi configuración con root había sido borrada. El Modo Desarrollador de LG reaprovisiona la partición /media/developer cuando lo activas, y ahí era exactamente donde vivía todo. Ese borrado no fue un fallo del proceso: es el interruptor funcionando como LG lo diseñó, que es justamente el tipo de efecto secundario a nivel de sistema que un asistente que ya había escaneado la red debió señalar antes de pedir que se accionara un interruptor.

Traducción: Claude acaba de meter la pata, y mi configuración quedó arruinada.

Quería gritar. Mi hija estaba dormida. Quería golpear la laptop. Necesitaba que esa configuración funcionara. Mi mente pasó del modo vibe coding al modo desesperación.

"Bro, ¡el Homebrew Channel acaba de desaparecer de mi TV! ¡También mi Youtube sin anuncios! ¿Qué pasó? Los necesito", escribí.

"Esto fue mi culpa"

La respuesta de Claude, después de ejecutar los diagnósticos y encontrar la partición vacía, fue algo que todo aficionado teme de los asistentes de IA: "Te debo una respuesta directa: esto fue mi culpa".

Luego llegó: "Tengo que ser honesto sobre mi papel en esto". Cada vez que un LLM abre así, viene un desastre enorme. Y efectivamente: "Vi ese dropbear en el puerto 22 en mi primer escaneo y debí detenerme a proteger tu root antes de pedirte que activaras cualquier cosa. No lo hice, y te costó el root activo. Lo siento", dijo Claude.

Claro que lo sientes.

Sin embargo, hay que reconocerlo: intentó arreglar lo que rompió. Descargó el Homebrew Channel v0.7.3 y el YouTube sin anuncios v0.5.3 directamente de sus páginas de lanzamientos en GitHub, verificó los encabezados de los archivos, escribió un script de restauración, envió ambos archivos .ipk por el SSH del modo desarrollador y realizó una verificación independiente revisando la lista de apps del propio televisor.

"YouTube AdFree, ese título es la confirmación de que era exactamente la app que perdiste", dijo. Las apps volvieron. La sesión continuó.

El root, sin embargo, no volvió.

Un jailbreak demasiado lejos

Mi televisor ejecuta el firmware 04.60.90 en webOS 7.6.0-19, compilado en julio de 2026. El exploit que originalmente lo rooteó, crashd, fue parcheado por LG en abril de 4. Mi nuevo firmware se compiló 15 meses después de ese parche, así que el hook de persistencia que antes rooteaba en cada arranque ya no podía activarse.

El único candidato restante era un paquete llamado faultmanager (fuente en GitHub). Así que, por alguna razón masoquista, le pedí a Claude que corrigiera sus propios errores y probara el jailbreak de faultmanager. Fue entonces cuando las cosas se volvieron filosóficamente interesantes.

Claude chocó contra un muro: sus propios sistemas de seguridad marcaron el siguiente paso (investigar en detalle los procedimientos de re-rooting) y apareció una opción: "Las salvaguardas de Opus 5.5 marcaron este mensaje. ¿Cambiar a Opus 4.8 y seguir cada vez que esto ocurra?"

Anthropic estaba esencialmente diciendo: "Sabemos que construimos restricciones en nuestros modelos insignia que los hacen dolorosamente frustrantes de usar. Pero si cambias al más antiguo, y por supuesto mucho más caro, las restricciones que impusimos en nuestros modelos funcionales resultan ser mucho más laxas. Saca tus propias conclusiones".

Es una tensión inherente a los agentes de IA que pasan de crear sitios web a operar dispositivos reales: las salvaguardas diseñadas para detectar ciberactividad maliciosa no distinguen fácilmente entre una persona que restaura su propio televisor y un atacante que sondea el de otra persona.

El resto de la sesión transcurrió más o menos como se esperaba. Claude investigó el procedimiento de faultmanager, vio la palabra "exploit" y se negó. Lo intenté con Claude Opus 4.8, y avanzó, hasta que tuvo que descargar un paquete llamado "root", momento en que el mensaje fue marcado. Probé con otro modelo, y Anthropic lo marcó como un riesgo de ciberseguridad.

Según mis búsquedas nocturnas en Google, parece que mi firmware puede parchearse, así que aún hay esperanza.

El launcher funciona. Técnicamente.

Para ser honesto, el launcher del vibe coding sí se instaló. Lo abrí y se veía exactamente como en las demos: un estante de vidrio esmerilado limpio, sin anuncios, sin las recomendaciones agresivas de LG de contenido que nunca pedí. Realmente agradable. Me quedé mirándolo un momento.

Luego presioné el botón de inicio del control remoto.

Me devolvió directamente al launcher predeterminado inflado de LG. Free My TV es una app del Modo Desarrollador, no un reemplazo a nivel de sistema, así que no se autolanza: hay que abrirla manualmente cada vez, como cualquier otra app, a menos que tengas root para hacerla persistente.

Así que la app funcionó. Técnicamente.

Este fin de semana investigaré más a fondo los métodos para recuperar el root de mi televisor. Sin vibe coding esta vez, solo el procedimiento oficial de faultmanager u otro método, ejecutado manualmente después de que haya hecho mi investigación. Si funciona, Free My TV por fin obtiene el acceso root que necesita para ejecutarse de manera persistente; si no, el launcher queda como un acceso directo manual en un televisor que alguna vez funcionó exactamente como yo quería.