glasshouse is a free, open source internet of things (iot) project written in JavaScript and released under MIT. It has 1,287 GitHub stars, 71 forks and 43 open issues, and was last pushed 16 hours ago. On this registry it ranks #66 of 92 tracked projects in Internet of Things (IoT), with 5 head-to-head comparisons available.

What is glasshouse?

Glasshouse is a self-hosted dashboard, privacy control panel and debloating tool for rooted LG webOS televisions, aimed at owners who want to control, clean up and automate their TV entirely on the local network without a cloud service.

What it is

Glasshouse is a JavaScript server that runs directly on a rooted LG webOS TV and exposes both a live browser dashboard and an on-TV dashboard app. From that surface it handles remote control, app installation and removal, OLED panel care, privacy controls, service menu access and hardware telemetry, and it ships an optional MQTT bridge for integrating the television with Home Assistant and other smart-home software. It is released under the MIT licence and, by design, requires no cloud service, collects no data and serves no ads.

The concrete problem it solves is the workaround tax of a modern connected TV: the project exists so that an owner does not have to navigate LG's built-in menus, vendor services and cloud dependencies to do ordinary things. It replaces that menu-and-cloud path with a local control surface, including an on-TV blocker for LG's ad and telemetry endpoints, a readable view of every data agreement recorded on the set, and the ability to uninstall apps and disable background services the vendor keeps resident.

Key capabilities

  • Remote control from the browser dashboard: a D-pad for navigating the TV itself, volume and mute, media playback keys (play, pause, stop, skip), an app launcher, picture presets, sound output routing, power and reboot.
  • A privacy panel that reports whether LG's content-recognition engine is running and sampling the screen, the advertising identifier and whether ad tracking is limited, and every data agreement recorded on the TV, most of them switchable from the dashboard.
  • An on-TV blocker for LG's ad and telemetry endpoints, plus a switch for the two diagnostics services that upload to LG.
  • App management and debloating: install apps from the Homebrew Channel catalog, permanently uninstall apps to reclaim internal flash storage, and disable unnecessary background system services to free RAM and CPU cycles.
  • OLED panel care, with full panel wear telemetry and burn-in controls; on LCD sets the OLED Care tab hides automatically and the core dashboard, controls and telemetry remain.
  • Hardware telemetry and service menu access alongside the everyday controls.
  • Custom screensavers, the ability to hide system apps, and an MQTT bridge for Home Assistant and other smart-home software.

Who uses it and how

  • Owners of rooted LG sets across a wide hardware spread: webOS 2.2 through 11 (LG's webOS 26) is confirmed, with 55 TVs across 38 series verified, spanning 2015 to 2026 models.
  • Households already running Home Assistant, which can treat the TV as an MQTT-connected device rather than an isolated appliance.
  • Privacy-minded users who want to withdraw from data agreements and cut ad and telemetry traffic at the device, without a network-level blocker.
  • OLED owners managing panel wear over time, and LCD owners who still want the core dashboard, controls and telemetry.
  • People debloating a set: reclaiming internal flash by uninstalling apps and freeing RAM and CPU by disabling background services, all without internet access being required on the TV itself.

Getting started

Root the TV and install the Homebrew Channel, clone the repository on a computer on the same network, then run ./deploy.sh from the server/ directory and open http://:8080/ in a browser. The documentation site covers installation details and troubleshooting.

How it compares

No paid products or directly comparable tools are named in the facts supplied, so Glasshouse stands alone in this registry rather than displacing a listed commercial alternative. The adjacent projects it does name are complements, not rivals: the Homebrew Channel is the prerequisite for rooting, and Home Assistant is an integration target reached over MQTT.

When to use it — and when not to

Pick Glasshouse only if the TV is already rooted and reachable over Telnet or SSH through the Homebrew Channel, because nothing here works on a stock, unrooted set. Expect to run the deploy.sh deployment from a second machine on the same network rather than installing from a package manager or container image, and note that the project carries a moderate backlog of 43 open issues. Anyone wanting a vendor-supported or warranty-safe path should look elsewhere.

project readme (upstream, from github) — read inline

Glasshouse

Own the glass. A dashboard, privacy controls and Home Assistant bridge for rooted LG webOS TVs.

[!NOTE]

You bought the TV.

It's your TV and you should control it. You own the glass.

Designed for those who reject their network-connected home appliances being used as a platform for advertising, telemetry and vendor-controlled experiences, this project brings control, visibility and automation back to the device.

It offers multiple ways to remove ads, withdraw from agreements and services designed to monetize your data, and make the TV a simpler, more streamlined experience — alongside a wide range of useful features, customisation and local smart-home integration.

Glasshouse itself is local, transparent, and requires no cloud service. No nonsense, no data collection, no ads, no dark patterns. I don't want your data.

Glasshouse is a server that runs directly on a rooted LG webOS TV, providing both a live browser dashboard and a dashboard app.

Use it for remote control, app installation and removal, OLED panel care, privacy controls, service menu access, and hardware telemetry. It also includes an MQTT bridge for integrating the TV with Home Assistant and other smart-home software.

Compatibility at a glance

  • webOS: 2.2 through 11 (LG's webOS 26) confirmed; tested across 2015–2026 models. Other versions likely work as well. LG names its versions two ways: webOS version numbers gives both
  • Panels: OLED (full panel wear telemetry and burn-in controls) and LCD (core dashboard, controls, and telemetry; OLED Care tab hides automatically)
  • Access: Rooted via Homebrew Channel. Telnet or SSH. No external dependencies or internet access needed on the TV
  • Tested hardware: 55 TVs across 38 series verified so far (LF632V, UH600V, UH6030, UH610V, UH635V, B6, B7, B8, C8, LK61, LM57, UM71, UM73, C9, CX, GX, C1, UP80, UP81, QNED82, UQ80, C2, G2, C3, B4, G3, C4, G4, UT73, UT81, C5, G5, CS, LX3, UA73, C6, NU80, QNED84). Other rooted models should work; see full table

Read the documentation for the features, installation, Home Assistant and security.


Quick start

  1. Root the TV and install the Homebrew Channel.
  2. Clone this repository on a computer on the same network as the TV.
  3. Run ./deploy.sh from the server/ directory.
  4. Open http://:8080/ in a browser.

That's it. The dashboard is ready to use.

The installation guide has the details and troubleshooting.


What it's for

This project is intended to give a rooted webOS TV a useful local control surface instead of requiring the owner to work around the TV's built-in menus, vendor services and cloud dependencies.

  1. Controlling the TV without the cloud. A D-pad to navigate the TV itself, volume, mute, media playback keys (play, pause, stop, skip), app launcher, picture presets, sound output routing, power and reboot.

  2. Seeing what the TV is configured to collect, and switching it off. Whether LG's content-recognition engine is running and sampling the screen, the advertising identifier and whether ad tracking is limited, and every data agreement recorded on the TV with most of them switchable from the dashboard. Includes an on-TV blocker for LG's ad and telemetry endpoints, and a switch for the two diagnostics services that upload to LG.

  3. App management, debloating and home screen cleanup. Install apps from the Homebrew Channel catalog, permanently uninstall apps to reclaim internal flash storage, disable unnecessary background system services to free up RAM and CPU cycles, stop LG keeping apps loaded in the background that are never used, hide non-removable built-in LG system apps from the home launcher, or replace LG's Home screen with Glasshouse Home.

  4. Remapping the remote's buttons. Point Netflix, Prime Video, Guide, the color keys and the TV's other shortcut buttons at any installed app, an HDMI input or Live TV, or turn them off. The change applies straight away and lasts across reboots, without waiting for the dashboard to start.

  5. Replacing the screen saver. A clock, a starfield, fireworks, or the TV's own readings, each dim or bright, in place of LG's.

  6. Integrating the TV with a smart home. The MQTT bridge exposes the TV as a single device with its controls and telemetry, with Home Assistant support through MQTT Discovery and the same underlying interface available to other MQTT clients. You can also send button press events to Home Assistant to control your smart home from your TV remote.

  7. Seeing what the TV is actually doing. SoC temperature, per-core CPU load, memory, swap, Wi-Fi signal and throughput.

  8. Observing OLED panel wear. Cumulative panel hours, compensation cycle progress, Pixel Refresher countdown with scheduling, completed cycle counters and refresher failure alerts.

  9. Controlling the OLED burn-in protections. What each one does and a switch for it: screen shift and logo dimming on any OLED, and on TVs that expose them, ASBL and Global Stress Reduction (normally reachable only from the TV's service menu, with a service remote and a PIN).

  10. Opening the service menu, and unlocking it where it is locked. LG's own engineering menu, put on the TV screen from a browser which means no service remote is needed. Newer firmware shows a cut-down version of it until it is unlocked, which the dashboard can do as well.

  11. Reading all of it on the TV itself. An optional app on the home screen puts the same readings and controls on the TV, driven by the remote, for when there is no phone or laptop to hand.

  12. Managing TVs from Android. A phone app that keeps a list of TVs, shows which are online, wakes them over Wake-on-LAN, and opens each one's dashboard full screen.


Screenshots

 
Metrics and Control tabs, shown in dark and light themes.

More screenshots, including Home Assistant.


Android app

Glasshouse for Android keeps a list of TVs, shows which are online and opens each one's dashboard full screen. A TV is added by scanning any QR code on its dashboard, which carries the token as well. See the Android app documentation for more details.

It is on Google Play, for Android 10 and later. Problems and suggestions go in the app's issues.


Documentation

The pages are built from docs/, so they can also be read there.


Security

The dashboard has no authentication by default, for frictionless control from any phone or browser on a trusted local network. Never expose port 8080 directly to the internet (do not port-forward). Security covers the token, closing the port to the network, and MQTT.


Support the project

Glasshouse is free, open-source, and maintained in spare time alongside community contributions. If it provides value to you, donations are much appreciated, helping to offset the personal cost of LLM tokens used for development and webOS research.

Buy Me A Coffee


Disclaimer

Use this software at your own risk.

  • Root access and hardware. This runs custom software with root privileges on an embedded TV OS. It is designed to be lightweight and to leave the read-only rootfs untouched, but the author accepts no responsibility for damage, bootloops, bricked devices, voided warranties, data loss or panel issues.
  • Power and control commands. Reboot, power off, screen blanking and Pixel Refresher scheduling issue low-level luna-send calls. Understand what each does before using it.
  • Trademarks. An independent, unofficial community project, not affiliated with or endorsed by LG Electronics. webOS is a trademark of LG Electronics.
  • Fonts. Bundles Outfit and Manrope under the SIL Open Font License 1.1; licence texts ship in server/assets/fonts/.

License

MIT. See LICENSE.

Frequently asked questions

Is glasshouse free to use?

glasshouse is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does glasshouse do?

For rooted LG webOS TVs: a live dashboard, privacy control, debloating (Hide system apps & uninstall apps), an ad & telemetry blocker, and custom screensavers.

What is glasshouse written in?

glasshouse is primarily written in JavaScript. Its source is publicly available at https://github.com/rorygallagher2024/glasshouse, and it has 1,287 GitHub stars.