Aphanes
a webOS Dev Mode Manager
ἀφανής
unseen · not manifest
Pair an LG TV in Developer Mode and install homebrew apps from your phone.
Including the one that makes YouTube ad free.
free forever · no ads · open source
Screens
Nothing hides under a system bar.
Every screen respects the status bar, the navigation bar and display cutouts. That was the whole point. Switch this site between light and dark and a couple of them follow, showing the app's true-black OLED theme.

Paired TVs, with live reachability

What the TV says about itself

Installed apps

The Homebrew catalog

Two ways to install

Pairing

Every field explains itself

First run

Settings

About

ἀφανής
Drag sideways for the rest.
What it does
Developer Mode on an LG TV, finally made obvious.
Built against a real LG TV, on a real phone.
Pair once
Six characters from the TV screen buys a permanent key. After that the TV just answers, with nothing to reopen.
Install homebrew
Browse the public Homebrew catalog, or pick an .ipk already on the phone. Every catalog download is checked against its published checksum.
Watch the clock
Developer Mode expires. The remaining time counts down on screen, and renewing takes one tap from the couch.
Keep several TVs
Switch between them, rename them, correct an address that changed. Removing one asks first, in plain sight.
Know when it is off
A fast A quick knock rather than a proper visit. The app opens a bare connection to the TV’s SSH port, waits three seconds at most, then drops it without logging in. An answer means the TV is awake and on the network. says whether a TV is answering before anything slow is attempted, so a sleeping TV never costs a long wait.
Explain itself
SoC, OTA ID, firmware. Every field has a sheet saying what it is and whether it matters, rather than assuming.
Why it exists
A tool already existed. It just was not built for a phone.
dev-manager-desktop is excellent, and this project reads its protocol work with gratitude. It is desktop-first, though, and in the first half of 2026 a phone showed it.
- Content drew underneath the status bar and the navigation bar.
- The bottom navigation was icon-only, with no labels.
- Removing a paired device was hard to find.
None of that is a flaw in a desktop app. It is what happens when a desktop app is opened on a phone. So this is a rewrite that treats the phone as the target rather than an afterthought, and holds one bar above all others: nothing renders under a system bar, and nothing becomes untappable because of one, on any screen, in any orientation.
The first of those was a regression in their Android build, fixed in v1.99.19 in August 2026. The other two still stand.
How pairing works
Six characters, once, and then never again.
No account, no cloud, no relay. The phone and the TV work it out between themselves on your own network.
- 01
Ask the TV for its key
Developer Mode runs a small server on the TV. A plain request to it returns an encrypted key file.
GET /webos_rsa · port 9991 - 02
Unlock it on the phone
The six characters on the TV screen decrypt that file, on the phone. The passphrase never crosses the network at all.
decrypted locally - 03
Talk to the TV directly
From then on the key is enough. Installing an app is a message on webOS’s own internal bus, sent over SSH.
ssh prisoner@tv · port 9922
Privacy
Your TV, your network, your phone.
Managing a TV happens directly between the app and the TV. There is no account, no sync and no server in the middle.
Never leaves the phone
- Your paired TVs, their addresses and their names
- The pairing key for each one, in the phone’s keystore
- Everything you install, and everything you remove
- How you use the app, which is measured nowhere
Reaches the internet
The Homebrew catalog
Only when you open it
To: repo.webosbrew.org, the catalog’s own host
Sends: Nothing about you or your TVs
An app download
Only when you install one
To: Whichever host the catalog names, usually GitHub
Sends: Nothing about you or your TVs
The session time check
Only on a device’s detail page
To: developer.lge.com, LG’s own server
Sends: The session token read from that TV
The last one is the only request that sends anything at all, and it goes to LG. A Developer Mode session is theirs: they issue it, they time it, and their server is the only thing that knows how much of it is left. The TV cannot answer the question, by LG’s design rather than for want of trying, so there is no local check to use instead. The token is sent for that one question and nowhere else.
Free, and always will be
webOS Dev Mode Manager costs nothing, contains no advertising, and has no paid tier, no subscription and no in-app purchases. That will not change.
Official releases come from the project’s GitHub Releases page and nowhere else. The license permits anyone to redistribute the app, including for a fee, so a paid copy is not necessarily unlawful. It is simply not an official release, and not supported here.
The complete document, covering retention, deletion and contact.