Skip to content

Commit ac46bd5

Browse files
committed
Publish invitation-only advertising workflows with the verified CLI bundle
1 parent 637e13d commit ac46bd5

85 files changed

Lines changed: 3665 additions & 171 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎README.md‎

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,11 @@ downloads or store listings.
2626

2727
Use existing images or videos, generate a finished still, compose editable slides,
2828
or publish live web pages and applications. Your agent can request a screenshot
29-
to inspect the result.
29+
to inspect the result. Where the account is permitted, the same CLI can also
30+
buy ad campaigns on the sellers its account has been invited to or sell owned
31+
screen inventory, with pricing quoted and accepted before anything is charged.
32+
The dashboard's Marketplace lists invited sellers and their permitted inventory
33+
and rates; admission stays invitation-only, with no public listings to browse.
3034

3135
There is no per-screen subscription. Account usage is free within reason until
3236
1 January 2027; image generation is metered separately. See the

‎build/plugin.json‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "screenrig",
3-
"description": "Operate ScreenRig screens, media, playlists, and applications with the bundled CLI.",
3+
"description": "Operate ScreenRig screens, media, playlists, applications, and advertising with the bundled CLI.",
44
"author": {
55
"name": "ScreenRig"
66
},
@@ -16,7 +16,7 @@
1616
"interface": {
1717
"displayName": "ScreenRig",
1818
"shortDescription": "Operate ScreenRig with its bundled CLI",
19-
"longDescription": "Install the official ScreenRig plugin and operate screens, media, playlists, and applications through a packaged noninteractive CLI.",
20-
"defaultPrompt": "Use $screenrig to generate a presentable whole-page still, upload existing media, compose a slide-deck still when needed, write playlists, and assign content to my screens with machine-readable output."
19+
"longDescription": "Install the official ScreenRig plugin and operate screens, media, playlists, applications, and advertising through a packaged noninteractive CLI.",
20+
"defaultPrompt": "Use $screenrig to generate a presentable whole-page still, upload existing media, compose a slide-deck still when needed, write playlists, place adslot breaks, assign content to my screens, or buy and sell advertising where my account is permitted, with machine-readable output."
2121
}
2222
}

‎components.lock.json‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33
"state": "resolved",
44
"cli": {
55
"repository": "screenrig/cli",
6-
"commit": "36a84c3f4d5dffa20d58fe175cad59c9f071fa06",
6+
"commit": "6dca9f8a7045fd9d124a6697a014138d1a640ebc",
77
"artifact": {
8-
"file": "screenrig-cli.tgz",
9-
"sha256": "ab8bc2c97611d0e31b927448aba61525d61a62ecf3c2c4e6932eac4f61fad328"
8+
"file": "screenrig-ad-cli.tgz",
9+
"sha256": "9b491daaf8a202982fad547019ebbf382c4fa5ea79f2102e54c517efb4e3b7ed"
1010
}
1111
}
1212
}

‎plugins/screenrig/.claude-plugin/plugin.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "screenrig",
33
"version": "26.09.0-dev",
4-
"description": "Operate ScreenRig screens, media, playlists, and applications with the bundled CLI.",
4+
"description": "Operate ScreenRig screens, media, playlists, applications, and advertising with the bundled CLI.",
55
"author": {
66
"name": "ScreenRig"
77
},

‎plugins/screenrig/.codex-plugin/plugin.json‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "screenrig",
33
"version": "26.09.0-dev",
4-
"description": "Operate ScreenRig screens, media, playlists, and applications with the bundled CLI.",
4+
"description": "Operate ScreenRig screens, media, playlists, applications, and advertising with the bundled CLI.",
55
"author": {
66
"name": "ScreenRig"
77
},
@@ -18,8 +18,8 @@
1818
"interface": {
1919
"displayName": "ScreenRig",
2020
"shortDescription": "Operate ScreenRig with its bundled CLI",
21-
"longDescription": "Install the official ScreenRig plugin and operate screens, media, playlists, and applications through a packaged noninteractive CLI.",
22-
"defaultPrompt": "Use $screenrig to generate a presentable whole-page still, upload existing media, compose a slide-deck still when needed, write playlists, and assign content to my screens with machine-readable output.",
21+
"longDescription": "Install the official ScreenRig plugin and operate screens, media, playlists, applications, and advertising through a packaged noninteractive CLI.",
22+
"defaultPrompt": "Use $screenrig to generate a presentable whole-page still, upload existing media, compose a slide-deck still when needed, write playlists, place adslot breaks, assign content to my screens, or buy and sell advertising where my account is permitted, with machine-readable output.",
2323
"developerName": "ScreenRig",
2424
"category": "Developer Tools",
2525
"capabilities": [

‎plugins/screenrig/README.md‎

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,11 @@ downloads or store listings.
2626

2727
Use existing images or videos, generate a finished still, compose editable slides,
2828
or publish live web pages and applications. Your agent can request a screenshot
29-
to inspect the result.
29+
to inspect the result. Where the account is permitted, the same CLI can also
30+
buy ad campaigns on the sellers its account has been invited to or sell owned
31+
screen inventory, with pricing quoted and accepted before anything is charged.
32+
The dashboard's Marketplace lists invited sellers and their permitted inventory
33+
and rates; admission stays invitation-only, with no public listings to browse.
3034

3135
There is no per-screen subscription. Account usage is free within reason until
3236
1 January 2027; image generation is metered separately. See the

‎plugins/screenrig/cli/README.md‎

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,62 @@ Option `relationships` describe `exactlyOne`, `atLeastOne`, and `together` group
9191
`requires` means the first option requires every remaining option. These same
9292
rules validate invocations before configuration or network access.
9393

94+
## Invite people to your account
95+
96+
An enrolled agent can email another person a single-use dashboard invitation:
97+
98+
```sh
99+
screenrig account invite --email teammate@example.com
100+
```
101+
102+
This uses the existing account; it never enrolls a new one. The response reports
103+
the invitation ID, status, and expiry, not a sign-in link. `queued` means delivery
104+
is pending; `sent` means the mail provider accepted the message, not that it
105+
reached the inbox. Invited people receive the account's existing dashboard
106+
access, not a restricted guest role.
107+
108+
At most **10 invitations** may be outstanding per account, including the initial
109+
invitation queued when the account was created. Claiming an invitation, its
110+
24-hour expiry, or a terminal delivery failure releases its slot. An outstanding
111+
invitation to the same address is reused. At the limit, the command reports
112+
`invitation_limit_reached` without automatically retrying.
113+
114+
After an ambiguous failure, rerun the same command unchanged; the CLI preserves
115+
its request key. Automation may supply `--idempotency-key` to explicitly replay
116+
the same request without adding another invitation.
117+
118+
## Recover dashboard access to your account
119+
120+
If every agent credential for an account is lost, the mailbox owner can email
121+
the account's contact address a single-use dashboard recovery link:
122+
123+
```sh
124+
screenrig account recover --email owner@example.com
125+
```
126+
127+
This command is unauthenticated: it never enrolls, never sends a stored token,
128+
and never changes stored credential, account, or enrollment state. It can run
129+
on a fresh installation with no configuration.
130+
131+
HTTP 202 accepts the request; it is not proof the email arrived, and the
132+
response is identical whether or not the address belongs to an account. One
133+
live recovery per account is in flight at a time; rerunning the same command
134+
reuses its saved Idempotency-Key instead of sending another link. Recovery is
135+
separate from the invitation quota, so a full invitation cap never blocks it.
136+
137+
The mailbox owner opens the emailed link (single use, expires after 24 hours)
138+
to restore access to the existing account, then attaches this installation by
139+
running `screenrig agent connect` in the CLI and approving the connection
140+
request in the recovered dashboard:
141+
142+
```sh
143+
screenrig agent connect
144+
```
145+
146+
Enrollment with a contact address that already belongs to an account stops
147+
with `email_conflict` and directs to this recovery flow; never retry
148+
enrollment with another address.
149+
94150
## Screen host and recovery
95151

96152
Native players report the shell and hardware they run on. `screen show` prints

0 commit comments

Comments
 (0)