Tự làm hệ điều hành cho TV bằng Claude Code
Kết nối Claude Code với Google TV qua ADB, build home screen riêng, thiết kế lại trên MagicPath với Mobbin MCP và Rive CLI, rồi trả TV về như cũ.
✓ Đã duyệt độc lập · cập nhật 24/10/2026 · 13 min
1. Trào lưu vibe code smart TV và nguyên lý reverse engineering
Lukas mở đầu bằng chuyện anh thấy trên X trong thời gian gần đây (tính tới lúc đăng video ngày 21/10/2026): rất nhiều bài đăng của những người có smart TV dùng AI không chỉ để gỡ quảng cáo khỏi TV, mà còn để tạo ra những kiểu giao diện hoàn toàn mới. Anh đọc một ví dụ trên màn hình: một người viết rằng họ đã "vibe code" chiếc TV của mình với Claude, toàn bộ bloatware và quảng cáo cài sẵn đã bị gỡ, và trên hết họ dựng lại hệ điều hành của nó với một thiết kế gọn gàng lấy cảm hứng từ Apple TV. Người đó còn ghi khoảng 70% ít RAM hơn và giao diện nhanh gấp ba; đây là con số của người đăng bài, được Lukas đọc lại trong video đăng ngày 21/10/2026, không phải số đo của anh.
Theo Lukas (video đăng ngày 21/10/2026), cũng có những người đổi toàn bộ UI cho tối giản hơn một chút. Một người khác kể họ có một screensaver rất đẹp hiển thị doanh thu, lịch, thời tiết và thông báo mỗi khi có thanh toán Stripe mới, và nói rằng việc này cực kỳ dễ: họ gửi cho AI trang thông tin sản phẩm của chiếc TV, hỏi "can you hack this?", và nó dẫn họ đi từng bước.
Lukas giải thích rằng tất cả bắt nguồn từ ý tưởng reverse engineering. Theo cách anh mô tả trong video đăng ngày 21/10/2026, về cơ bản đó là một repo GitHub mà bạn đưa cho Claude Code, và nó cho Claude Code hoặc Codex tháo rời bất kỳ app nào, xuống tận tầng binary, rồi giải thích chính xác một feature hoạt động thế nào.

Theo Lukas (video đăng ngày 21/10/2026), người ta đã dùng nó để làm game, chẳng hạn trộn Mario với Call of Duty, hay Roblox, Minecraft với GTA và với Mario. Một ví dụ lớn khác: có người dùng repo này để dựng lại các chương trình của Adobe, như PhotoCraft tương ứng với Photoshop, VectorCraft với Illustrator, FilmCraft với Premiere Pro, và còn nữa. Anh nói các bản này đều là mã nguồn mở (theo video đăng ngày 21/10/2026), bạn có thể clone về và tuỳ chỉnh theo ý mình, và tất cả đều xây trên nguyên lý reverse engineering này.
2. Trước và sau: Google TV gốc và home screen tự làm
Hôm nay Lukas muốn tập trung vào việc reverse engineering chính chiếc smart TV của anh. Anh cho xem nó trông thế nào lúc trước, với hệ điều hành Android quen thuộc mà Google TV của anh chạy (tính tới video đăng ngày 21/10/2026).

Rồi anh cho xem kết quả sau đó, mà anh nói chỉ cần vài prompt, khoảng hai hay ba prompt, là cuối cùng ra được như thế này (theo Lukas, video đăng ngày 21/10/2026). Anh nói bắt đầu rất dễ, và vào việc luôn.

3. Bước đầu: cùng Wi-Fi, một prompt và ảnh màn hình About
Để bắt đầu, Lukas tìm được một bài đăng trên X mà anh thấy là dễ theo nhất, vì nó cho anh một hướng dẫn nhanh từng bước để thiết lập, kèm một prompt khá dài để copy rồi dán vào Claude Code (theo Lukas, video đăng ngày 21/10/2026). Anh làm đúng như vậy. Bước một: đặt máy tính và TV trên cùng một mạng Wi-Fi. Bước hai: dán prompt bên dưới vào Claude Code, kèm một ảnh chụp chiếc TV của bạn.
Anh dán prompt đó vào và thêm ảnh anh chụp bằng điện thoại. Phần đầu của prompt hiện trên màn hình như sau (prompt còn tiếp các ý khác bên dưới, nhưng màn hình không cho thấy hết):
This is my own TV on my own home network. It came full of preinstalled ads and apps I can't remove from the menu, and I want it clean, fast and controlled from this computer. I'll turn on developer mode myself with the remote and approve the connection on the TV. I authorize you to connect to it with ADB, Android's official developer tool, read its settings and make the changes below. Every change must be reversible. I've attached a photo of my TV or TV box (or its Settings → About screen). Done means: you're connected, the TV is cleaned of ads and bloat and runs faster, an open-source app of my choice is installed, and one command opens YouTube and plays a video I name while I watch each step on the TV. When a step doesn't need me, keep going. • Identify the model from the photo. If it isn't Android TV, Google TV or Fire TV, tell me what its official local-network control allows and do only that. • Install adb from official sources if it's missing. Tell me exactly what to press on my remote to turn on Developer options and USB or Wireless debugging, and to find the TV's IP. If adb connect is refused, use Wireless debugging pairing. On macOS, "No route to host" usually means the terminal needs Local Network access: allow it and retry.

Lukas có một lời khuyên về ảnh: tốt nhất là chụp màn hình About của hệ điều hành TV. Bạn vào Settings, chọn About, rồi chụp màn hình đó, thay vì chỉ chụp chiếc TV từ bên ngoài, vì như vậy agent sẽ hiểu rõ hơn nó đang làm việc với hệ điều hành nào (theo Lukas, video đăng ngày 21/10/2026). Trên màn hình, ảnh của anh là trang About ghi "Smart TV Pro", Android TV OS Version 14.
Sau đó Claude Code xác nhận lại: TV của anh là một chiếc TCL chạy Android TV OS 14. Nó cũng tìm thấy TV trên mạng nhà anh, vì hai máy dùng chung Wi-Fi (demo trong video đăng ngày 21/10/2026). Trên màn hình, Claude Code còn ghi rằng nó đang cài adb từ bản tải chính thức của Google và đã kiểm chữ ký.
4. Bật USB debugging để Claude Code kết nối được với TV
Theo Lukas, sau chừng ba đến bốn phút (theo số đo của Lukas Margerie, video đăng ngày 21/10/2026), Claude Code đưa cho anh một danh sách chỉ dẫn cần làm. Trên remote, anh phải đi theo đúng một đường dẫn trong menu, và điều quan trọng là phải bật được mục đó lên.

Đường dẫn trên màn hình là:
Settings → System → About → Android TV OS Build ×7 → Back → Developer options → USB debugging ON (and Wireless debugging ON if it's there). When "Allow USB debugging?" appears, tick Always allow from this computer and press Allow.
Nếu bạn có một chiếc TV khác và không tìm thấy mục này, Lukas gợi ý tìm "USB debugging on" kèm tên TV hoặc tên hệ điều hành của TV, và anh nói chắc chắn sẽ có video YouTube hướng dẫn (theo Lukas, video đăng ngày 21/10/2026). Dù sao thì bạn vẫn phải bật USB debugging lên, chọn luôn cho phép từ máy tính này (always allow from this computer) rồi bấm Allow.
Cũng trên màn hình đó, Claude Code ghi rằng một tiến trình chạy nền đang chờ cổng debugging của TV mở ra; ngay khi cổng mở, nó sẽ kết nối và chạy backup, rồi dừng lại cho anh xem danh sách dọn dẹp trước khi tắt bất cứ thứ gì. Dòng cuối ghi "Port 5555 is open" và TV sẽ hiện hộp hỏi "Allow USB debugging?" (demo trong video đăng ngày 21/10/2026).
5. Video thử đầu tiên và mẹo dùng Jev của TypeSafe
Khi đã thiết lập xong, TV bắt đầu phát một video YouTube ngẫu nhiên. Lukas kể lúc đầu nó chạy rất chậm, nhưng sang lần thử thứ hai và thứ ba thì nhanh hơn một chút (demo trong video đăng ngày 21/10/2026). Video được phát là Big Buck Bunny, và anh nói: đây là chú Big Buck Bunny.
Lukas nói anh để ý thấy nhiều người cũng gắn Jev của TypeSafe vào workflow này (theo Lukas, video đăng ngày 21/10/2026). Nếu bạn có những nhánh quyết định cụ thể muốn chạy nhanh hơn, bạn có thể dùng Jev để giúp bạn, giúp hệ điều hành, hay giúp Claude Code làm cho hệ điều hành đó nhanh hơn. Ví dụ, nếu bạn có một lệnh đặc biệt như mở một kênh nào đó trên YouTube, bạn có thể đặt sẵn để Claude Code dùng Jev làm việc đó, và theo anh nó sẽ mở nhanh hơn nhiều (video đăng ngày 21/10/2026). Anh nói đây chỉ là một mẹo nhỏ để mọi người biết.

Theo Lukas (video đăng ngày 21/10/2026), về cơ bản đó là dùng TypeSafe skill: bạn chỉ cần đăng nhập vào TypeSafe, copy prompt này và đưa cho Claude Code. Ở một bước sau, trên màn hình Claude Code có một dòng việc tên "Speed up TV yt command with Jev", và Claude Code ghi rằng nó sẽ tiếp tục phần tăng tốc lệnh YouTube (chụp màn hình nhanh hơn, bỏ các khoảng chờ cố định, dùng Jev làm phương án dự phòng đọc màn hình) trong một session riêng (demo trong video đăng ngày 21/10/2026).
6. Home screen riêng đầu tiên và giao diện con gà đẻ trứng
Sau phần setup, Lukas chỉ hỏi Claude Code một câu, đúng như anh gõ trên màn hình (demo trong video đăng ngày 21/10/2026):
can we theoretically create our own interface for the home screen?
Claude Code trả lời có: một app Android TV khai báo chính nó là home screen thì có thể thay thế home của Google TV (câu trả lời trong demo, video đăng ngày 21/10/2026). Thế là anh viết tiếp, đại ý "hey, let's build our own home screen app". Không có art direction, không có phong cách thiết kế nào từ phía anh, Claude Code tự dựng ra một home screen: một đồng hồ lớn, ngày tháng, và một lưới các ô app như Apple TV, BrowseHere, CBS Sports, DAZN, Disney+, ESPN, FOX Sports, HBO Max, Hulu, Internet Browser, Netflix (demo trong video đăng ngày 21/10/2026).
Lukas cho xem nó trên màn hình TV thật. Anh nói nó hơi "janky", nhưng nó chạy: anh chuyển được giữa các kênh, chọn được các app khác nhau và nó đưa anh tới đúng app đó (demo trong video đăng ngày 21/10/2026).
Để thử nghiệm thêm, anh gõ:
lets make the tv home ui look like a chicken laying eggs and each egg is another app
Một lần nữa Claude Code làm theo, và theo Lukas việc này mất khoảng năm phút (theo số đo của Lukas Margerie, video đăng ngày 21/10/2026). Trên màn hình, Claude Code mô tả ý tưởng: các app là những quả trứng do một con gà mái đẻ ra, có viền sáng vàng khi được chọn và hiệu ứng nứt, rung khi mở app; đồng hồ ở góc trên bên trái, con gà bên trái, trứng bên phải và một lớp rơm dọc phía dưới. Kết quả là con gà nhỏ, và mỗi quả trứng là một app khác nhau trên Google TV của anh (demo trong video đăng ngày 21/10/2026).

7. Đưa home screen gốc vào MagicPath
Một việc thú vị khác Lukas làm là nhờ Claude Code đưa thiết kế home gốc của TV vào một project MagicPath đang mở. Anh mở trình duyệt và tìm MagicPath, mà theo cách anh mô tả (video đăng ngày 21/10/2026) về cơ bản là một dạng canvas view cho Codex hay ChatGPT: bạn mở một file mới, có một canvas trống để thêm các thiết kế, remix chúng và tạo thiết kế mới, và cứ thế tiếp tục. Anh nói sẽ cho xem ngay sau đó.
Nếu bạn chưa kết nối MagicPath với Claude Code, Lukas chỉ vào chỗ chọn Claude Code trong MagicPath: theo anh chỉ cần làm theo vài bước, ba bước, thật ra là bốn bước, là kết nối xong (theo Lukas, video đăng ngày 21/10/2026).
Quay lại project, prompt anh gõ là:
can u add the original home design into this open magicpath project (project 65)
Trên màn hình, Claude Code ghi rằng nó sẽ dựng lại thiết kế Clean Home ban đầu (đồng hồ lớn, rồi một lưới banner app, trước bản con gà) thành một component MagicPath trong project 65, và chạy skill /magicpath:magicpath trước để theo workflow của skill đó. Nó dùng chính các banner app từ ảnh chụp màn hình TV và dò vị trí từng ô theo chỗ tên app xuất hiện (demo trong video đăng ngày 21/10/2026).

Kết quả, theo Lukas, là bản dựng lại một đối một (demo trong video đăng ngày 21/10/2026): đó đúng là UI gốc anh có trên TV. Anh dùng phím mũi tên cuộn xuống, đi qua các nội dung mà anh và vợ đang xem, các app, và cứ thế. Về cơ bản đây là UI của chiếc TV.
8. Dùng Mobbin MCP để tìm layout mới
Rồi Lukas nghĩ: thử dùng Mobbin xem. Theo anh (video đăng ngày 21/10/2026), Mobbin là một trong những cơ sở dữ liệu màn hình app và website lớn nhất thế giới, và họ có một MCP rất tốt mà bạn kết nối với Claude Code dễ dàng. Như vậy bạn không phải tự lục trong cơ sở dữ liệu của họ: Claude Code đọc được bạn đang muốn làm gì trong cuộc chat, vì nó có ngữ cảnh của những gì bạn đã trao đổi, và nó tìm được những UI element thú vị để thêm vào sản phẩm của bạn (theo Lukas, video đăng ngày 21/10/2026).
Anh gõ một câu bắt đầu bằng "cool, now use mobbin to find ways of how", đại ý: giờ dùng Mobbin để tìm cách cải thiện layout của thiết kế Google TV home này (demo trong video đăng ngày 21/10/2026).
Trên màn hình, Claude Code nói nó sẽ tìm trên Mobbin các home screen của TV và dịch vụ streaming để so với thiết kế Google TV Home, và vì Mobbin chỉ có web và iOS nên nó so với những thứ gần nhất bằng bốn lượt tìm song song: trang chủ streaming nói chung, hero banner của Netflix, Apple TV, và các hàng continue watching. Một dòng sau đó ghi rằng Mobbin không index app TV (lượt tìm Apple TV không ra gì), nên nó so với bản web màn hình lớn của các dịch vụ (demo trong video đăng ngày 21/10/2026).
Nó tìm được vài ví dụ, một loạt ảnh với các layout khác nhau: HBO Max, Paramount+, Netflix, cả The New York Times (demo trong video đăng ngày 21/10/2026). Theo Lukas, bạn có thể khoanh bất cứ chỗ nào, hoặc nói kiểu "tôi thích chỗ này của Paramount+, nhưng tôi thích chỗ kia của Disney+, hãy kết hợp lại và tạo variant mới dựa trên những thứ tôi thích" (cách làm anh gợi ý trong video đăng ngày 21/10/2026).
9. Hai variant mới từ những gì Mobbin tìm được
Trong trường hợp của mình, Lukas chỉ viết:
create 2 new variants remixing the google tv home component with your mobbin findings
"Google TV home component" ở đây là bản dựng lại home gốc. Trên màn hình, Claude Code nói sẽ làm cả hai variant thành thiết kế mới trong Project 65 và giữ nguyên Google TV Home hiện tại. Variant A, "Netflix-style hero": phần hero luôn có nút Play và More info, logo tựa phim, tóm tắt và nhãn đánh giá; hàng Continue watching nằm ngay bên dưới, mỗi phim ghi trạng thái ("Resume" hoặc "Start watching"), tập và thời gian còn lại. Variant B, "Preview rail": một hero card lồng vào với các slide bên cạnh ló ra, một dải thumbnail kiểu Paramount+ cho các tựa sắp tới thay cho dấu chấm, một hàng mood chip dưới các tab và poster cao cho Top picks (demo trong video đăng ngày 21/10/2026).

Lukas phóng to lên một chút. Variant bên trái có hai nút mới và layout khá giống bản gốc nhưng khác đi một chút: có những nút chuyển nhỏ để lướt qua các ảnh, và có thể bấm More info. Nó không đưa thẳng tới nội dung như bản gốc làm (demo trong video đăng ngày 21/10/2026).
Variant còn lại có thiết kế tổng thể khác hẳn: một banner nhỏ với các ảnh xem trước bên dưới, có các danh mục để chọn, và cách sắp xếp bên dưới cũng khác. Tất cả các app nằm ở đầu, rồi tới Top picks, rồi Continue watching, rồi Top selling movies (demo trong video đăng ngày 21/10/2026).
10. Thêm interaction bằng Rive CLI
Lukas kể rằng ngay trong ngày quay (video đăng ngày 21/10/2026), anh thấy một bài đăng trên X của một người bạn tốt. Anh thấy nó rất hay, vì người bạn đó cũng đang thử đúng chuyện này, nhưng dùng thêm Rive CLI để có các interaction động hơn. Trong bài đăng (video đăng ngày 21/10/2026), ảnh nền chuyển cảnh rất mượt, và các nút đổi trạng thái một cách tinh tế, đẹp mắt.
Theo Lukas (video đăng ngày 21/10/2026), bạn có thể dùng Rive CLI và đưa nó cho agent trong Claude Code. Trang tài liệu Rive CLI anh mở trên màn hình ghi rằng CLI đưa Rive vào terminal, để build file .riv cho app hay game và file .rev mở được trong Rive Editor, và có thể ghép CLI với coding agent bạn chọn: bạn mô tả hình ảnh, agent viết scene bằng Rive Markup Language (RML) (trên màn hình trong video đăng ngày 21/10/2026). Ví dụ lệnh trên trang:
rive create myproject # scaffold a project rive myproject # preview window, rebuilds as you edit
Anh chọn variant mình thích rồi bảo Claude Code tạo một bản sao của nó và dùng Rive CLI để cải thiện interaction design (demo trong video đăng ngày 21/10/2026). Prompt trên màn hình:
i like the selected variant. i want to create a new duplicate of this component and use the rive cli to improve the interaction design. what are your suggestions?

Claude Code đưa ra vài gợi ý: một focus frame, hero timer và chuyển cảnh, các nút Play và More info, hiệu ứng khi mở app, và các chi tiết nhỏ (demo trong video đăng ngày 21/10/2026). Trên màn hình, Lukas trả lời "go ahead with 1, 2 and 4, update the cli.", và Claude Code ghi rằng CLI đã được cập nhật lên 1.6.0 rồi lưu tài liệu Rive về máy để đọc các phần cần cho việc này: format, data binding, state machine, easing, focus và publishing (demo trong video đăng ngày 21/10/2026).
Kết quả là một vài chuyển cảnh mới khá thú vị (demo trong video đăng ngày 21/10/2026). Khi Lukas lướt qua các lựa chọn, có một đường viền chạy chuyển giữa các nút, và chữ cũng có hiệu ứng hover thú vị, tất cả đều do Rive làm.
Sau đó anh quay lại bài đăng của người bạn, copy URL, và bảo Claude Code áp dụng đúng phong cách đó, với hiệu ứng glow như trong bài đăng. Theo Lukas, anh nhận được đúng như vậy (demo trong video đăng ngày 21/10/2026). Anh còn chỉnh thêm một chút, thêm vài hạt particle nhỏ ở phía dưới. Anh nói đây chỉ là một ví dụ nhanh về những gì bạn làm được với Rive CLI và một thứ như thế này: giờ có một bộ chuyển đẹp tự động lướt qua các kênh và các app.
11. Lên TV thật, và tab Claude trên thanh điều hướng
Lukas cho xem giao diện này trên chiếc TV thật của anh, và nói nó giống hệt những gì đã build trong MagicPath (demo trong video đăng ngày 21/10/2026).

Anh còn thêm một feature mới trên thanh điều hướng, gọi là tab Claude. Trên bản MagicPath nó không chạy, nhưng trên TV thì có (demo trong video đăng ngày 21/10/2026). Khi bấm vào Claude, nó mở trình duyệt để bạn đăng nhập vào Claude (trên TV hiện trang đăng nhập Claude với dòng "Question what's next" và các nút Continue with Google, Continue with Apple), và cuối cùng bạn có thể viết prompt và build mọi thứ với Claude ngay trên TV. Lukas nói điều này thật sự rất hay.
12. Lấy style từ một bài viết, rồi trả TV về như cũ
Cuối cùng, trong video đăng ngày 21/10/2026, Lukas giới thiệu một bài viết mà anh gọi là rất hay trên X, và gửi lời cảm ơn tới tác giả vì đã viết ra và chia sẻ với mọi người. Tựa bài là "I gave my Samsung Frame a new home screen". Theo Lukas, trong đó có nhiều chi tiết sâu: tác giả đi qua toàn bộ quá trình đã thiết lập ra sao. Anh rất thích UI trong bài: rất gọn, phong cách rất đẹp.
Cách anh làm: lấy một bài viết như vậy, copy URL, dán thẳng vào Claude Code, bảo nó đọc bài viết và triển khai style đó thành một variant mới trong MagicPath để xem trước. Prompt trên màn hình bắt đầu bằng "read this article:", tiếp theo là link bài viết, rồi "and implement this style as a new variant in the magicpath file". Claude Code ghi rằng phần chữ mô tả style nhưng nó cần xem cả ảnh chụp màn hình, nên lấy ảnh từ bài viết, rồi kiểm tra repo công khai để lấy chi tiết chính xác (font, kích thước, chất liệu) (demo trong video đăng ngày 21/10/2026).
Lukas bấm vào variant đó, mở ra xem bản preview, và nói nó rất đẹp (demo trong video đăng ngày 21/10/2026). Nó có tất cả các app anh đã build, có cả app Claude. Anh vào settings và đổi ảnh nền. Phần layout cũng đổi được, chẳng hạn sang dạng icon kèm chữ, cùng các lựa chọn khác như font Manrope, focus kiểu glass, chất liệu soft, và điều khiển dạng text.

Rồi anh quay về home, và đây là kết quả: trên màn hình là một bầu trời sao, đồng hồ 10:10 ở góc trái và một hàng app ở dưới (demo trong video đăng ngày 21/10/2026). Theo Lukas, bạn có thể đưa thiết kế này về TV bất cứ khi nào muốn, và TV sẽ có một giao diện gọn gàng, trông đúng như vậy.
Điều cuối cùng là cách tắt tất cả, để Claude Code không còn quyền truy cập vào TV nữa và bạn trả mọi thứ về như trước. Theo Lukas (video đăng ngày 21/10/2026), bạn chỉ cần bảo Claude Code, đại ý "hey, revert back to original home screen for my TV", rồi tắt USB debugging đi.
Lukas hy vọng mọi người thích video, mời để lại bình luận hoặc câu hỏi bên dưới, và cảm ơn mọi người đã xem.
Nguồn và liên kết 8 nguồn
- Tên gốc: I Built My Own TV Operating System With Claude Code
- Sự kiện: YouTube
- Video gốc: https://www.youtube.com/watch?v=i0ytu6k8uac youtube.com
- Kênh YouTube Lukas Margerie (Lukas Margerie): youtube.com/channel/UCIZmRlV_wjS8jFQTbRxCV4g youtube.com
- Claude Code của Anthropic: claude.com/claude-code claude.com
- REA (Reverse Engineer Anything), repo mô tả là "Reverse engineer anything with agents, from app behavior down to native binaries" (đọc ngày 24/10/2026): github.com/morluto/rea github.com
- Android Debug Bridge (adb), tài liệu chính thức của Android (đọc ngày 24/10/2026): developer.android.com/tools/adb developer.android.com
- Rive CLI, trang "Working with AI Agents" về cách ghép Rive CLI với Claude Code hay agent khác (đọc ngày 24/10/2026): rive.app/docs/cli/agents rive.app