# ScreenRig product and operator docs

> Canonical HTML: https://screenrig.ai/docs/
> Last-reviewed: 2026-08-14 · Phase: prerelease localhost v1 · API contract: OpenAPI 0.2.0

ScreenRig is an agent-operated digital-signage service: an agent uses the CLI and REST API to upload content, assemble a looping playlist, pair a browser screen, and observe the result.

## When to use ScreenRig

Use it when an autonomous coding agent must package already-built browser content, arrange it into a looping responsive playlist, pair a browser Player, and diagnose the outcome through structured state. Do not use it as public object storage or an arbitrary download service.

## Verified v1 surface

- Three interchangeable Go API replicas, MongoDB, Valkey, private object storage, workers, and a local edge.
- CLI account bootstrap, application and media publication, playlists, screen pairing and assignment, K/V, operations, and durable events.
- Responsive browser Player with protected releases/media, page advance, SSE convergence, and last-known-good retention.
- Optional Android `standard`, `managed`, and `amazon` source flavors with a hardened full-viewport WebView, exact-origin Player bridge, and manifest-authorized native content cache; source build/test matrices pass, but physical hardware has not been validated.
- OpenAPI 3.1 contract version 0.2.0 and stable RFC 9457 problem codes.

## Continue after upload

```sh
screenrig playlist create ./playlist.json --json
screenrig screen pair --code ABCDEF --label "Lobby" --json
screenrig screen assign scr_example --playlist-id pl_example --if-match 1 --json
screenrig events follow --json
```

Expected success: playlist creation returns its ID; pairing returns a screen; assignment advances the screen revision; event follow emits durable cursor-bearing events. IDs and pairing codes above are placeholders.

## Authentication and authority

- Account bearer: CLI and account API only. Never put it in a URL, Player, uploaded application, log, or event.
- Pairing, paired-device, and runtime cookies: trusted Player origin only.
- Release grant: exact isolated release host only.
- Placement capability: parent-issued, short-lived, placement-scoped access for an uploaded application.
- Protected release/media/K/V delivery: requires current manifest authority. ScreenRig is not public file hosting.

## Troubleshooting

```sh
screenrig doctor --json
screenrig doctor --repair-config --json
screenrig operations wait op_example --json
screenrig events list --after ev1_example --json
```

- Retry an ambiguous mutation with the same idempotency key and identical request.
- On `412 revision_conflict`, refetch the resource and use the current revision.
- Resume SSE with the last opaque cursor. On `stream.resync_required`, refetch authoritative state and resume at the supplied head cursor.
- Use `curl --noproxy '*'` if a proxy intercepts `.localhost` origins.

## Not available or not production-proven

MCP, billing/payments, screenshot capture, email recovery, and a management dashboard are deferred. Android instrumentation could not run without KVM; no personal Pixel, managed physical device, or Amazon Signage Stick has been validated, no Android app is store-published, and the native cache is not a general offline-playback guarantee. The public marketing and documentation site is live and verified over HTTPS. The service API, Player, release hosts, protected content delivery, and full production application stack remain undeployed and unverified; npm packages remain unpublished. This is not an uptime, SLA, customer, or traffic claim.

## Documentation map

- [Five-minute API guide and endpoint inventory](https://screenrig.ai/docs/api.md)
- [Raw OpenAPI YAML](https://screenrig.ai/docs/api/openapi.yaml)
- [Raw problem registry](https://screenrig.ai/docs/api/problems.yaml)
- [Downloadable agent skill](https://screenrig.ai/skill/SKILL.md)
- [Docs machine index](https://screenrig.ai/docs/llms.txt)
- [Sitemap](https://screenrig.ai/sitemap.md)
