TV Wall — Recommendation

mixed pip-style browser wall for the apple tv · hub/surface command
the wall already runs — hand-arranged · this doc = the permanence plan · build awaiting go

1 · The shape, in one paragraph

You already run this wall by hand — top: the 2-chart SPY + SNDK layout (Trendoscope + fan + clouds) over the MACRO/ALL tapes; bottom: the Scintilla stream, personal YouTube, and x.com — and that hand-arranged wall is already the correct architecture: browser windows on a screen you own, nothing re-served. What's missing isn't legality or plumbing — it's permanence: one command that rebuilds the wall after any reboot or disconnect, the layout stored as data instead of muscle memory, and component routes where hand-sized tabs now sit. The rest of this page explains why the browser-window shape is also the only honest one.

The Apple TV cannot run this by itself: tvOS ships no browser, and third-party TV apps are not allowed to render web pages — so "a wall app on the Apple TV" is a dead end, and anyone selling one is casting from another device anyway. The honest architecture: a Mac drives the wall, the Apple TV is just the screen. The Mac extends its desktop onto the TV over AirPlay (one Control Center click — Screen Mirroring → use as extended display; low-latency and plenty for dashboards) or, for the crispest permanent install, a plain HDMI cable. On that TV display, Chrome shows two kinds of panel: one hosted page from this surface carrying everything that may legally be embedded, and real Chrome windows — logged in as you — parked over reserved cutouts for the things that can't be embedded. That's the ChatGPT-PiP mental model done with window placement, which Hammerspoon already owns in our stack.

2 · The legal line

We never capture, proxy, or re-serve anyone's stream. Two clean lanes only. Lane A — sanctioned embeds: YouTube's IFrame player exists precisely so third-party pages can show YouTube inside YouTube's own player, ads and all — our /youtube widget already runs it. TradingView publishes embed widgets for the same reason. Our own widgets are ours. Lane B — browser excerpts: a real Chrome window showing x.com, signed in as you, displayed on a screen you own. That is not redistribution — it's a monitor. What we never do: screen-capture-and-restream, server-side scraping of feeds, or piping YouTube/X content through our own hosting. AirPlay itself stays clean because it's your Mac's local display pipe, not a re-push.

3 · Panel by panel

panelverdictthe honest how
Scintilla widgets — /heat /pulse /chart /geiger /ticker /cohort /compareembed Ours. Already scene-composable; DB reads only, as always.
The hub (scintilla-cockpit)embed · test Ours too — a ten-second iframe test says whether its headers allow framing. If blocked, it rides Lane B as a window. Read-only either way; the cockpit stays untouched.
Live charts (TradingView)embed Official embed widgets, or our own /chart. Both sanctioned.
YouTube feeds (×2)embed IFrame API. Conditions: stream public + uploader left embedding on (most finance streamers do); starts muted — browser autoplay law, one click for sound on the pane you want audible. A channel that disables embeds simply drops to Lane B as a window.
Your X home feedwindow Not embeddable, full stop: X's timeline embeds have been effectively dead since the 2023 API shutdown and the login walls that followed — and a home feed is authenticated by definition. So: a logged-in Chrome window pinned to the wall's reserved cutout. If you carry Premium+, X Pro (old TweetDeck) is the wall-native version — multi-column, auto-refreshing. The paid API route exists but is expensive and fragile; wrong tool for a wall.
Single X posts (callouts)embed · flaky Single-post embeds still mostly render in 2026. Fine for pinning one post to the wall; never trust them for a live feed.
Re-pushing YouTube/X through our pipesnever Constraint honored by design — nothing above serves their content from our surface.

4 · First working version

One new hosted route, /tv — a scene page sized for the 1080p-class picture AirPlay negotiates: /pulse strip across the top, two YouTube IFrame panes stacked left, /heat or /chart as the center field, ticker tape on the floor, and a reserved cutout (right column, ~28%) drawn as a labeled dock: "X parks here." The page never pretends to show X — the real window covers that hole.

A fourth profile, tv, in scene_layouts — same percent-rect system the wall/laptop/narrow profiles already use. Adding or retuning the TV layout stays a DB row, not a deploy.

/handoff grows a TV section — connect the Apple TV from Control Center, then one Hammerspoon save does the rest: full-screen chromeless Chrome window of /tv on the TV display, plus the logged-in x.com/home (or X Pro) window placed exactly on the cutout geometry. Commands live in /handoff, per house style. Practical honesty: AirPlay wants one reconnect click per session, the Mac must stay awake, the TV's sleep timer goes off — and if the wall becomes furniture, the endgame is an HDMI run or a spare Mac mini behind the TV, which makes it pixel-perfect and always-on.

The first saved scene is your existing arrangement — top: two /chart panes (SPY + SNDK) over a /ticker tape row; bottom: the Scintilla stream embed, personal-YouTube window dock, x.com window dock — so day one of permanence looks exactly like the wall you built by hand, minus the hand.

Proof: the route + scene row + handoff section land with receipts on the spine, as usual.

5 · What I need from you

A go, the two YouTube channels you want on the wall, and whether you carry Premium+ (decides x.com window vs X Pro columns). With those, V1 is roughly one queue item — the pieces (scene engine, profiles, handoff, Hammerspoon patterns) already exist.

SCINTILLA · TV WALL RECOMMENDATION · HSC-TVWALL-REC-001 · 2026-08-06 · restamped: permanence plan for the existing hand-arranged wall
lane a embeds sanctioned · lane b excerpts are real chrome windows · nothing re-served, ever · our widgets stay db-reads-only · cockpit untouched
relay: spine_events · scintilla-live · ← all widgets