You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 6a817c5
Browse filesBrowse the repository at this point in the historyBrowse files
Bundle CLI ef95f12 and the wave-2 skill: uploaders, overlay triggers, skip, screen links, YouTube until
Merges the held skill commits of five lanes (uploaders and one-page
changes, overlay triggers, screenrig.skip(), screen links for browsers
without storage, advance.until video_end for YouTube pages), tightens
the SKILL.md wording (uploader scope detail moves to
references/playlists.md#change-one-page) and rebuilds the bundle from
cli ef95f12, which adds playlist page add|replace|remove, screen link
create|show|delete, triggers update|deliveries and overlay triggers,
uploader invitations and service clients, and the skip() runtime.
Budget before: repository 109 files, 3,431,988 bytes; plugins/screenrig
50 files, 2,396,469 bytes.
Budget after: repository 109 files, 3,478,944 bytes; plugins/screenrig
50 files, 2,439,526 bytes (cli/dist/bin.js 1,557,752 of 1,572,864 bytes).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
`screen archive` darkens a screen but keeps its playlist and binding. Before
@@ -155,8 +161,10 @@ screen is archived as `replaced`; delete it, never unarchive it.
155
161
Prefer a card to an application: a card draws natively on every Player, changes
156
162
with `card data put` without republishing, and suits a rotating loop. App code
157
163
must `await screenrig.waitUntilActive()` before `await screenrig.ready()` and
158
-
make no SDK call while `readyState` is not `active`. Use screenRIG's `feeds` for
159
-
weather, rates and other third-party data, never the providers.
164
+
make no SDK call while `readyState` is not `active`. An app with nothing to show
165
+
calls `screenrig.skip()` instead of `ready()`: the screen moves on and counts no
166
+
play. Use screenRIG's `feeds` for weather, rates and other third-party data,
167
+
never the providers.
160
168
161
169
`media upload` transcodes locally and needs `ffmpeg` and `ffprobe`; `doctor`
162
170
names what is missing, so ask the user to install ffmpeg rather than installing
@@ -275,7 +283,7 @@ Reach for these when the task matches; `screenrig GROUP --help` has the rest.
275
283
276
284
| Group | Reach for it when | First command |
277
285
| --- | --- | --- |
278
-
|`triggers`| An emergency notification system (CAP 1.2)must take screens over by itself |`triggers create --name NAME --tag TAG`, then `triggers test ID` (a 60-second alert on the screens); the URL and password go only to that system's administrator; `--pull FILE` also has the platform read CAP sources|
286
+
|`triggers`| An emergency system (CAP 1.2), Home Assistant, a sensor or an alerting tool must show something on screens by itself |CAP: `triggers create --name NAME --tag TAG` (`--pull FILE` also reads CAP sources); any other sender: `triggers create --name NAME --kind overlay --show bar\|takeover --tag TAG` ([overlay triggers](references/playlists.md#overlay-triggers)); then `triggers test ID`. The URL and secret go only to the sender's administrator|
279
287
|`notifications`| A person should hear when a screen goes offline or fails (email, chat, pager), or another system should react (signed webhook) |`notifications list` first: every project already emails its owner when a screen is offline 10 minutes. Then `notifications create --email owner --conditions screen_offline,display_disconnected`, or `--webhook URL` (verify `ScreenRig-Signature`; `data.secret` is shown once), `--slack URL`, `--teams URL`, `--pagerduty KEY`, `--telegram TOKEN --telegram-chat ID`; prove it with `notifications test ID` and `notifications deliveries ID`. Other conditions: `running_hot`, `storage_full`, `content_stuck`, `not_playing`, `loop_stalled`, `glass_blank`, `glass_frozen`, `crashing`; `--tag TAG`, `--hold MINUTES`, `update ID --snooze 1h`. Channels, grouping and glass verdicts: [notifications](references/notifications.md). `webhooks` remains for raw event feeds |
280
288
|`alerts`| The user asks what needs attention on the screens, or named screens will be down for maintenance |`alerts list` shows the open problems, one per screen and condition (`--state all` adds resolved; `crashing` is a notice, not an alert). `alerts ack ID` when someone is on it, or `alerts snooze ID --for 4h` to look again later; either skips a notice still in its hold. For maintenance the user names, `alerts mute --tag TAG --for 2h --note TEXT` (or `--screen-id ID`; under 30 days) keeps those screens out of notices and attention; `alerts unmute MUTE_ID` (ids from `alerts mutes`) ends it when the work is done. Changing alerts needs Manage access |
281
289
|`kv`, `kv webhook`| An application keeps live state that the agent or an outside sender sets; the app reads it with `screenrig.kv.get` and hears changes through `screenrig.kv.onChange`|`kv set KEY --app-id app_ID --json-value JSON`; for a sender such as a point of sale or cron job, `kv webhook create KEY --app-id app_ID` (the secret is shown once); a card's webhook: [card webhooks](references/playlists.md#card-webhooks)|
`screen archive` darkens a screen but keeps its playlist and binding. Before
@@ -164,8 +163,8 @@ with `card data put` without republishing, and suits a rotating loop. App code
164
163
must `await screenrig.waitUntilActive()` before `await screenrig.ready()` and
165
164
make no SDK call while `readyState` is not `active`. An app with nothing to show
166
165
calls `screenrig.skip()` instead of `ready()`: the screen moves on and counts no
167
-
play. Use screenRIG's `feeds` for
168
-
weather, rates and other third-party data, never the providers.
166
+
play. Use screenRIG's `feeds` for weather, rates and other third-party data,
167
+
never the providers.
169
168
170
169
`media upload` transcodes locally and needs `ffmpeg` and `ffprobe`; `doctor`
171
170
names what is missing, so ask the user to install ffmpeg rather than installing
@@ -284,7 +283,7 @@ Reach for these when the task matches; `screenrig GROUP --help` has the rest.
284
283
285
284
| Group | Reach for it when | First command |
286
285
| --- | --- | --- |
287
-
|`triggers`| An emergency system (CAP 1.2), Home Assistant, a sensor or an alerting tool must show something on screens by itself | CAP: `triggers create --name NAME --tag TAG`; an overlay URL: `triggers create --name NAME --kind overlay --show bar --tag TAG` (a strip over whatever plays) or `--show takeover`; then `triggers test ID`; the URL and password go only to the sender ([overlay triggers](references/playlists.md#overlay-triggers)); `--pull FILE` also has the platform read CAP sources|
286
+
|`triggers`| An emergency system (CAP 1.2), Home Assistant, a sensor or an alerting tool must show something on screens by itself | CAP: `triggers create --name NAME --tag TAG` (`--pull FILE` also reads CAP sources); any other sender: `triggers create --name NAME --kind overlay --show bar\|takeover --tag TAG` ([overlay triggers](references/playlists.md#overlay-triggers)); then `triggers test ID`. The URL and secret go only to the sender's administrator|
288
287
|`notifications`| A person should hear when a screen goes offline or fails (email, chat, pager), or another system should react (signed webhook) |`notifications list` first: every project already emails its owner when a screen is offline 10 minutes. Then `notifications create --email owner --conditions screen_offline,display_disconnected`, or `--webhook URL` (verify `ScreenRig-Signature`; `data.secret` is shown once), `--slack URL`, `--teams URL`, `--pagerduty KEY`, `--telegram TOKEN --telegram-chat ID`; prove it with `notifications test ID` and `notifications deliveries ID`. Other conditions: `running_hot`, `storage_full`, `content_stuck`, `not_playing`, `loop_stalled`, `glass_blank`, `glass_frozen`, `crashing`; `--tag TAG`, `--hold MINUTES`, `update ID --snooze 1h`. Channels, grouping and glass verdicts: [notifications](references/notifications.md). `webhooks` remains for raw event feeds |
289
288
|`alerts`| The user asks what needs attention on the screens, or named screens will be down for maintenance |`alerts list` shows the open problems, one per screen and condition (`--state all` adds resolved; `crashing` is a notice, not an alert). `alerts ack ID` when someone is on it, or `alerts snooze ID --for 4h` to look again later; either skips a notice still in its hold. For maintenance the user names, `alerts mute --tag TAG --for 2h --note TEXT` (or `--screen-id ID`; under 30 days) keeps those screens out of notices and attention; `alerts unmute MUTE_ID` (ids from `alerts mutes`) ends it when the work is done. Changing alerts needs Manage access |
290
289
|`kv`, `kv webhook`| An application keeps live state that the agent or an outside sender sets; the app reads it with `screenrig.kv.get` and hears changes through `screenrig.kv.onChange`|`kv set KEY --app-id app_ID --json-value JSON`; for a sender such as a point of sale or cron job, `kv webhook create KEY --app-id app_ID` (the secret is shown once); a card's webhook: [card webhooks](references/playlists.md#card-webhooks)|
0 commit comments