Files
companion-buttons/module.json
T
christianandClaude Opus 5.5 415453ef5f Companion Buttons 1.0.0: any Companion button from any page, live on a ProdDash tile
A ProdDash module for status buttons and what's happening: pick buttons from
any Companion page in the tile's own picker; each is shown exactly as
Companion draws it and redraws live. One tile can hold one button or many.

- One read-only connection to Companion's tRPC websocket (pages.watch and
  preview.graphics.controlId), shared by every dashboard; identical redraws
  are not re-sent.
- A tile follows its button by id, and by page/row/column when the id is
  gone (a re-imported page), saving back what it resolved to.
- One SSE stream per tile, within ProdDash's 32-streams-per-page limit.
- Red dot and a faded "Companion offline" view when Companion is down;
  recovers by itself.
- Tests against a mock Companion: node test/companion.test.js

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 20:12:23 -04:00

34 lines
988 B
JSON

{
"id": "companion-buttons",
"name": "Companion Buttons",
"version": "1.0.0",
"proddash": ">=1.10.0",
"description": "Any Companion button from any page, live as Companion draws it — for status and what's happening",
"permissions": [
{
"kind": "local-network",
"reason": "Reading button pictures from Companion on this network"
}
],
"client": "client.js",
"server": "server.js",
"style": "style.css",
"minSize": { "w": 1, "h": 1 },
"defaultSize": { "w": 3, "h": 3 },
"configSchema": {
"companion": {
"type": "endpoint",
"label": "Companion",
"default": { "host": "", "port": 8000 },
"help": "The machine running Bitfocus Companion and its web interface port (8000 unless changed in Companion's settings). 127.0.0.1 when Companion runs on this machine. Companion 4 or newer."
}
},
"instanceSchema": {
"captions": {
"type": "switch",
"label": "Captions",
"default": false
}
}
}