11# ScreenRig agent plugin
22
3- ScreenRig is an agent-first digital-signage and kiosk workflow. The canonical
4- public marketplace source is
5- [ github.com/screenrig/plugin ] ( https://github.com/screenrig/plugin ) .
3+ ScreenRig is an agent-first digital-signage workflow. This public repository is
4+ the canonical marketplace source and distributes one generated plugin containing
5+ the ScreenRig skill plus a pinned CLI artifact .
66
77## Install
88
@@ -20,64 +20,86 @@ codex plugin marketplace add https://github.com/screenrig/plugin.git --ref main
2020codex plugin add screenrig@screenrig --json
2121```
2222
23- Then open the [ ScreenRig Player] ( https://play.screenrig.ai ) and ask your agent
24- to pair the six-character code, or paste a public
25- ` https://screenrig.ai/ABC-234 ` setup instruction into the agent. Do not look
26- for or install a global ` screenrig ` binary: the plugin's skill invokes its
27- pinned, bundled CLI.
23+ Confirm the installed entry and read its package root:
2824
29- This distributable contains the ScreenRig skill and its pinned, bundled CLI.
30- The CLI requires Node.js 20.11 or newer. The wrapper resolves only the bundled
31- CLI; it does not download or execute a mutable command at runtime. Agent
32- workflows use machine-readable output and keep credentials in user-private
33- application state outside the replaceable plugin directory.
25+ ``` sh
26+ claude plugin list --json
27+ codex plugin list --json
28+ ```
3429
35- If a newly installed plugin is not loaded into the current agent session, run
36- ` claude plugin list --json ` and read the ` installPath ` for
37- ` screenrig@screenrig ` , or run ` codex plugin list --json ` and read its
38- ` source.path ` . Verify that exact installation before continuing :
30+ Run ` node --version ` first. The package-relative launcher fails closed unless
31+ Node.js 20.11 or newer is active. After installation, use the agent's plugin list
32+ JSON to read the ScreenRig ` installPath ` (Claude Code) or ` source.path `
33+ (Codex), then verify the installed bundle :
3934
4035``` sh
4136< plugin-root> /skills/screenrig/scripts/screenrig --json version
4237```
4338
44- Then use that same package-relative wrapper for ScreenRig commands. Do not add
45- it to ` PATH ` or substitute another executable.
39+ Use that same launcher for every ScreenRig command. It resolves only
40+ ` <plugin-root>/cli/dist/bin.js ` ; it does not use a global executable or fetch a
41+ mutable command at runtime.
42+
43+ ## Pairing and browser setup
44+
45+ Open ` https://play.screenrig.ai ` and ask the agent to pair the six-character
46+ code. The browser Player displays a middle dash such as ` ABC-234 ` ; the current
47+ default pair command requires the canonical six characters:
48+
49+ ``` sh
50+ < plugin-root> /skills/screenrig/scripts/screenrig --json screen pair ABC234
51+ ```
52+
53+ The public homepage handoff is separate first-use convenience. An unclaimed
54+ ` https://screenrig.ai/ABC-234 ` locator lasts 30 minutes. `browser setup --code
55+ ABC-234` accepts the dashed display form (or ` ABC234`), and a successful claim
56+ creates a fresh independent 10-minute protected delivery window. CLI output is
57+ limited to the normalized code, claim status, and fragment-free Player URL.
4658
47- The first authenticated operation creates a ScreenRig account automatically,
48- stores its permanent credential with user-only permissions, and resumes the
49- requested operation . The default file is
59+ The first authenticated operation enrolls automatically, stores its credential
60+ with user-only permissions outside the replaceable plugin directory, verifies
61+ it, and resumes the original request . The default configuration is
5062` $XDG_CONFIG_HOME/screenrig/config.json ` when ` XDG_CONFIG_HOME ` is set,
5163` %APPDATA%\screenrig\config.json ` on Windows, or
52- ` ~/.config/screenrig/config.json ` otherwise. ` SCREENRIG_CONFIG ` may select a
53- different path. Uninstalling or upgrading the plugin does not remove this user
54- configuration.
55-
56- The canonical customer command is ` screen pair CODE [--label LABEL] ` . The
57- plugin also supports implemented application, playlist, media, screen, event,
58- and application K/V operations documented by the bundled skill.
59-
60- Credential removal is explicit and server-first. ` screenrig auth revoke --yes `
61- revokes exactly the stored calling credential, issues no replacement, and
62- removes local credential, enrollment, and transient authenticated-operation
63- state only after the server confirms an empty ` 204 ` response. Non-secret API
64- configuration is preserved. The account, screens, and content remain, but the
65- revoked credential cannot be recovered in the current anonymous no-email
66- model; the next account-scoped command enrolls a separate new account. Failed
67- or ambiguous requests retain local state, and retrying the exact revocation is
64+ ` ~/.config/screenrig/config.json ` ; ` SCREENRIG_CONFIG ` may override it.
65+
66+ ` auth revoke --yes ` revokes the calling credential on the server before local
67+ credential and retry state are removed. Success requires an empty ` 204 `
68+ response and issues no replacement. The account, screens, and content remain;
69+ the next account-scoped command enrolls a separate new account. Failed or
70+ ambiguous results preserve local state, and retrying the exact revocation is
6871safe.
6972
70- ## Validation
73+ Browser sessions use server-managed HttpOnly cookies. Native Android and Qt
74+ players are separate native-first applications that use protected
75+ ` ScreenRig-Pairing ` , ` ScreenRig-Device ` , and ` ScreenRig-Session `
76+ authorization. Runtime pages use ` screenrig.canvas/v1 ` ; protected content and
77+ ` screenrig.webapp-package/v1 ` artifacts remain manifest-bound. Screenshotting
78+ is not part of v1.
79+
80+ ## Artifact provenance and validation
81+
82+ ` components.lock.json ` pins the exact ` screenrig/cli ` commit, artifact
83+ filename, and SHA-256 used to generate ` plugins/screenrig ` . Root skill and
84+ metadata files are canonical; the committed plugin directory is generated and
85+ must not be edited independently. CI reproduces the pinned CLI artifact,
86+ rebuilds/validates the bundle, scans the public boundary, and publishes
87+ deterministic ` screenrig-plugin.tar.gz ` .
88+
89+ This repository does not deploy ScreenRig. Production assembly is owned only by
90+ the backend component lock.
7191
7292``` sh
7393python3 scripts/check-public-repo.py
7494skills/screenrig/scripts/screenrig --json version
7595```
7696
77- Security reports belong in
78- [ GitHub Private Vulnerability Reporting] ( https://github.com/screenrig/plugin/security/advisories/new ) ,
79- not in public issues. See [ SECURITY.md] ( SECURITY.md ) .
97+ Full regeneration additionally requires the exact CLI artifact selected by
98+ ` components.lock.json ` . Source validation does not prove marketplace
99+ installation, automatic enrollment against the live API, pairing, public
100+ browser handoff, native hardware, or production deployment.
80101
81- This repository is licensed under Apache-2.0. The license applies to this
82- public plugin and its bundled Apache-2.0 CLI; it does not license other
83- ScreenRig services or repositories.
102+ Security reports belong in
103+ [ GitHub Private Vulnerability Reporting] ( https://github.com/screenrig/plugin/security/advisories/new ) .
104+ See [ SECURITY.md] ( SECURITY.md ) . The Apache-2.0 license covers this public plugin
105+ and its bundled CLI, not other ScreenRig services or repositories.
0 commit comments