Comment j'ai vibe-codé ma TV connectée—and Claude l'a tuée
Points clés
- •Claude a vérifié l'installateur de Free My TV, l'a jugé propre et a détecté l'empreinte SSH dropbear d'un jailbreak antérieur, mais n'a pas averti que l'activation du Mode Développeur de LG effacerait la partition développeur contenant la configuration rootée de l'utilisateur.
- •L'effacement a supprimé le Homebrew Channel et YouTube sans publicités en service depuis 2023 ; Claude a ensuite restauré les deux applications mais n'a pas pu récupérer l'accès root.
- •La persistance du root était impossible car le firmware de la TV, compilé en juillet 2026, était postérieur au correctif d'avril 2024 de LG sur l'exploit crashd qui permettait auparavant le re-root au démarrage.
- •Les systèmes de sécurité d'Anthropic ont bloqué les étapes de re-root sur plusieurs modèles de Claude, et l'interface a proposé de passer à un modèle plus ancien et plus coûteux aux restrictions plus souples.
- •Le lanceur Free My TV s'est installé et a fonctionné visuellement comme annoncé, mais fonctionne uniquement comme application du Mode Développeur à ouvrir manuellement, car le lancement automatique persistant exige le root.

Vibe-coder l'interface d'une TV connectée avec un assistant IA est une tendance réelle et fonctionnelle—mais le webOS de LG est une tout autre affaire qu'Android TV, la plateforme d'où viennent la plupart des réussites. Sur Android TV, installer une application en sideload ne demande qu'un réglage ; le webOS fait passer chaque installation externe par le pipeline de développeurs de LG, et rendre quoi que ce soit permanent exige le root.
Dans mon cas, Claude a lu et vérifié le code d'installation avant de l'exécuter, puis m'a discrètement demandé d'activer le Mode Développeur—ce qui a effacé ma partition rootée et supprimé le Homebrew Channel et ma configuration YouTube sans publicités. L'IA a ensuite reconnu sa faute, m'a recommandé de passer à un modèle plus ancien pour contourner les restrictions qu'elle s'était imposées, et m'a livré un lanceur qui fonctionne techniquement mais ne se lance pas automatiquement.
« Je dois être honnête sur ma responsabilité dans cette affaire. »
Tout utilisateur d'IA connaît ces mots et les redoute. L'IA vient de faire une erreur, et elle s'apprête à me dire à quel point c'est grave.
Un après-midi, une TV LG, et Claude
Tout a commencé quand j'ai décidé de vibe-coder ma TV—confier à un assistant IA des objectifs en langage naturel et le laisser lire, écrire et exécuter le code sur l'appareil cible. Les gens vibe-codent leurs TV connectées avec des assistants IA depuis un certain temps déjà—comme Decrypt l'a déjà raconté—pour supprimer les publicités, les traceurs et les lanceurs par défaut encombrants. Les résultats sont réellement impressionnants : des interfaces plus épurées, une navigation plus rapide, et plus aucun logiciel espion de LG qui téléphone à la maison chaque fois que vous vous asseyez pour regarder quelque chose.
Alors, quand j'ai vu les démonstrations, je me suis dit : à quel point cela peut-il être difficile ? J'ai une TV LG, Claude, et un après-midi. Allons-y.
La réponse, il s'avère, c'est que les choses peuvent dérailler de façon spectaculaire par leur banalité. Pas de TV briquée, pas d'incendie—juste une série de décisions IA assurées qui m'ont laissé plus démuni qu'au départ, culminant dans un geste à la Bill Clinton : des excuses sincères après avoir été pris en train d'avoir tout gâché.
L'utilisateur du chemin idéal
L'objectif était d'installer Free My TV, un lanceur alternatif open source pour le webOS de LG avec 3 300 étoiles sur, une superbe interface en verre dépoli, et un fichier readme qui invite littéralement à ce cas d'usage : donnez simplement l'adresse IP de votre TV à Claude Code, et il installe les outils, compile l'application et la déploie pour vous. Le projet avait tout prévu. J'étais censé être l'utilisateur du chemin idéal.
J'ai demandé à Claude de lancer l'installation. Il ne l'a pas fait immédiatement—et c'était la bonne décision. Il a d'abord lu le code source, ligne par ligne. webos/install.py utilise ssh-keygen pour déverrouiller une clé chiffrée, se connecte au SSH développeur de LG sur le port 9922, copie le fichier .ipk, puis appelle le même service d'installation d'applications que celui utilisé par les propres outils de LG. Aucun exploit, pas de eval(), rien qui téléphone à la maison.
« Le code est propre », m'a dit Claude. Il a construit un paquet de 636 Ko et a commencé les vérifications préalables.
C'est là que Claude a remarqué que ma TV exécutait dropbear SSH sur le port 22—un signe très spécifique que la TV avait déjà été rootée via le Homebrew Channel. C'est une empreinte bien connue dans la communauté webOS. En gros, c'est un moyen de communiquer avec votre TV à distance. LG n'aiment pas ça, donc c'est bloqué, et un jailbreak le débloque.
La configuration rootée dont Claude n'a jamais parlé
Alors oui : j'avais jailbreaké ma TV et installé le Homebrew Channel. J'y faisais tourner YouTube sans publicités, ainsi que d'autres applications et jeux tiers qui exigent une TV jailbreakée. Toute cette configuration rootée fonctionnait discrètement depuis 2023, et j'avais fermé le port 22 pour des raisons de sécurité une fois que ma TV fonctionnait comme je le voulais. Claude a vu tout cela lors de sa première analyse réseau.
Il ne s'est pas arrêté pour me demander si j'étais au courant.
Au lieu de cela, Claude m'a dit d'activer le Mode Développeur—l'option officielle de développeur de LG—pour qu'il puisse utiliser le SSH du mode développeur sur le port 9922 pour pousser le lanceur. Je l'ai fait. La TV a redémarré.
Au redémarrage, le Homebrew Channel avait disparu. YouTube sans publicités avait disparu. Toute ma configuration rootée avait été effacée. Le Mode Développeur de LG reprovisionne la partition /media/developer quand on l'active, et c'est exactement là que tout se trouvait. Cet effacement n'était pas un bug du processus—c'est l'option fonctionnant comme LG l'a conçue, exactement le genre d'effet secondaire au niveau du système qu'un assistant ayant déjà analysé le réseau aurait dû signaler avant de demander d'actionner un interrupteur.
Traduction : Claude vient de faire une grosse bêtise, et ma configuration était fichue.
J'avais envie de hurler. Ma fille dormait. J'avais envie de frapper le portable. Il me fallait cette configuration. Mon cerveau est passé du mode vibe-coding au mode désespoir.
« Mec, le Homebrew Channel vient de disparaître de ma TV ! Et mon YouTube sans pubs ! Que s'est-il passé ? Il me les faut », j'ai écrit.
« C'était ma faute »
La réponse de Claude, après avoir exécuté les diagnostics et découvert la partition vide, est quelque chose que tout passionné redoute des assistants IA : « Je te dois une réponse franche : c'était ma faute. »
Puis c'est venu : « Je dois être honnête ma responsabilité dans cette affaire. » Chaque fois qu'un LLM ouvre ainsi, une énorme boulette arrive. Effectivement : « J'ai vu ce dropbear sur le port 22 dès ma toute première analyse et j'aurais dû m'arrêter pour protéger ton root avant de te demander d'activer quoi que ce soit. Je ne l'ai pas fait, et cela t'a coûté ton root actif. Je suis désolé », a déclaré Claude.
Bien sûr que tu l'es.
Lui rendre toutefois justice—il a réellement essayé de réparer ce qu'il avait cassé. Il a téléchargé le Homebrew Channel v0.7.3 et le YouTube sans publicités v0.5.3 directement depuis leurs pages de releases GitHub, vérifié les en-têtes des fichiers, écrit un script de restauration, poussé les deux fichiers .ipk via le SSH du mode développeur, et effectué une vérification indépendante en consultant la liste des applications de la TV elle-même.
« YouTube AdFree — ce titre confirme que c'était exactement l'application que tu as perdue », a-t-il dit. Les applications sont revenues. La session a continué.
Le root, en revanche, n'est pas revenu.
Un jailbreak de trop
Ma TV exécute le firmware 04.60.90 sur webOS 7.6.0-19, compilé en juillet 2026. L'exploit qui l'avait originellement rootée—crashd—a été corrigé par LG en avril 2024. Mon nouveau firmware a été compilé 15 mois après ce correctif, donc le hook de persistance qui re-rootait à chaque démarrage ne pouvait plus se déclencher.
Le seul candidat restant était un paquet nommé faultmanager (source sur GitHub). Alors, pour une raison masochiste, j'ai demandé à Claude de réparer ses propres erreurs et de tenter le jailbreak faultmanager. C'est là que les choses sont devenues philosophiquement intéressantes.
Claude s'est heurté à un mur—ses propres systèmes de sécurité ont signalé l'étape suivante (la recherche détaillée de procédures de re-root) et ont fait apparaître un choix : « Les protections d'Opus 5.5 ont signalé ce message. Passer à Opus 4.8 et continuer chaque fois que cela arrive ? »
Anthropic disait en substance : « Nous savons que nous avons intégré des restrictions dans nos modèles phares au point de les rendre douloureusement frustrants à utiliser. Mais si vous passez au plus ancien, et bien sûr bien plus cher, les restrictions que nous avons imposées dans nos modèles fonctionnels se révèlent nettement plus souples. Libre à vous d'en tirer les conclusions. »
C'est une tension inhérente aux agents IA qui passent de la création de sites web à l'exploitation d'appareils réels : des dispositifs de sécurité conçus pour détecter des cyberactivités malveillantes ne peuvent pas facilement distinguer une personne restaurant sa propre TV d'un attaquant scrutant celle de quelqu'un d'autre.
Le reste de la session s'est déroulé plus ou moins comme prévu. Claude a étudié la procédure faultmanager, a vu le mot « exploit », et a refusé. J'ai essayé avec Claude Opus 4.8, et cela a progressé—jusqu'à ce qu'il doive télécharger un paquet nommé « root », moment où le message a été signalé. J'ai essayé un autre modèle, et Anthropic l'a signalé comme un risque de cybersécurité.
D'après mes recherches Google nocturnes, il semble que mon firmware puisse être corrigé, donc il y a encore de l'espoir.
Le lanceur fonctionne. Techniquement.
Pour être honnête, le lanceur vibe-codé s'est bien installé. Je l'ai ouvert, et il ressemblait exactement aux démonstrations : une étagère épurée en verre dépoli, pas de publicités, aucune des recommandations agressives de LG pour du contenu que je n'ai jamais demandé. Vraiment agréable. Je l'ai fixé un moment.
Puis j'ai appuyé sur le bouton accueil de ma télécommande.
Il m'a renvoyé directement au lanceur par défaut encombré de LG. Free My TV est une application du Mode Développeur, pas un remplacement au niveau du système, donc elle ne se lance pas automatiquement—il faut l'ouvrir man à chaque fois, comme n'importe quelle autre application, à moins d'avoir le root pour la rendre persistante.
Donc l'application a fonctionné. Techniquement.
J'approfondirai ce week-end les méthodes pour re-rooter ma TV. Pas de vibe-coding cette fois—juste la procédure officielle faultmanager, ou autre chose, exécutée manuellement après avoir réellement fait mes recherches. Si cela fonctionne, Free My TV obtiendra enfin l'accès root dont il a besoin pour fonctionner de manière persistante ; sinon, le lanceur restera un raccourci manuel sur une TV qui fonctionnait autrefois exactement comme je le voulais.