# LGwebOS-menubar: a native macOS remote for LG webOS TVs

> A native macOS menu-bar app that pairs with an LG webOS TV over its local encrypted WebSocket interface to launch apps, switch inputs, adjust volume and picture settings, send pointer input and cast selected media. The project credits the public Connect SDK for webOS protocol behavior and reuses PyWebOSTV’s registration manifest. Testing covers one TV on webOS 5.0.

- Type: Case study
- Targets: App
- Category: Independent reconstruction cases
- Relationship: Independent reconstruction project
- Sources reviewed: 2026-10-20
- Added to the catalog: 2026-10-19
- Original resource: <https://github.com/gabrielgreco1/TVmenubar-MacOS>
- Primary source: <https://github.com/gabrielgreco1/TVmenubar-MacOS/blob/8482f36aaeb2e6577cf58bba12306ba3701c0fd2/README.md>
- Catalog page: <https://awesomerea.org/resources/lgwebos-menubar-remote-case/>
- Record JSON: <https://awesomerea.org/resources/lgwebos-menubar-remote-case/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/lgwebos-menubar-remote-case/index.md)

## Requirements & limits

- **Prerequisites:** Reviewed at the 2026-10-13 head, when the repository held only this app. By 2026-10-20 GitHub serves it as TVmenubar-MacOS, and its head README splits it into separate LG webOS 5.0 and Roku OS 15.3.4 apps. It needs macOS 14 or later, Xcode Command Line Tools with Swift 5.9 or later, and an LG webOS TV on the same network; the only tested set is an LG 50UN7310PSC on webOS 5.0, and other models and versions are unverified. Pairing must be accepted on the TV, an IPv4 address is required, and Wake-on-LAN needs the TV’s MAC address.
- **Prerequisites:** scripts/build.sh produces a locally signed, unnotarized app bundle. Pairing uses encrypted WebSockets on port 3001; the app pins the TV certificate after explicit approval and keeps pairing keys in Keychain. The repository ships no device addresses or pairing keys, and a privacy-check script scans files before publishing.
- **Testing evidence:** The offline --self-check runs preference, certificate, pointer, Home, usage, resource and loopback media tests without a TV.
- **Limits:** The README narrows the author’s post: screen time is counted locally only while the app is connected, AirPlay support is limited to guidance for macOS Screen Mirroring, picture-setting changes depend on TV permissions, and casting depends on the TV’s codecs and DLNA service.
- **License:** MIT covers the project code; the PyWebOSTV manifest keeps its MIT notice, and LG, app and console icons keep their owners’ rights. Commits credit Claude as co-author, and an X post by the same account credits REA. This is an unofficial client.

## Primary sources

1. <https://github.com/gabrielgreco1/TVmenubar-MacOS/blob/8482f36aaeb2e6577cf58bba12306ba3701c0fd2/README.md>
2. <https://github.com/gabrielgreco1/TVmenubar-MacOS/blob/8482f36aaeb2e6577cf58bba12306ba3701c0fd2/THIRD_PARTY_NOTICES.md>
3. <https://github.com/gabrielgreco1/TVmenubar-MacOS/blob/8482f36aaeb2e6577cf58bba12306ba3701c0fd2/Sources/LGwebOSMenubar/WebOS.swift>
4. <https://github.com/gabrielgreco1/TVmenubar-MacOS/blob/8482f36aaeb2e6577cf58bba12306ba3701c0fd2/Sources/LGwebOSMenubar/FeatureChecks.swift>
5. <https://github.com/gabrielgreco1/TVmenubar-MacOS/blob/8482f36aaeb2e6577cf58bba12306ba3701c0fd2/Package.swift>
6. <https://github.com/gabrielgreco1/TVmenubar-MacOS/blob/8482f36aaeb2e6577cf58bba12306ba3701c0fd2/scripts/build.sh>
7. <https://github.com/gabrielgreco1/TVmenubar-MacOS/blob/8482f36aaeb2e6577cf58bba12306ba3701c0fd2/LICENSE>
8. <https://github.com/gabrielgreco1/TVmenubar-MacOS/blob/8641101827b8a847e3c4091df4e7a336c68ba431/README.md>
9. <https://x.com/greco_dev/status/2109842197654692349>

## More in Apps

- [Galaxy Buds Client: an unofficial manager built on Samsung’s earbud protocol](https://awesomerea.org/resources/galaxy-buds-client-protocol-case/index.md) · Case study
- [Wino Mail: recreating Windows Mail and Calendar](https://awesomerea.org/resources/wino-mail-case/index.md) · Case study
- [ScooterLink: reconstructing Honda RoadSync’s handlebar-button protocol](https://awesomerea.org/resources/scooterlink-honda-roadsync-case/index.md) · Case study
- [iX500 Scan: a macOS client for the reverse-engineered ScanSnap Wi-Fi protocol](https://awesomerea.org/resources/ix500-scan-scansnap-wifi-case/index.md) · Case study
- [WristBeam: reconstructing Garmin’s watch protocol for a Mac companion](https://awesomerea.org/resources/wristbeam-garmin-watch-protocol-case/index.md) · Case study
- [usque: an open reimplementation of Cloudflare WARP’s MASQUE mode](https://awesomerea.org/resources/usque-warp-masque-client-case/index.md) · Case study

## About this entry

The description was reviewed against primary sources.
Original editorial content: MIT. Linked projects, papers and assets retain their own rights and licenses.
