원문 캡처 · github.com
원문 캡처 · github.com

Free My TV는 Google TV·Android TV, LG webOS, 삼성 Tizen TV에서 사용할 수 있는 오픈소스 홈 화면 앱이다. 광고와 후원 콘텐츠 없이 설치된 앱, 인기 콘텐츠, 날씨와 시세를 한 화면에 보여주며, TV의 기본 홈 화면은 언제든 버튼 한 번으로 복구할 수 있다.

프로젝트는 GitHub 저장소에 공개돼 있다. 제작자는 Claude Code로 만들었다고 밝힌다.

Free My TV에는 광고·후원 행·배너·자동 재생 프로모션이 없다. 사용자가 고른 스트리밍 앱을 유리 선반 형태로 배치하고, 선반에 표시할 앱과 순서는 TV에서 설정한다. 매시간 새로 고르는 인기 콘텐츠 세 편은 이번 주 인기작과 최신 공개작 가운데 사용자가 이미 설치한 앱에서 볼 수 있는 작품이다. 영화와 프로그램은 각각 별도 탭으로 나뉜다.

날씨에서는 시간대별 예보와 일출·일몰을 확인할 수 있고, 암호화폐 가격도 표시할 수 있다. 화면은 사용자가 설정한 도시의 실제 일몰에 맞춰 낮에는 밝게, 밤에는 어둡게 바뀐다. 화면 보호기는 추천작 사진과 큰 시계를 전체 화면에 표시한다. Google TV와 Android TV에서는 컴퓨터에서 사진을 최대 100장까지 보낼 수 있으며, 화면 보호기에 사용하거나 추천작이 없을 때 홈 화면 배경으로 매시간 한 장씩 표시할 수 있다.

제작자는 TV 자체 칩에서 60fps로 동작하고 모든 프레임을 16.6밀리초 안에 처리한다고 설명한다. 메모리 사용량은 242MB에서 96MB로 60% 줄었다고 한다. 이 수치는 Android 14를 실행하는 98인치 TCL Google TV에서 측정했다.

설치와 지원 기기

Google TV와 Android TV는 Android 8 이상에서 사용할 수 있다. 설치에는 같은 Wi-Fi에 연결된 컴퓨터가 필요하며, 안내된 설치 시간은 약 10분이다. LG TV는 webOS 3 이상, 삼성 TV는 2017년 이후 모델(Tizen 3 이상)을 지원한다. 삼성의 2015·2016년 모델은 Orsay 또는 Tizen 2를 사용해 실행할 수 없다. 해당 TV에 HDMI로 Google TV 스트리머를 연결하는 방법은 있다.

Google TV·Android TV 설치를 시작하려면 TV에서 설정 → 시스템 → 정보로 이동해 Android TV OS 빌드를 7번 누르고 개발자 모드를 켠다. 설정 → 시스템 → 개발자 옵션에서 USB 디버깅을 활성화한 뒤, 설정 → 네트워크 및 인터넷에서 TV의 IP 주소를 확인한다.

간편 설치는 Claude Code, Codex, Antigravity 같은 AI 코딩 도우미에 다음과 같이 요청하는 방식이다. TV의 IP와 도시를 실제 값으로 바꿔 입력한다.

Install Free My TV (github.com/simbasjungles/free-my-tv) on my TV at 192.168.1.50. I live in Lisbon.

도우미가 코드를 내려받고 필요한 도구를 설치한 뒤 앱을 빌드해 TV에 설치한다. 중요한 작업 전에는 확인을 요청한다. TV에서 Free My TV → Home Screen → Free My TV를 열면 USB 디버깅 허용 메시지가 나타난다. ‘항상 허용’을 선택하고 승인한다.

수동 설치에는 JDK 17 이상, Android SDK 명령줄 도구(build-tools 34, platform android-34), adb가 필요하다. macOS에서는 다음 명령으로 도구를 설치할 수 있다.

sh
brew install --cask temurin android-commandlinetools android-platform-tools
sdkmanager "build-tools;34.0.0" "platforms;android-34"

Linux에서는 패키지 관리자로 OpenJDK 17, Android 명령줄 도구, adb를 설치한 뒤 같은 sdkmanager 명령을 실행한다. Windows에서는 Claude Code가 사용하는 Git Bash 또는 WSL을 이용한다. 저장소에서 ./build.sh를 실행하면 처음에 config.properties가 만들어진다. 여기에 도시와 TMDB 키를 설정하고 다시 빌드한다.

다음으로 adb를 연결하고 APK를 설치한다.

sh
adb connect 192.168.1.50:5555
adb install -r FreeMyTV.apk

설치가 멈춘 것처럼 보이면 TV 화면을 확인한다. Android 14에서는 Google Play Protect가 Free My TV를 ‘오래된 Android 버전용으로 제작된 위험한 앱’으로 막을 수 있다. 이 경우 ‘세부정보 더보기 → 그래도 설치’를 선택한다. 업데이트 때는 다시 묻지 않는다.

Android 14를 실행하는 Chromecast with Google TV는 USB 디버깅을 켜도 포트 5555가 닫혀 있을 수 있다. 개발자 옵션에서 무선 디버깅을 켜고 adb pair <address:port> <code>로 페어링한 다음 해당 연결로 adb tcpip 5555를 실행한다. 포트 5555는 TV를 재시작할 때마다 다시 닫히므로 이후에는 adb tcpip 5555를 다시 실행해야 한다. 페어링은 유지된다. 포트가 닫혀 있는 동안에는 Original 전환, 감시 프로세스, 부팅 점검이 ADB에 연결되지 않는다.

TCL TV에서는 백그라운드 실행도 허용해야 한다. TCL은 기본적으로 이를 막으며, 이 스위치는 자동으로 시작하지 않는다.

sh
adb shell "appops set io.freemytv AUTO_START allow || appops set io.freemytv APP_AUTO_START allow"

설치 후 TV에서 Free My TV → Home Screen → Free My TV를 연다. 이번에는 Free My TV 자체에 대한 USB 디버깅 허용 메시지가 나타나므로 ‘항상 허용’을 선택한다. Android 8~10에서는 컴퓨터가 계속 연결돼 있으면 TV의 응답이 그 컴퓨터에 전달될 수 있으므로 먼저 adb disconnect 192.168.1.50:5555를 실행한다.

LG TV에서는 LG Content Store에서 Developer Mode 앱을 설치하고 무료 LG 개발자 계정으로 로그인한다. Dev Mode Status를 켜면 TV가 재시작된다. 그 뒤 Key Server를 켜고 TV의 IP 주소와 표시된 암호를 기록한다. 컴퓨터에 Python 3이 필요하다. 저장소를 내려받고 빌드한다. Google TV와 같은 config.properties에 도시와 TMDB 키를 설정할 수 있다.

sh
git clone https://github.com/simbasjungles/free-my-tv
cd free-my-tv
python3 webos/build.py
python3 webos/install.py 192.168.1.50

처음 설치할 때는 TV의 암호를 입력해야 하며 업데이트 때는 다시 묻지 않는다. 앱이 열린 상태에서 리모컨의 숫자 버튼을 길게 누르면 이후 어디서든 그 버튼으로 앱을 열 수 있다. 숫자 버튼이 없는 리모컨에서는 LG 홈 화면의 앱 목록에서 연다. AI 도우미에 LG TV와 IP, 도시를 알려주면 빌드하고 설치 명령을 안내하지만, 암호는 사용자가 직접 입력해야 한다.

컴퓨터 없이 설치하려면 webOS Homebrew Channel의 설정에서 https://freemytv.io/webos/apps.json 저장소를 추가한다. 목록에 Free My TV가 표시된다. 이 배포판은 TV의 시간대에서 도시를 가져오며, 추천 콘텐츠를 사용하려면 자체 빌드와 TMDB 키가 필요하다. 직접 빌드한 앱을 이 경로로 업데이트하면 배포판이 자체 빌드를 덮어쓰므로 주의해야 한다.

webOS 6 이상에서는 Developer Mode로 설치한 앱이 TV에 설치된 앱 목록을 볼 수 없도록 LG가 제한한다. 이때 Free My TV는 Netflix, YouTube, Prime Video, Disney+, Apple TV, Plex 등 알려진 앱을 찾아 표시하고, LG 휴대전화 앱이 사용하는 접근 권한을 TV에 한 번 요청한다. 허용하면 다음 실행부터 모든 앱과 아이콘이 표시된다. Developer Mode는 약 40일 동안 유지된다. 가끔 Developer Mode 앱을 열어 EXTEND를 눌러야 한다. 제거 명령은 다음과 같다.

sh
python3 webos/install.py 192.168.1.50 --uninstall

삼성 TV에서는 같은 Wi-Fi에 연결된 컴퓨터에서 설치한다. TV의 Apps 화면에서 리모컨으로 1 2 3 4 5를 입력하고 Developer mode를 켠다. Host PC IP에 컴퓨터의 IP 주소를 입력한 뒤 TV를 재시작한다. TizenBrew Installer를 내려받아 실행하고 TV에 연결한다. GitHub 설치 항목에 simbasjungles/free-my-tv를 입력한다. 2023년 이후 TV에서는 앱 서명을 위해 삼성 계정에 한 번 로그인해야 한다. TV를 켤 때 Free My TV를 바로 열려면 설정의 Start Screen Options에서 Autorun Last App을 켠다.

삼성 배포판은 TV 시간대에서 도시를 가져온다. 정확한 도시와 추천 콘텐츠를 사용하려면 자체 config.properties와 TMDB 키로 빌드해야 한다. 폴더를 Claude Code에서 열고 삼성 TV의 IP와 도시를 알려주면 삼성 도구를 준비한다. 2023년 이후 TV에서는 브라우저에서 삼성 계정으로 로그인해 인증서를 만들어야 한다. 서명한 빌드는 Python만 있으면 설치할 수 있다. Tizen Studio나 Apple Silicon Mac의 Rosetta는 필요하지 않다.

sh
python3 tizen/install.py 192.168.1.50

설정과 콘텐츠

Google TV, LG, 삼성 TV는 첫 빌드에서 생성되는 config.properties를 공유한다. 대부분의 설정은 TV의 Free My TV → Home Settings에서도 바꿀 수 있으며, TV에서 선택한 값이 우선한다.

설정기능과 기본값
tmdb_key추천 콘텐츠에 사용하는 무료 TMDB 키. 기본값은 비어 있다.
tmdb_region앱별 제공 작품을 정하는 두 글자 국가 코드. 기본값은 US다.
watchmode_key선택 항목인 무료 Watchmode 키. 추천작을 스트리밍 앱의 작품 페이지에서 연다. 기본값은 비어 있다.
latitude, longitude날씨와 일몰에 사용할 도시. 기본값은 뉴욕이다.
city날씨 카드에 표시할 도시 이름. 기본값은 Weather다.
hide_animation만화와 애니메이션을 추천에서 제외한다. 기본값은 false다.
languageauto는 TV 언어를 따르며, 번역 파일이 있는 언어도 선택할 수 있다. 기본값은 auto다. 예: en, pt, es, de, ru, fr, ja.
show_crypto홈 화면과 화면 보호기에 Binance 암호화폐 시세를 표시한다. 기본값은 true다.
currency시세 통화. USD, EUR, BRL 등을 선택하며 기본값은 USD다.
temperature온도 단위로 C, F, auto를 선택한다. 기본값은 auto다.
disable_assistantGoogle Assistant도 끈다. 기본값은 false다.
hide_servicesTV에 앱이 설치돼 있어도 추천에서 제외할 스트리밍 서비스 목록. netflix, prime, disney 등을 쉼표로 구분한다. Google TV 전용이며 기본값은 비어 있다.
hide_apps선반, 모든 앱, 추천에서 제외할 앱의 ID 또는 이름 일부를 쉼표로 구분한다. 제거할 수 없는 기본 앱에도 쓸 수 있으며 LG·삼성 전용이다. 기본값은 비어 있다.

설정을 변경한 뒤 ./build.sh를 실행하고 앱을 다시 설치한다. 업데이트 서명에 쓰이는 freemytv.keystore는 보관해야 한다.

TMDB 키는 themoviedb.org에서 계정을 만든 뒤 Settings → API에서 개발자 키를 요청해 발급받는다. config.properties의 tmdb_key= 뒤에 API Read Access Token 또는 API Key를 넣는다. 이 파일은 Git에 포함되지 않는다.

선택 사항인 무료 Watchmode 키를 config.properties의 watchmode_key=에 넣으면 추천작을 스트리밍 앱의 홈 화면이 아니라 작품 페이지에서 열 수 있다. 무료 요금제는 월 2,500크레딧이며, 작품마다 처음에는 요청 두 번을 사용하고 이후 결과를 기억한다. 작품의 웹 주소를 받는 앱에서 작동하며, 테스트된 앱은 Prime Video와 JioHotstar다. 그렇지 않은 앱은 키가 없을 때처럼 앱을 연다.

Google TV와 Android TV에서는 ADB로 컴퓨터의 사진이나 폴더를 보낼 수 있다.

sh
python3 tools/photos.py <TV IP> beach.jpg hills.jpg Holidays/

사진은 앱 전용 폴더에 저장되므로 별도 권한이 필요하지 않다. Android 11에서는 ADB가 다른 앱 폴더에 접근하지 못해 Free My TV 자체를 거친다. 다음에 홈 화면, 화면 보호기 또는 설정을 열면 사진을 가져와 올바른 방향으로 돌리고 16:9로 자른 뒤 TV 크기에 맞춰 조정한다. GPS 등 메타데이터를 지우고, 가져온 원본 파일은 삭제한다. 화면 보호기에서는 전송한 순서로 사진을 표시하며 추천작 사진 대신 사용한다. TMDB 키가 없으면 사진 한 장이 매시간 홈 화면 배경이 된다. Home Settings → My Photos에서 화살표로 사진 표시를 켜거나 끄고, OK로 삭제할 수 있다. 최대 100장이며 JPEG·PNG·WebP를 지원하고 Android 9 이상에서는 HEIC도 지원한다.

기본 화면 복구와 적용 범위

TV에서 Free My TV → Home Screen → Original을 선택하면 제조사 기본 홈 화면과 화면 보호기, 모든 앱이 원래대로 돌아온다. 새 홈 화면이 5분 안에 세 번 충돌하면 자동으로 기본 홈 화면으로 전환한다. 완전히 제거하려면 먼저 Original로 전환한 뒤 설정 → 앱에서 Free My TV를 삭제한다. 앱을 켠 상태에서 삭제했더라도 다시 설치해 Original을 선택하면 TV 설정에 보관된 비활성화 앱 목록을 이용해 원래 상태로 복구한다.

Free My TV는 홈 화면과 화면 보호기가 된다. 기본 홈 화면과 화면 보호기를 삭제하지 않고 비활성화한다. Google TV의 복구 홈, Play Games, YouTube Music도 비활성화한다. TCL TV에서는 TCL Channel, 메시지, 매장 데모, 호텔 메뉴, 설명서, 미러링 및 로깅 앱을 끈다. Philco TV에서는 홍보 채널과 앱 다운로드를 제공하는 AI PONT와 설명서를, Multilaser TV에서는 Anoki 화면 콘텐츠 인식(ACR), 매장 데모와 설명서를 끈다. KTC 제조 TV(NextStar)에서도 Anoki ACR, 매장 데모와 설명서를 끈다. Google Assistant는 disable_assistant=true일 때만 비활성화한다.

Google TV에서는 영화와 프로그램에 관한 Assistant 결과가 Google TV 홈 앱에서 나오는데, Free My TV 모드에서는 그 앱이 꺼져 있다. 따라서 프로그램 재생 요청에 “죄송합니다. 이해하지 못했습니다”라고 답하거나 검색 결과에 YouTube 동영상만 나타날 수 있다. 앱 열기, 일반 질문, 앱 자체의 음성 검색(예: YouTube)은 계속 작동하며 Original을 선택하면 모두 복구된다.

TCL TV에서는 접근성 서비스가 리모컨의 Netflix·YouTube·Prime 버튼만 읽어 버튼 기능을 유지한다. Free My TV → Remote Buttons에서 각 버튼이 열 앱을 선택할 수 있고, Original로 바꾸면 서비스가 꺼진다. Vestel 제조 TV(F&U 및 기타 자체 브랜드)와 Xiaomi(Formovie) 프로젝터에서는 Netflix 버튼에 같은 방식이 적용되고, KTC 제조 TV(NextStar)에서는 Tabii 버튼에 적용된다. Sony TV에서는 BRAVIA CORE, Netflix, Disney+, Prime Video, YouTube, Crunchyroll 버튼과 해당 리모컨에 있는 Google Play 버튼이 선택한 앱을 열거나 Sony 기본 기능을 유지하도록 설정할 수 있다. Xiaomi TV에서 리모컨의 Home 대신 Mi 버튼을 사용하는 경우 이 버튼은 Free My TV를 열며, 설정에 따라 PatchWall 또는 다른 앱을 열 수도 있다. 러시아에서 판매되는 Xiaomi TV의 Okko, VK, Rutube, KION, Wink, IVI 버튼은 다른 앱을 선택하기 전까지 Xiaomi 기본 기능을 유지한다.

HY300 프로젝터는 기본 홈 화면이 유일한 설정 진입 경로였기 때문에 하단 서랍에 Keystone(키스톤, 줌, 투사 모드)과 Screen Mirroring(프로젝터의 Miracast 수신기)이 추가된다. HDMI는 프로젝터 자체 플레이어로 열린다.

화면, 소리, 입력, 리모컨 페어링, Google 서비스, Play Store와 Android 구성 요소, 제조사 메뉴는 보호 목록에 포함하며 변경 전에 확인한다. 항목을 끄기 전에 TV에 입력 단자나 리모컨의 Input 버튼이 해당 항목에 의존하는지 물으며, 의존하는 항목은 끄지 않는다. Google TV에서는 기본 홈 화면보다 먼저 설정 앱을 끄고 기본 홈 화면이 꺼진 뒤 다시 켜 복구 화면이 중간에 Home 버튼을 차지하지 않도록 한다.

Wi-Fi 네트워크를 저장한 앱은 끄지 않는다. Android가 저장된 네트워크를 지우기 때문이다. TV 초기 설정에서 네트워크를 저장했다면 전환 전에 설정에서 해당 네트워크를 잊고 다시 연결하라는 안내가 나온다. 범위 밖에 있는 저장 네트워크는 설정에 표시되지 않을 수 있으며, Claude Code를 사용해 제거할 수 있다.

Google TV와 Android TV에서는 TCL, Sony, Hisense, Philips, Xiaomi, Vestel 제조 TV(F&U), KTC 제조 TV(NextStar)와 Chromecast with Google TV, Google TV Streamer, onn 4K, NVIDIA Shield 같은 스트리머에서 실행할 수 있다. LG와 삼성 TV에서는 각각 앱으로 설치한다. 다른 TV에서도 Google TV 스트리머를 HDMI에 연결해 스트리머 쪽 홈 화면을 바꿀 수 있다.

다른 브랜드나 모델에 맞추려면 저장소 폴더를 Claude Code에서 열고 “set it up for my Sony”처럼 요청한다. 도우미가 TV를 살펴보고 기본 홈 화면과 홍보 앱을 찾은 뒤 목록을 고치고 테스트를 안내하도록 제작됐다. 방법은 CLAUDE.md에 적혀 있다. 비활성화 대상 앱은 HomeMode.java의 DEBLOAT, 건드리지 않을 앱은 같은 파일의 PROTECTED에 둔다. 선반 앱은 HomeApps.java의 SHELF, 브랜드별 실시간 TV 앱은 같은 파일의 LIVE_TV_APPS에서 관리한다.

코드를 바꾸는 데 Claude Code를 활용할 수 있다. 예를 들어 “Crunchyroll을 선반에 추가해”, “가격을 유로로 표시해”, “카탈루냐어를 추가해”, “일몰 한 시간 뒤 야간 화면으로 바꿔”라고 요청할 수 있다.

구현·번역·개인정보

Android 앱은 Gradle과 라이브러리 없이 만든다. build.sh는 aapt2, javac, d8, zipalign, apksigner를 실행해 2MB APK를 만든다. 앱은 TV 내부에서 TV 자체 ADB를 사용한다. 자체 키로 127.0.0.1:5555에 연결해 USB 디버깅 허용 메시지를 띄우고 cmd package set-home-activity, settings put secure screensaver_components, pm disable-user 등 사용자가 직접 실행할 수 있는 명령을 수행한다. 네트워크에서 수신 대기하는 항목은 없다.

화면은 Canvas 하나에 직접 그린다. Android 13에서는 반투명 유리와 하늘 표현에 셰이더를 사용한다. Android 8~12에서는 단색 채우기를 쓰며, 구형 GPU를 사용하는 Android 8~11에서는 그림자를 가볍게 하고 GPU 레이어를 쓰지 않는다. 별도 프로세스의 감시 기능은 5분에 세 번 충돌하면 기본 홈 화면을 복구하고, 부팅 점검은 TV 업데이트 뒤에도 사용자의 선택을 유지한다.

LG와 삼성 버전은 구형 TV의 Chromium에 맞춘 HTML·CSS·JavaScript로 구현했으며 프레임워크를 사용하지 않는다. LG의 webos/build.py는 config.properties를 .ipk에 묶으며 LG 도구 없이 빌드한다. webos/install.py는 Developer Mode로 설치한다. LG에서는 자체 서비스 버스인 Luna를 통해 앱을 열고 목록을 가져오며, 이는 LG 런처와 같은 방식이다. tizen/build.py는 같은 앱을 삼성 .wgt로 묶고 Tizen 웹 API로 앱과 입력을 다룬다. 컴퓨터에서 미리 보려면 다음 명령을 실행한 뒤 out/webos/index.html을 연다. 미리보기에는 예시 앱 목록이 표시된다.

sh
python3 webos/build.py --preview

데이터는 인기작·신작·국가별 스트리밍 앱 정보를 제공하는 TMDB, 예보와 일출·일몰을 제공하는 Open-Meteo에서 가져온다. show_crypto=true일 때는 Binance의 24시간 가격을 선택적으로 사용한다.

주요 파일은 HomeView.java(홈 화면), HomeMode.java(Free My TV와 Original 전환), Adb.java(TV 내부 ADB), Recs.java(TMDB 추천), HomeData.java(날씨와 시세), HomeApps.java(선반·입력·모든 앱), DreamView.java(화면 보호기), SettingsActivity.java(설정 화면 및 앱 아이콘), Prefs.java(TV에서 바꾼 설정), RemoteKeys.java(TCL·Sony·Xiaomi 등 리모컨 앱 버튼), Watchdog.java(복구 기능)이다. LG 홈 화면은 web/home.js, LG·삼성의 앱과 입력은 web/tv.js에서 다룬다. 웹사이트 freemytv.io는 docs/의 HTML·CSS·JavaScript로 만들었으며 GitHub Pages에서 제공한다.

Google TV·LG·삼성에서 언어별 번역은 app/assets/i18n/<lang>.json에 저장한다. 코드의 영어 문장을 키로 사용하며, 자동 설정은 TV 언어에 맞는 파일을 사용하고 파일이 없으면 영어로 표시한다. Home Settings → Language에서 제공 언어를 고를 수 있다. 현재 영어, 포르투갈어, 스페인어, 독일어, 프랑스어, 이탈리아어, 네덜란드어, 폴란드어, 스웨덴어, 덴마크어, 노르웨이어, 핀란드어, 체코어, 루마니아어, 터키어, 러시아어, 우크라이나어, 그리스어, 일본어, 한국어, 중국어 간체, 힌디어, 인도네시아어, 베트남어, 태국어를 지원한다. 포르투갈어·스페인어·독일어·러시아어·태국어·터키어는 사람이 번역해 기준으로 삼으며, 수정은 직접 해야 한다. 나머지는 기계 번역이며 원어민의 수정을 환영한다.

새 언어 파일은 다음 명령으로 만든다. ANTHROPIC_API_KEY를 설정하면 API로 문자열만 보내 번역을 채울 수 있다.

sh
python3 tools/translate.py --new ca
python3 tools/translate.py --fill --lang ca

코드의 문장을 바꾼 뒤 python3 tools/translate.py를 실행하면 언어별 누락 문자열을 확인한다. --fill은 빠진 문자열만 번역하고 --prune은 코드에서 더는 쓰지 않는 문자열을 지운다. 파일을 쓰지 않고 전체 번역 목록을 검사하려면 python3 tools/translate.py --check를 실행한다. 런타임에 만들어지는 "{n} min ago" 같은 문자열은 언어별 어순을 허용하도록 자리표시자를 쓴다. "unit|Automatic"처럼 같은 영어 단어가 다른 문맥에 등장할 때는 언어에 따라 다른 번역이 필요할 수 있다. 복수형도 언어별 규칙을 따른다. 러시아어 예시는 "one:{n} сезон|few:{n} сезона|many:{n} сезонов|other:{n} сезона"이고 일본어 예시는 "other:{n}シーズン"이다. Android가 숫자에 맞는 형태를 선택한다. 아랍어·히브리어·페르시아어는 오른쪽에서 왼쪽으로 쓰는 레이아웃을 뒤집어야 하므로 아직 지원하지 않는다. 중국어·일본어·한국어·힌디어는 Inter에 해당 글자가 없어 TV 시스템 글꼴로 표시한다.

앱에는 계정, 분석 기능, 추적 기능이 없다. 설정한 좌표 또는 시간대의 대표 도시를 이용해 TMDB와 Open-Meteo에 연결한다. Binance에는 show_crypto=true일 때만 연결하고, Watchmode에는 watchmode_key를 설정했을 때만 연결한다. 설정은 컴퓨터와 TV에 남는다.

제작자는 Claude Code를 사용했다고 밝힌다. LG 버전은 @danielthejoker18이 FreeMyTvWebOS(MIT)에서 조사한 Developer Mode 설치 방식과 TV 서비스 버스 앱 실행 방식을 바탕으로 한다. 삼성 TV 설치에는 reisxd가 만든 TizenBrew Installer를 사용한다. 제품은 TMDB API를 사용하지만 TMDB의 보증이나 인증을 받지 않았다. 작품 링크에는 Watchmode, 날씨에는 Open-Meteo.com(CC BY 4.0), 시세에는 Binance 공개 API를 사용한다. 아이콘은 Material Symbols(Apache 2.0), 글꼴은 Inter(SIL OFL 1.1), 코인 로고는 cryptocurrency-icons(CC0), 삼성 앱 로고는 Simple Icons(CC0)를 사용한다. Google, TCL, LG, 삼성 또는 스트리밍 서비스와 제휴하지 않으며 앱 이름과 로고의 권리는 각 소유자에게 있다. 라이선스는 MIT이며 포크·수정·배포할 수 있다.