Adom Bridge
Public Made by Adomby adom
Adom Bridge unleashes your AI onto your full PC: full power, full safety. The AI breaks out of the container it runs in and onto your real machine, managing and running your entire laptop as you: launch apps, move files, drive any window, control KiCad, Fusion 360 or your real signed-in browser. Works with any AI, cloud or local (Claude Desktop, Claude Code, Codex), no Hydrogen required. Bridge and its bridges are an operating system for AI, with managed Node and Python runtimes, and a human-onl
desktop_demo_panel: a floaty glass play/pause/next transport verb so every bridge demo gets the same on-screen remote (John's ask)
Feature ask from John, watching tonight's narrated Altium tours (five takes, cue-synced TTS + in-bridge camera choreography): "during demos, its usually the nice thing to do to give a play/pause/next panel … maybe ab should have that built in as a verb? i kinda like that. so you could ask it to. then all demos could use that panel."
Why ab, not each bridge
ab already owns the always-on-top overlay layer: desktop_caption is this feature minus the buttons (floaty, click-through, thread-attributed, reason-gated). A demo transport is the interactive sibling — and every bridge that runs a guided demo (altium_demo live, kicad tour, fusion demo) would otherwise build its own. One verb in ab = one panel, one etiquette, all demos.
Proposed verb: desktop_demo_panel
Show / update (idempotent by id, like captions):
desktop_demo_panel {
"action": "show",
"id": "altium-tour",
"title": "Altium bridge tour",
"stops": ["The symbol", "The footprint", "The part in 3D", "The schematic", "The board in 2D", "The 3D finale"],
"stage": 2, // 0-based; highlights the current stop
"state": "playing", // playing | paused — sets the ▶/⏸ toggle face
"position": "bottom-right", // same options as desktop_caption
"reason": "Tour remote for the demo John asked to watch" // >=10 chars, shown on the panel next to the thread name — same rule as captions
}
Rendering: the floaty glass style (ah's), small — a ▶/⏸ toggle, ⏭ next, ⏮ back, ✕ stop, the stop list (or just "3/6 — The part in 3D"), and the attribution line. NOT click-through (unlike captions — the whole point is clicking), but always-on-top and draggable.
Poll (the driver drains button presses between beats):
desktop_demo_panel {"action": "poll", "id": "altium-tour"}
→ {"events": [{"button": "pause", "at": 1788356000}], "state": "paused"}
Buttons queue as events; poll drains them. state is ab's view after applying toggles, so a driver can also just read state each beat and honor it (pause = hold before the next cue+stage; next = skip ahead; back = replay previous; stop = end show, clear panel).
Hide: {"action": "hide", "id": "altium-tour"} — and auto-hide after N min without a show/poll (same idle philosophy as the taskbar badge).
The consume side, proven tonight
Our demo loop is already shaped for this: per stop, fire the pre-cached narration (adom-tts cue <id> <n> --confirm, 1.9.47) in the background and call altium_demo {live:true, stage:n} (in-bridge choreography); advance when both finish. A poll between stops slots in exactly there. adom-tts cues are per-marker, so pause/next map cleanly: pause = don't cue the next marker; next = cue it early; back = re-cue (re-cueing is explicitly allowed in 1.9.47).
If the verb lands, altium-bridge wires altium_demo {live:true} to it in the same release (show at stage 0, poll each stop, hide on done), and I'd expect kicad/fusion tours to follow.