tv-session

Boot, drive, and capture the PlxNative app on an LG webOS television.

39|7|Updated Jul 3, 2026
One-click install
npx skills add https://github.com/GLinnik21/plx-native --skill tv-session-glinnik21
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: tv-session
Source: https://github.com/GLinnik21/plx-native/tree/main/.agents/skills/tv-session
Command: npx skills add https://github.com/GLinnik21/plx-native --skill tv-session-glinnik21

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires cloudflared.

What problem does it solve? Verifying a native TV app requires running it on the actual television, and that ritual has many steps that each fail silently. This Skill provides one asserting driver that boots the app into a chosen screen, injects keys and clicks, captures screenshots and logs, and hands the TV back cleanly. ## Core Features & Use Cases - Asserting session driver: tools/tv-session.sh up wakes the TV, verifies the install flavour, md5-checks the deployed binary, arms boot triggers, injects the token, and confirms the requested route heartbeat before reporting success. - Live driving and capture: Send remote keys and pointer clicks through the in-app FIFO, take panel screenshots including the hardware video plane, stream the UI over HTTP, or publish an authenticated D-pad page through a cloudflared tunnel for off-network viewing. - Offline and multi-install testing: Cut the set's WAN uplink with a self-restoring netfilter rule, and select between stable, debug, and nightly installs with per-flavour runtime roots and capture ports. - Use Case: Reproduce a playback bug on the real set by booting directly into the player for a specific rating key, driving the transport with key injection, and capturing the video plane to confirm decoding. ## Quick Start Ask the agent to boot the app on the TV into the home screen with a live stream, take a screenshot, and then hand the television back.

Frequently Asked Questions about tv-session

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I run and verify an app on an LG webOS TV?

Use tools/tv-session.sh up with an optional --screen flag to boot the app into a chosen route. The driver wakes the TV, verifies the deployed binary by md5, arms boot triggers, injects the token, and asserts the route heartbeat before reporting the session is up.

How do I capture screenshots including video playback on webOS?

Use tools/tv-session.sh shot, which captures through the luna service and includes the hardware video plane. The in-app stream on port 8909 only sees the UI plane, so playback verification with it shows a black rectangle.

Can I watch the TV screen remotely from a phone or another network?

Yes, run up with --remote to publish an authenticated D-pad-only page through a cloudflared HTTPS tunnel. It requires cloudflared installed, works behind CGNAT, and down revokes the URL and discards the password.

Why does the TV session show a black rectangle during video playback?

The in-app GL stream cannot see the hardware video overlay, so decoded video appears as a black rectangle with no error. Verify playback with the service capture (shot) or a VIDEO-only capture whose error state doubles as a decode health check.

Why do keys or clicks do nothing during a TV session?

The remote FIFO only exists while the app runs, so check status first. A key sent at the wrong route may be a no-op by design, and pointer clicks after D-pad use need accumulated motion before they register.

What are the limitations of the tv-session driver?

It targets one shared television, so the tv-lock lease is mandatory and the harness cannot run concurrently. External input injection cannot reach the app, 1080p streaming is not viable due to software encode cost, and a standby cycle may clear /tmp triggers.