Ciclo de vida del proyecto y la organización
El proyecto actual es el último usado. Cada sobre JSON incluye contexto de organización y proyecto; la salida humana nombra ambos. Las credenciales de identidad están limitadas por la membresía del proyecto seleccionado. El estado de reintento se mantiene separado por proyecto.
project list
project token --projects IDS
project use ID
project create NAME [--organization-id ID | --organization NAME]
project moves
project move --organization-id ID
project transfer-owner --user-id ID
project deletion-preview
project delete --name NAME --revision N --yes
organization list
organization rename ID NAME
project export DIR [--no-media] [--since YYYY-MM-DD]
agent disconnect --yes [--allow-lockout]
agent revoke-identity --yesproject list verifica las membresías accesibles. project token --projects IDS reemplaza los proyectos que cubre el token de este inicio de sesión por de 1 a 64 ID de proyecto con consentimiento, separados por comas o espacios. project use selecciona uno. La creación requiere un nombre único en su organización y toma por defecto la organización del proyecto actual, luego la organización que usted administra; cuando no se nombra ninguna, primero va la organización que tiene el dominio de correo electrónico verificado del propietario. La persona responsable pasa a ser el propietario. Cada plan limita cuántos proyectos puede tener una organización; cada persona tiene una organización Standard gratuita, y una segunda requiere Plus, Premium o Enterprise. Sin proyecto actual ni organización indicada, el servidor ubica el proyecto del mismo modo. --organization NAME inicia una organización nueva solo para una persona que no tenga una gratuita; de lo contrario, la creación se rechaza con free_organization_limit, cuyo detalle nombra la organización que debe usarse. La inscripción está sujeta a límites de tasa.
El propietario puede mover el proyecto a un destino devuelto por project moves, o transferir la propiedad a un miembro verificado existente. Un movimiento lleva consigo las pantallas, y una organización de destino que ya tiene tantos proyectos como permite su plan lo rechaza con project_limit_reached. La eliminación usa el nombre actual exacto y la revisión positiva de su vista previa. Requiere cero pantallas no archivadas, ningún plan propio y ninguna publicidad activa. Solo el propietario del proyecto o un administrador de su organización puede eliminarlo; un agente elimina en nombre de su persona responsable, o por sí solo únicamente el proyecto que inscribió mientras ninguna persona haya aceptado esa inscripción. Envía un correo a los miembros y conserva una lápida.
Los nombres de organización pueden repetirse; use ID explícitos al renombrar una organización que administra. Una organización tiene administradores designados y miembros propios; los administradores invitan a otros administradores y miembros por correo desde el panel. organization list marca las organizaciones free y plan_required, informa new_organization_allowed y nombra el proyecto de biblioteca de una organización en library_project_id cuando lo tiene. Su lista de proyectos no concede acceso al contenido de los proyectos. Paga la organización: su plan, su almacenamiento y su límite de solicitudes de agentes son compartidos por sus proyectos.
login --project ID solicita ese proyecto con la misma identidad. Solo la aprobación explícita de esta solicitud concede la membresía. agent disconnect --yes revoca una membresía (--allow-lockout también permite revocar el último agente del proyecto); agent revoke-identity --yes revoca por separado la identidad y todas las membresías. Una respuesta ambigua conserva las credenciales locales y el estado de reintento para reconciliación.
Los informes publicitarios conservan datos de liquidación más allá de la retención de eventos. Lea sus metadatos de cobertura: reproducciones históricas faltantes o duración aprobada desconocida son desconocidas, nunca cero. Un informe puede tener totales financieros completos e historial de resultados incompleto.
Proyectos, invitaciones y diagnósticos
Los comandos de proyecto listan membresías, seleccionan un proyecto, crean proyectos y gestionan sus nombres, propietarios, movimientos y eliminación. Las invitaciones incorporan personas a proyectos o redes publicitarias.
project show#
Leer el registro del proyecto.
project show
Sin parámetros.
screenrig project show
project rename#
Establecer el nombre que las personas ven en el conmutador de proyectos del panel.
project rename NAME
project token#
Reemplazar los proyectos que cubre el token de este inicio de sesión.
project token --projects IDS| Parámetro | Tipo | Requerido | Predeterminado | Notas |
|---|---|---|---|---|
--projects IDS | string | sí | ninguno | De 1 a 64 ids de proyecto prj_ distintos, separados por comas o espacios, cada uno con el consentimiento de esta identidad. |
screenrig project token --projects prj_01EXAMPLEPROJECT0000,prj_01EXAMPLEOTHER000000Reemplaza el subconjunto completo; project list por sí solo no concede acceso. Una respuesta perdida conserva el id de solicitud de rotación para un reintento idéntico.
project capabilities#
Leer el plan del proyecto, las banderas de función independientes screens y advertiser y el conjunto de capacidades efectivas. Una denegación de ruta prevalece sobre una lectura de capacidad obsoleta.
project capabilities
project uptime#
Leer la disponibilidad diaria de pantallas del proyecto durante días UTC.
project uptime [--day-from YYYY-MM-DD] [--day-to YYYY-MM-DD] [--format json|csv|xlsx|pdf] [--output FILE]| Parámetro | Tipo | Requerido | Predeterminado | Notas |
|---|---|---|---|---|
--day-from YYYY-MM-DD | string | no | 29 días antes de --day-to | Primer día UTC, inclusive. |
--day-to YYYY-MM-DD | string | no | hoy | Último día UTC, inclusive. Como máximo 366 días después de --day-from. |
--format FORMAT | string | no | json | json es la respuesta del comando. csv, xlsx o pdf escribe todas las filas en --output y responde con su path, bytes, sha256, content_type y format. |
--output FILE | ruta | no | ./project-uptime.FORMAT | El archivo para csv, xlsx o pdf: una ruta de archivo, no un directorio, y no -. Un archivo existente se reemplaza. No con json. |
screenrig project uptime
screenrig project uptime --day-from 2026-09-01 --day-to 2026-09-30El rango y los valores predeterminados son los de screen uptime. data.items lista una fila por día UTC, del más antiguo al más reciente: online_s y offline_s sumados sobre las pantallas con estado registrado ese día, availability, coverage (la proporción del día de esas pantallas con estado registrado) y screens (cuántas tenían estado registrado). La fila de hoy cubre intervalos que terminaron hasta ahora; screen list muestra quién está en línea ahora.
project health-trend#
Leer la salud de la flota por hora UTC: pantallas reportando, calientes, pantalla desconectada, fallando.
project health-trend [--from TIME] [--to TIME] [--format json|csv|xlsx|pdf] [--output FILE]| Parámetro | Tipo | Requerido | Predeterminado | Notas |
|---|---|---|---|---|
--from TIME | string | no | 24 horas antes de --to | Inicio inclusivo de la hora: un instante RFC 3339 con segundos y un desplazamiento (normalizado a UTC), now, o una antigüedad como 7d, 12h o 30m. |
--to TIME | string | no | ahora | Fin exclusivo, en las mismas formas. Máximo 93 días después de --from. |
--format FORMAT | string | no | json | json es la respuesta del comando. csv, xlsx o pdf escribe todas las filas en --output y responde con su path, bytes, sha256, content_type y format. |
--output FILE | ruta | no | ./health-trend.FORMAT | El archivo para csv, xlsx o pdf: una ruta de archivo, no un directorio, y no -. Un archivo existente se reemplaza. No con json. |
screenrig project health-trend
screenrig project health-trend --from 7ddata.items lista la salud de la flota por hora UTC: hour, screens_reporting, hot (temperatura máxima igual o superior a 80 °C), display_disconnected, y crashing (3 o más fallos en 24 horas). La CLI sigue next_cursor hasta el final y responde cada hora con next_cursor null. Las horas siguen a los informes con hasta unos 5 minutos de retraso.
project export#
Escribir los datos de este proyecto en un directorio en formatos abiertos.
project export <DIR> [--no-media] [--since YYYY-MM-DD]| Parámetro | Tipo | Requerido | Predeterminado | Notas |
|---|---|---|---|---|
<DIR> | ruta | sí | ninguno | El directorio en el que escribir. Se crea si hace falta, y una nueva ejecución lo continúa y lo actualiza. |
--no-media | boolean | no | apagado | Omitir los archivos multimedia originales; el manifiesto los sigue listando con sus hashes. |
--since YYYY-MM-DD | string | no | hasta donde el plan conserve los datos | Primer día UTC de los CSV de reproducciones, tiempo activo y reproducción, y del registro de eventos. |
screenrig project export ./export
screenrig project export ./export --no-media --since 2026-01-01DIR obtiene JSON del proyecto, las pantallas, las carpetas de pantallas, las etiquetas, las programaciones por pantalla, las listas de reproducción con todas sus revisiones, las campañas, las campañas directas, las tarjetas y sus datos, las fuentes (nunca sus credenciales), las notificaciones, los webhooks (sin secretos de firma ni URL de receptor), los silenciamientos, los metadatos de aplicación, los activadores y las suscripciones a informes; los archivos multimedia originales en media/files, con media/manifest.json que contiene el SHA-256 de cada archivo; CSV de reproducciones, reproducción, tiempo activo y alertas en data/; y el registro de eventos en log/events.jsonl. export.json se escribe al final y lista cada archivo con su tamaño y su SHA-256, y el resultado de cada sección (ok, skipped o failed). Una nueva ejecución conserva los archivos multimedia completos y continúa los parciales. Una sección que la credencial no puede leer es skipped; la advertencia export_section_failed significa que la copia está incompleta, así que ejecute de nuevo el mismo comando. Los archivos de aplicación se informan como omitidos con complete: false y la advertencia export_application_content_omitted, también con --no-media: conserve los archivos originales de las aplicaciones para la recuperación. Cada solicitud es una solicitud de API facturada, y las descargas multimedia son salida de datos.
invitations#
Crear, listar o revocar invitaciones para miembros del proyecto, usuarios de carga y compradores de anuncios.
invitations create (--email ADDRESS[,ADDRESS] | --link) [--kind member|uploader|ad-buyer]
[--screen-id IDS] [--screen-folder-id IDS] [--slot-id IDS] [--policy trusted|review_required]
[--folder-id IDS] [--playlist-id IDS] [--access propose|manage]
invitations list [--kind member|ad-buyer] [--status STATUS]
invitations revoke ID--kind predetermina a member. La entrega por correo electrónico es la predeterminada y expira después de siete días. --email acepta destinatarios separados por comas, hasta cincuenta por solicitud. --link es solo para miembros, no nombra ningún destinatario y devuelve una sola vez una URL de invitación de veinticuatro horas para entrega directa a la persona prevista. Nunca ponga esa URL en registros, notas o una transcripción compartida. Las listas nunca la devuelven. Puede haber como máximo 50 invitaciones pendientes por organización.
Los compradores de anuncios usan solo correo electrónico y necesitan un alcance de pantalla o espacio propio (o ambos). --screen-id y --slot-id aceptan IDs separados por comas; --policy selecciona trusted o review_required. Los filtros de estado son queued, sent, issued, accepted, revoked, expired y failed.
--kind uploader invita a una persona que trabaja solo en las carpetas multimedia indicadas con --folder-id (al menos una) y en las listas de reproducción indicadas con --playlist-id: sube contenido a esas carpetas y agrega, reemplaza y elimina páginas de esas listas, y nada más. Sus cambios quedan a la espera de revisión salvo que --access manage, lo cual solo puede conceder quien puede aprobar revisiones. Una invitación --kind member con --screen-folder-id (cada carpeta incluye todas las carpetas que contiene) o --screen-id limita a la persona que la acepta a esas pantallas. --folder-id, --playlist-id y --access requieren --kind uploader, y --slot-id y --policy requieren --kind ad-buyer. Véase Autenticación.
screenrig invitations create --email teammate@example.com
screenrig invitations create --kind ad-buyer --email buyer@example.com --screen-id scr_LOBBY --policy review_requiredLos agentes no aceptan invitaciones. La persona invitada abre el correo, inicia sesión o crea una passkey, y acepta en el panel. El registro por enlace verifica primero su correo. Revocar una invitación aceptada no anula una membresía; use los controles de membresía de comprador para revocar el acceso publicitario.
agent status#
Reportar si esta instalación tiene una credencial usable.
agent statusSin parámetros.
screenrig agent statusSolo lectura. Nunca cambia el estado local ni el del servidor, y no cuesta nada. El resultado lleva el access de la sesión, su effective_access y, cuando la configuración de revisión del proyecto o un miembro sin aprobación lo mantiene bajo, access_limited_by (project o person). Cuando el proyecto limita a este agente a carpetas de pantallas y pantallas, screen_scope las enumera (folder_ids, cada una con todas las carpetas que contiene, y screen_ids) y person_screen_scope es el alcance de la persona responsable del agente; el agente actúa solo en las pantallas que ambos permiten, y ambos están ausentes para un agente de todo el proyecto. Fuera del alcance, un comando responde outside_screen_scope (código de salida 3). Las notas nuevas del proyecto, o las notas pendientes de revisión, añaden la advertencia notes_waiting.
agent disconnect#
Revocar la membresía de este agente en el proyecto actual.
agent disconnect --yes [--allow-lockout]| Parámetro | Tipo | Requerido | Predeterminado | Notas |
|---|---|---|---|---|
--yes | boolean | sí | apagado | Confirmar la revocación. Sin ella no se envía nada. |
--allow-lockout | boolean | no | apagado | Permitir desconectar al último agente del proyecto. Sin ello, el servidor se niega con agent_lockout_risk. |
screenrig agent disconnect --yesRevoca solo la membresía del proyecto actual: la identidad, las demás membresías, el proyecto y sus pantallas permanecen. Las credenciales locales y el estado de reintento se conservan cuando la respuesta es ambigua, por lo que volver a ejecutar es seguro.
agent revoke-identity#
Revocar esta identidad y todas sus membresías de proyecto.
agent revoke-identity --yes| Parámetro | Tipo | Requerido | Predeterminado | Notas |
|---|---|---|---|---|
--yes | boolean | sí | apagado | Confirmar la revocación en todos los proyectos. |
screenrig agent revoke-identity --yesUna revocación confirmada borra las credenciales locales y el trabajo pendiente de cada proyecto en caché. Un fallo ambiguo los conserva.
login#
Inicie sesión en esta instalación con una cuenta existente, con la aprobación de una persona en el panel, o como un cliente de servicio.
login [--project ID] [--access read|propose|manage] [--name NAME] [--no-wait] [--resume ID]
login --client-id ID (--client-key-file PATH | --client-secret-file PATH)| Parámetro | Tipo | Requerido | Predeterminado | Notas |
|---|---|---|---|---|
--project ID | string | no | ninguno | Sugiera el proyecto prj_ que la persona aprueba. |
--access LEVEL | string | no | administrar | read, propose o manage. La persona toma la decisión final. |
--name NAME | string | no | ninguno | Nombre de esta instalación, máximo 80 caracteres. |
--no-wait | boolean | no | apagado | Devolver status: pending con la dirección, el código y un identificador login_. |
--resume ID | string | no | ninguno | Espere el inicio de sesión pendiente que --no-wait inició. |
--client-id ID | string | no | ninguno | Inicie sesión con esta configuración como un cliente de servicio (scl_…) en lugar de una persona, sin aprobación. No con --no-wait, --project, --access ni --name. |
--client-key-file PATH | ruta | con --client-id | ninguno | La clave privada del cliente, un JWK o PEM. Exactamente uno entre el archivo de clave y el archivo de secreto. |
--client-secret-file PATH | ruta | con --client-id | ninguno | Un archivo que contiene el secreto del cliente. |
screenrig login --access read
screenrig --config ci.json login --client-id scl_01EXAMPLECLIENT0000 --client-key-file ci-key.pemImprime la dirección del panel y un código de ocho letras en stderr, luego espera hasta 24 horas. La persona verifica que el código coincida y presiona Conectar una vez, sin segunda solicitud de passkey tras un inicio de sesión en el panel en la última hora. El sobre informa status: signed_in, el proyecto, la organización y access. Ejecutarlo de nuevo en una instalación con sesión iniciada añade un proyecto o eleva un proyecto de Solo lectura o Proponer a Gestionar. La denegación es login_denied y la expiración es login_expired.
La configuración de un cliente de servicio debe ser su propio archivo: cada comando posterior con ese --config inicia sesión como el cliente, lee el archivo de clave o secreto cada vez y mantiene el token en memoria.
logout#
Finalizar la sesión de esta instalación y eliminar sus tokens.
logoutSin parámetros.
screenrig logoutRevoca el inicio de sesión en el servidor, luego elimina los tokens almacenados e informa status: signed_out. En la configuración de un cliente de servicio elimina el cliente guardado y deja su archivo de clave o secreto. Un fallo que podría no haber llegado al servidor los mantiene, por lo que volver a ejecutar es seguro. Ejecute screenrig login para iniciar sesión nuevamente.
dashboard#
Abra la URL ordinaria del panel. Este comando no genera un enlace de inicio de sesión, crea una sesión ni necesita credencial de agente.
dashboard [open]
screenrig dashboard
El dashboard muestra los proyectos de la persona después de iniciar sesión. La selección de proyecto en el navegador no cambia el proyecto vinculado a un agente.
dashboard reset-sign-in#
Solicitar un correo electrónico de restablecimiento de inicio de sesión sin credencial de agente.
dashboard reset-sign-in --email ADDRESSEl acuse no revela si el correo tiene inicio de sesión. El restablecimiento enviado por correo expira en una hora; la persona crea una nueva passkey. La finalización reemplaza sus credenciales de inicio de sesión y revoca otras sesiones. Mientras la propiedad del proyecto siga pendiente desde la inscripción, --email con la dirección de inscripción original también envía por correo una nueva invitación de inscripción de siete días; la persona la abre y acepta con su inicio de sesión para reclamar la propiedad.
doctor#
Verifique esta instalación e informe cada verificación por nombre.
doctor [--repair-config]| Parámetro | Tipo | Requerido | Predeterminado | Notas |
|---|---|---|---|---|
--repair-config | boolean | no | apagado | Restringa los permisos en un archivo de configuración existente que sea legible por grupo u otros. |
screenrig doctordata.checks nombra cada verificación y su estado (pass, warn o fail): el runtime de Node, la ruta de configuración resuelta y sus permisos, la credencial almacenada y el fin del inicio de sesión, el origen del plano de control y sus rutas de servicio, la capacidad feedback anunciada, y la cadena de herramientas multimedia opcional (ffmpeg, ffprobe, encoder_libx264, encoder_libx265, encoder_libwebp, cwebp, filter_hdr_tonemap).
Cualquier verificación fallida hace que doctor salga con código distinto de cero, y un warn no, así que lea los nombres individuales antes de marcar la instalación como no saludable. Una cadena de herramientas de medios faltante afecta solo a los comandos que convierten medios: media upload, media upload-batch, media replace y playlist init.
version#
Imprima la versión del CLI incluida y su adaptador de protocolo.
version
Sin parámetros.
screenrig version
Ejecute esto primero en una sesión. Un sobre exitoso prueba que el lanzador resolvió la CLI incluida. --version y -V hacen lo mismo desde cualquier línea de comandos.
Facturación
Límites del plan e importes de publicidad del proyecto. Las solicitudes, el almacenamiento, la reproducción y todo lo demás que hace un proyecto nunca se cobran; los importes de aquí son solo de publicidad. Los tres comandos son gratuitos, y las lecturas de /api/billing no cuentan para el límite por hora de solicitudes de agentes.
billing usage#
Leer los límites de almacenamiento y de solicitudes de agentes del plan.
billing usageSin parámetros.
screenrig billing usagedata.stored_bytes es el almacenamiento usado y data.allowance.storage_bytes el límite de almacenamiento del plan; una subida que lo supere se rechaza con quota_exceeded. data.allowance.requests_per_hour es el límite por hora de solicitudes de agentes (agent_requests_per_hour en la salida para personas). Las solicitudes que quedan en esta hora están en el encabezado RateLimit de cada respuesta contada.
billing balance#
Leer los importes de publicidad en dólares estadounidenses: restante, reservado, disponible y ganancias pagables.
billing balanceSin parámetros.
screenrig billing balanceLos anunciantes pagan con tarjeta o con un pago de máquina x402, los precios y las ganancias son en dólares estadounidenses y los pagos empiezan el 1 de enero de 2027. La salida para personas muestra dólares; el JSON conserva los miembros decimales mcr, donde 10,000,000 mcr son US$1.
billing statement#
Leer las entradas publicadas del libro mayor.
billing statement [--cursor CURSOR] [--limit COUNT]| Parámetro | Tipo | Requerido | Predeterminado | Notas |
|---|---|---|---|---|
--cursor CURSOR | string | no | primera página | El next_cursor de un estado de cuenta anterior. |
--limit COUNT | integer | no | predeterminado del servidor | El máximo de entradas que devolver. |
screenrig billing statement --limit 20Las entradas son filas del libro mayor ya contabilizadas, en dólares estadounidenses y en un orden estable. Las reservas aparecen como retenciones, no como ganancias o gastos contabilizados, y una corrección enlaza con la entrada original en lugar de reescribirla. Un cargo de publicidad lo ve el comprador; un vendedor ve su importe bruto, la comisión de servicio y el neto.