Open-source project
rorygallagher2024/glasshouse avatar
rorygallagher2024/glasshouse

Glasshouse turns a rooted webOS TV into a local control surface

For rooted LG webOS TVs: a live dashboard, privacy control, debloating (Hide system apps & uninstall apps), an ad & telemetry blocker, and custom screensavers. Runs on the TV itself. Includes an optional Home Assistant MQTT bridge for smart home control.

976 stars59 forksJavaScriptMIT

At a glance

What is it?
Glasshouse is a server that runs on a rooted LG webOS TV and serves its own dashboard over the local network, with ad and telemetry blocking, app debloating, OLED care, and an optional MQTT bridge for Home Assistant. It is useful only if you are willing to root the television first.
Who is it for?
Glasshouse suits owners of a rooted LG webOS television who want ad and telemetry blocking, app removal, hardware telemetry and Home Assistant control without a cloud account, and the browser emulator makes it evaluable before a real TV is touched. It is the wrong tool for an unrooted set, for any TV outside the listed webOS range, and for anyone unwilling to accept that a service running on the television can switch the panel protections off.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly JavaScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.

Editorial analysis

A server that lives on the television, not in the cloud

Glasshouse is positioned as a server that runs directly on a rooted LG webOS TV, offering both a live browser dashboard and an optional dashboard app on the TV itself. The README is explicit that the project is local, transparent, and requires no cloud service, and the deployment story depends on that claim rather than merely asserting it: the TV needs no external dependencies and no internet access once it is running. The access requirement is the sharp edge. You need root obtained through the Homebrew Channel, plus telnet or SSH, before anything can be installed. The compatibility list covers webOS 2.2 through 11, described as confirmed and tested across 2015 to 2026 models, with the author noting that other versions likely work but not promising it. OLED panels get the full feature set including panel wear telemetry, while LCD panels get the core dashboard, controls and telemetry, with the OLED Care tab hiding itself.

Deploying takes one script and the television's address

The quick start is four steps, and only the middle two are under your control. Root the TV and install the Homebrew Channel, clone the repository on a computer on the same network, then run the deploy script from the server directory with the television's address as its argument:

bash
./deploy.sh <tv-ip>

The script is the whole installation procedure as the README presents it. The installation guide carries the details and troubleshooting, which tells you the script is a starting point rather than a complete story. Once the server answers, the dashboard is reached over plain HTTP on port 8080 in a browser on the same network:

bash
http://<tv-ip>:8080/

Because everything stays on the local network, the browser URL is also the whole security model in one line. There is no login described here, no certificate and no reverse proxy, which is fine on a home LAN and a poor idea on a shared or guest network.

A dashboard, an emulator, and a type checker in the repo

The repository is not only a deployable server. The package manifest for a project named glasshouse, version 0.118.0, exposes three developer scripts alongside the TypeScript and Node type definitions:

json
    "test": "node test/run-all.js",
    "typecheck": "tsc",
    "emulate": "node scripts/emulate-tv.js --open"

The emulator script is the interesting one for evaluating the project, since it opens a browser window that imitates a television instead of requiring hardware. The repository layout supports the same impression: a server directory, a test directory, a scripts directory, a hbc directory, docs and a mkdocs configuration, plus Nix flake files, a config example file and Python helpers such as probe_defs.py, tvmon.py and tvstats.sh. The project is written in JavaScript with TypeScript checking on top, and it packages its own documentation site.

The privacy tab covers the parts of webOS that phone home

The clearest statement of purpose sits in the privacy feature. The dashboard shows whether LG's content recognition engine is running and sampling the screen, whether an advertising identifier is set and whether ad tracking is limited, and lists every data agreement recorded on the television, with most of them switchable from the interface. There is also an on-TV blocker for LG's advertising and telemetry endpoints, plus a switch for the two diagnostics services that upload to LG. The stated audience is people who reject network-connected home appliances being used as an advertising and telemetry platform, and this is the part of Glasshouse that has no equivalent in the stock interface. The custom screensaver set, including a clock, a starfield, fireworks and the television's own readings, is offered on the same page, which suggests the privacy work is bundled with the quality of life work rather than separated into a specialist tool.

Debloating reaches deeper than hiding an icon

App management is not limited to the launcher. The dashboard can install apps from the Homebrew Channel catalog, permanently uninstall apps to reclaim internal flash storage, disable unnecessary background system services to free RAM and CPU cycles, and stop LG keeping apps loaded in the background when they are never used. On top of that, it hides non-removable built-in LG system apps from the home launcher, and on webOS 9 it strips LG's home screen down to apps and inputs. Each of these is a firmware level change to a device with a fixed internal storage budget, and the permanence is worth noting. An uninstall that reclaims flash is not the same operation as hiding a system app, and the first cannot be undone from the dashboard while the second can. The README also carries a separate feature for remapping the remote's shortcut buttons, including Netflix, Prime Video, Guide and the color keys, to any installed app, an HDMI input or Live TV, with the change applying immediately and surviving reboots without waiting for the dashboard to start.

MQTT turns the television into a single Home Assistant device

The smart home integration is an optional bridge rather than the core of the project. It exposes the television as a single device containing its controls and telemetry, with Home Assistant support through MQTT Discovery, and the same interface remains available to other MQTT clients. Button press events can also travel the other way, so the television's remote can control a smart home. The alternative to Glasshouse is the television's own service menu and cloud dependent built-in menus. LG's engineering menu is normally reachable only with a service remote and a PIN, which is why Glasshouse renders it on the television screen from a browser, and newer firmware shows a cut-down version of that menu until it is unlocked, something the dashboard can also do. That is the real difference in approach: the vendor path is a hidden engineering mode tied to physical access and remote firmware, while Glasshouse exposes the same surfaces through a local web interface.

Release cadence, licence and the cost of the root

The project is under the MIT licence, which is permissive and lets a company use, modify and redistribute the code without the copyleft obligations that attach to shared source releases, though it is not legal advice and third-party components in a deployment still carry their own terms. The release history shows steady work: v0.118.0 on 2026-10-19, v0.117.2 on 2026-10-18 and v0.117.1 on 2026-10-18, and the last push was on 2026-10-19. Frequent version numbers at that cadence mean an upgrade path exists but also that pinning to a release is a deliberate choice rather than the default. The upgrade cost sits elsewhere, in the root itself. Rooting a television voids the warranty in some regions, may disable features on newer firmware, and puts a service with control over panel protections, storage and network settings on a device in your living room.

Editorial conclusion

Glasshouse suits owners of a rooted LG webOS television who want ad and telemetry blocking, app removal, hardware telemetry and Home Assistant control without a cloud account, and the browser emulator makes it evaluable before a real TV is touched. It is the wrong tool for an unrooted set, for any TV outside the listed webOS range, and for anyone unwilling to accept that a service running on the television can switch the panel protections off. Before deploying to a panel you care about, check the tested TV table for your series, confirm your webOS version falls in the supported range, and review the privacy switches in the dashboard against what you actually want the set to do.

Frequently asked questions

How do I install Glasshouse on an LG webOS TV?

Root the TV with the Homebrew Channel, clone the repository on a computer on the same network, then run ./deploy.sh <tv-ip> from the server directory and open http://<tv-ip>:8080/ in a browser. The installation guide linked from the README covers troubleshooting.

What does Glasshouse do about ads and telemetry on webOS?

It ships an on-TV blocker for LG's advertising and telemetry endpoints, shows whether content recognition is sampling the screen, and lists the data agreements recorded on the TV with most of them switchable. It also provides a switch for the two diagnostics services that upload to LG.

Can I try Glasshouse without a rooted television?

The package manifest includes an emulate script, node scripts/emulate-tv.js --open, which opens a browser based imitation of a TV. The README does not state which features the emulator covers, so treat it as a UI check rather than a full evaluation.

Does Glasshouse work with Home Assistant?

Yes, through an optional MQTT bridge that exposes the TV as a single device with its controls and telemetry, using MQTT Discovery for Home Assistant, while other MQTT clients can use the same interface. Button press events can also be sent from the TV to Home Assistant.

Official sources

  1. License: MIT
  2. Project website
  3. README
  4. Releases
  5. rorygallagher2024/glasshouse on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/rorygallagher2024-glasshouse.svg)](https://hysenlabs.com/projects/rorygallagher2024-glasshouse)

Was this useful?