Documentação

Projetos: comandos da CLI

Crie, selecione, renomeie, mova e exporte projetos, entre e saia, convide pessoas, leia os limites do plano e os valores de publicidade e execute o doctor.

Cada comando funciona como descrito na referência da CLI: flags globais, saída JSON, códigos de saída, revisões e tentativas.

Ciclo de vida do projeto e organização

O projeto atual é o último usado. Cada envelope JSON inclui contexto de organização e projeto; a saída humana nomeia ambos. Credenciais de identidade são limitadas pela associação do projeto selecionado. O estado de nova tentativa permanece separado por projeto.

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 --yes

project list verifica as associações acessíveis. project token --projects IDS substitui os projetos que o token deste login cobre por 1 a 64 IDs de projeto com consentimento, separados por vírgulas ou espaços. project use seleciona um. A criação exige um nome único na organização e usa por padrão a organização do projeto atual, depois a organização que você administra; quando nenhuma é indicada, a organização que detém o domínio de e-mail verificado do proprietário vem primeiro. A pessoa responsável se torna proprietária. Cada plano limita quantos projetos uma organização comporta; cada pessoa tem uma organização Standard gratuita, e uma segunda exige Plus, Premium ou Enterprise. Sem projeto atual e sem organização indicada, o servidor posiciona o projeto da mesma forma. --organization NAME inicia uma nova organização apenas para uma pessoa que não possui uma gratuita; caso contrário, a criação é recusada com free_organization_limit, cujo detalhe nomeia a organização a usar. A inscrição é regida por limites de taxa.

O proprietário pode mover o projeto para um destino retornado por project moves, ou transferir a propriedade para um membro verificado existente. A movimentação leva as telas junto, e uma organização de destino que já tem tantos projetos quanto o plano dela permite a recusa com project_limit_reached. A exclusão usa o nome atual exato e a revisão positiva da sua prévia. Ela exige zero telas não arquivadas, nenhum plano próprio e nenhuma publicidade ativa. Somente o proprietário do projeto ou um administrador da organização dele pode excluí-lo; um agente exclui em nome da sua pessoa responsável, ou sozinho apenas o projeto que ele inscreveu enquanto nenhuma pessoa tiver aceitado essa inscrição. Ela envia e-mail aos membros e mantém um registro da exclusão.

Os nomes de organização podem se repetir; use IDs explícitos ao renomear uma organização que você administra. Uma organização tem administradores designados e membros do domínio; os administradores convidam outros administradores e membros por e-mail a partir do painel. organization list marca as organizações free e plan_required, relata new_organization_allowed e nomeia o projeto de biblioteca de uma organização em library_project_id quando ela tem um. A lista de projetos dela não concede acesso ao conteúdo dos projetos. Quem paga é a organização: o plano, o armazenamento e o limite de solicitações de agente dela são compartilhados pelos seus projetos.

login --project ID solicita esse projeto na mesma identidade. Apenas aprovação explícita desta solicitação concede uma associação. agent disconnect --yes revoga uma associação (--allow-lockout também permite revogar o último agente do projeto); agent revoke-identity --yes revoga separadamente a identidade e todas as associações. Uma resposta ambígua mantém credenciais locais e estado de tentativa para reconciliação.

Relatórios de publicidade mantêm fatos de liquidação além da retenção de eventos. Leia seus metadados de cobertura: execuções históricas ausentes ou duração aprovada desconhecida são desconhecidas, nunca zero. Um relatório pode ter totais financeiros completos e histórico de resultados incompleto.

Projetos, convites e diagnósticos

Comandos do projeto listam associações, selecionam um projeto, criam projetos e gerenciam seus nomes, proprietários, transferências e exclusão. Convites trazem pessoas para projetos ou redes de anúncios.

project show#

Lê o registro do projeto.

project show

Sem parâmetros.

screenrig project show

project rename#

Defina o nome que as pessoas veem no seletor de projetos do dashboard.

project rename NAME

project token#

Substituir os projetos que o token deste login cobre.

project token --projects IDS
ParâmetroTipoObrigatórioPadrãoNotas
--projects IDSstringsimnenhumDe 1 a 64 ids de projeto prj_ distintos, separados por vírgulas ou espaços, cada um com o consentimento desta identidade.
screenrig project token --projects prj_01EXAMPLEPROJECT0000,prj_01EXAMPLEOTHER000000

Substitui o subconjunto inteiro; project list sozinho não concede acesso. Uma resposta perdida mantém o id da solicitação de rotação para uma nova tentativa idêntica.

project capabilities#

Ler o plano do projeto, flags de recurso independentes screens e advertiser, e conjunto de capacidades efetivas. Uma negação de rota prevalece sobre uma leitura de capacidade desatualizada.

project capabilities

project uptime#

Ler a disponibilidade diária de telas do projeto ao longo dos dias UTC.

project uptime [--day-from YYYY-MM-DD] [--day-to YYYY-MM-DD] [--format json|csv|xlsx|pdf] [--output FILE]
ParâmetroTipoObrigatórioPadrãoNotas
--day-from YYYY-MM-DDstringnão29 dias antes de --day-toPrimeiro dia UTC, inclusivo.
--day-to YYYY-MM-DDstringnãohojeÚltimo dia UTC, inclusivo. No máximo 366 dias após --day-from.
--format FORMATstringnãojsonjson é a resposta do comando. csv, xlsx ou pdf grava todas as linhas em --output e responde com path, bytes, sha256, content_type e format do arquivo.
--output FILEcaminhonão./project-uptime.FORMATO arquivo para csv, xlsx ou pdf: um caminho de arquivo, não um diretório, e não -. Um arquivo existente é substituído. Não com json.
screenrig project uptime
screenrig project uptime --day-from 2026-09-01 --day-to 2026-09-30

Intervalo e padrões são os de screen uptime. data.items lista uma linha por dia UTC, do mais antigo para o mais recente: online_s e offline_s somados sobre as telas com estado registrado naquele dia, availability, coverage (a parte do dia dessas telas com estado registrado) e screens (quantas tiveram estado registrado). A linha de hoje cobre intervalos que terminaram até agora; screen list mostra quem está online agora.

project health-trend#

Ler a saúde da frota por hora UTC: telas reportando, quente, display desconectado, travando.

project health-trend [--from TIME] [--to TIME] [--format json|csv|xlsx|pdf] [--output FILE]
ParâmetroTipoObrigatórioPadrãoNotas
--from TIMEstringnão24 horas antes de --toInício inclusivo da hora: um instante RFC 3339 com segundos e um deslocamento (normalizado para UTC), now, ou uma idade como 7d, 12h ou 30m.
--to TIMEstringnãoagoraFim exclusivo, nas mesmas formas. No máximo 93 dias após --from.
--format FORMATstringnãojsonjson é a resposta do comando. csv, xlsx ou pdf grava todas as linhas em --output e responde com path, bytes, sha256, content_type e format do arquivo.
--output FILEcaminhonão./health-trend.FORMATO arquivo para csv, xlsx ou pdf: um caminho de arquivo, não um diretório, e não -. Um arquivo existente é substituído. Não com json.
screenrig project health-trend
screenrig project health-trend --from 7d

data.items lista a saúde da frota por hora UTC: hour, screens_reporting, hot (temperatura máxima igual ou acima de 80 °C), display_disconnected, e crashing (3 ou mais falhas em 24 horas). O CLI segue next_cursor até o fim e responde a cada hora com next_cursor null. As horas seguem os relatórios com até cerca de 5 minutos de atraso.

project export#

Gravar os dados deste projeto em um diretório em formatos abertos.

project export <DIR> [--no-media] [--since YYYY-MM-DD]
ParâmetroTipoObrigatórioPadrãoNotas
<DIR>caminhosimnenhumO diretório onde gravar. Ele é criado se necessário, e uma nova execução o continua e o atualiza.
--no-mediabooleannãodesligadoOmita os arquivos de mídia originais; o manifesto ainda os lista com seus hashes.
--since YYYY-MM-DDstringnãoaté onde o plano mantém os dadosPrimeiro dia UTC dos CSV de plays, uptime e reprodução e do registro de eventos.
screenrig project export ./export
screenrig project export ./export --no-media --since 2026-01-01

DIR obtém JSON do projeto, telas, pastas de telas, tags, programações por tela, playlists com todas as revisões, campanhas, campanhas diretas, cartões e seus dados, fontes (nunca suas credenciais), notificações, webhooks (sem segredos de assinatura nem URLs de receptores), silenciamentos, metadados de aplicativos, gatilhos e assinaturas de relatórios; os arquivos de mídia originais em media/files, com media/manifest.json contendo o SHA-256 de cada arquivo; CSV de plays, reprodução, uptime e alertas em data/; e o registro de eventos em log/events.jsonl. export.json é gravado por último e lista cada arquivo com seu tamanho e SHA-256 e o resultado de cada seção (ok, skipped ou failed). Uma nova execução mantém os arquivos de mídia completos e continua os parciais. Uma seção que a credencial não pode ler é skipped; o aviso export_section_failed indica que a cópia está incompleta, então execute o mesmo comando novamente. Os arquivos de aplicativos são reportados como omitidos com complete: false e o aviso export_application_content_omitted, inclusive com --no-media: mantenha os arquivos originais dos aplicativos para recuperação. Cada solicitação é uma solicitação de API cobrada, e os downloads de mídia são tráfego de saída.

invitations#

Criar, listar ou revogar convites para membros do projeto, uploaders e compradores de anúncios.

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 tem member como padrão. A entrega por e-mail é o padrão e expira após sete dias. --email aceita destinatários separados por vírgula, até cinquenta por solicitação. --link é somente para membros, não nomeia nenhum destinatário e retorna uma vez uma URL de convite de vinte e quatro horas para entrega direta à pessoa pretendida. Nunca coloque essa URL em logs, notas ou transcrição compartilhada. As listas nunca a retornam. No máximo 50 convites podem estar pendentes por organização.

Compradores de anúncios usam apenas e-mail e precisam de escopo de tela ou slot próprio (ou ambos). --screen-id e --slot-id aceitam IDs separados por vírgula; --policy seleciona trusted ou review_required. Filtros de status são queued, sent, issued, accepted, revoked, expired e failed.

--kind uploader convida uma pessoa que trabalha apenas nas pastas de mídia indicadas com --folder-id (pelo menos uma) e nas playlists indicadas com --playlist-id: ela faz upload para essas pastas e adiciona, substitui e remove páginas dessas playlists, e nada mais. As alterações dela aguardam revisão, a menos que --access manage, algo que só quem pode aprovar revisões pode conceder. Um convite --kind member com --screen-folder-id (cada pasta inclui todas as pastas dentro dela) ou --screen-id limita a pessoa que aceita a essas telas. --folder-id, --playlist-id e --access exigem --kind uploader, e --slot-id e --policy exigem --kind ad-buyer. Veja Autenticação.

screenrig invitations create --email teammate@example.com
screenrig invitations create --kind ad-buyer --email buyer@example.com --screen-id scr_LOBBY --policy review_required

Agentes não aceitam convites. A pessoa convidada abre o e-mail, faz login ou cria uma passkey, e aceita no dashboard. O cadastro por link verifica o e-mail primeiro. Revogar um convite aceito não desfaz uma associação; use os controles de associação do comprador para revogar o acesso à publicidade.

agent status#

Relatar se esta instalação possui uma credencial utilizável.

agent status

Sem parâmetros.

screenrig agent status

Somente leitura. Nunca altera estado local ou do servidor, e não custa nada. O resultado traz o access da sessão, seu effective_access e, quando a configuração de revisão do projeto ou um membro que não pode aprovar o mantém em nível inferior, access_limited_by (project ou person). Quando o projeto limita este agente a pastas de telas e telas, screen_scope as lista (folder_ids, cada uma com todas as pastas dentro dela, e screen_ids) e person_screen_scope é o escopo da pessoa responsável pelo agente; o agente age apenas nas telas que ambos permitem, e ambos estão ausentes para um agente do projeto inteiro. Fora do escopo, um comando responde outside_screen_scope (saída 3). Notas novas do projeto, ou notas que precisam de revisão, acrescentam o aviso notes_waiting.

agent disconnect#

Revogar a associação deste agente ao projeto atual.

agent disconnect --yes [--allow-lockout]
ParâmetroTipoObrigatórioPadrãoNotas
--yesbooleansimdesligadoConfirme a revogação. Nada é enviado sem isso.
--allow-lockoutbooleannãodesligadoPermita desconectar o último agente do projeto. Sem isso, o servidor recusa com agent_lockout_risk.
screenrig agent disconnect --yes

Revoga apenas a associação ao projeto atual: a identidade, as outras associações, o projeto e suas telas permanecem. As credenciais locais e o estado de tentativa permanecem quando a resposta é ambígua, então executar novamente é seguro.

agent revoke-identity#

Revogar esta identidade e todas as suas associações a projetos.

agent revoke-identity --yes
ParâmetroTipoObrigatórioPadrãoNotas
--yesbooleansimdesligadoConfirme a revogação em todos os projetos.
screenrig agent revoke-identity --yes

A revogação confirmada apaga as credenciais locais e o trabalho pendente de todos os projetos em cache. Uma falha ambígua os mantém.

login#

Faça login desta instalação em uma conta existente, com aprovação de uma pessoa no dashboard, ou como um cliente de serviço.

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âmetroTipoObrigatórioPadrãoNotas
--project IDstringnãonenhumSugira o projeto prj_ que a pessoa aprova.
--access LEVELstringnãogerenciarread, propose ou manage. A pessoa faz a escolha final.
--name NAMEstringnãonenhumNomeie esta instalação, no máximo 80 caracteres.
--no-waitbooleannãodesligadoRetornar status: pending com o endereço, o código e um identificador login_.
--resume IDstringnãonenhumAguarde o login pendente que --no-wait iniciou.
--client-id IDstringnãonenhumFaça login desta configuração como um cliente de serviço (scl_…) em vez de uma pessoa, sem aprovação. Não com --no-wait, --project, --access ou --name.
--client-key-file PATHcaminhocom --client-idnenhumA chave privada do cliente, um JWK ou PEM. Exatamente um entre o arquivo de chave e o arquivo de segredo.
--client-secret-file PATHcaminhocom --client-idnenhumUm arquivo com o segredo do cliente.
screenrig login --access read
screenrig --config ci.json login --client-id scl_01EXAMPLECLIENT0000 --client-key-file ci-key.pem

Imprime o endereço do dashboard e um código de oito letras no stderr, depois espera até 24 horas. A pessoa verifica se o código corresponde e pressiona Conectar uma vez, sem segundo prompt de passkey após login no dashboard na última hora. O envelope reporta status: signed_in, o projeto, a organização e access. Executar novamente em uma instalação logada adiciona um projeto ou eleva de Somente leitura ou Propor projeto para Gerenciar. Negação é login_denied e expiração é login_expired.

A configuração de um cliente de serviço deve ser um arquivo próprio: todo comando posterior com esse --config faz login como o cliente, lendo o arquivo de chave ou de segredo a cada vez e mantendo o token na memória.

logout#

Encerrar o login desta instalação e remover seus tokens.

logout

Sem parâmetros.

screenrig logout

Revoga o login no servidor, depois remove os tokens armazenados e reporta status: signed_out. Na configuração de um cliente de serviço, remove o cliente salvo e deixa seu arquivo de chave ou de segredo. Uma falha que pode não ter alcançado o servidor os mantém, então executar novamente é seguro. Execute screenrig login para entrar novamente.

dashboard#

Abra a URL comum do dashboard. Este comando não gera um link de login, cria uma sessão ou precisa de credencial de agente.

dashboard [open]
screenrig dashboard

O dashboard mostra os projetos da pessoa após o login. A seleção de projeto no navegador não altera o projeto vinculado a um agente.

dashboard reset-sign-in#

Solicitar um e-mail de redefinição de login sem credencial de agente.

dashboard reset-sign-in --email ADDRESS

O reconhecimento não revela se o e-mail tem um login. O reset enviado por e-mail expira após uma hora; a pessoa cria uma nova passkey. A conclusão substitui suas credenciais de login e revoga outras sessões. Enquanto a propriedade do projeto ainda está pendente desde a inscrição, --email com o endereço de inscrição original também envia por e-mail um novo convite de inscrição de sete dias; a pessoa o abre e o aceita com seu login para reivindicar a propriedade.

doctor#

Verifique esta instalação e relate cada verificação pelo nome.

doctor [--repair-config]
ParâmetroTipoObrigatórioPadrãoNotas
--repair-configbooleannãodesligadoAperte as permissões em um arquivo de configuração existente que é legível por grupo ou outros.
screenrig doctor

data.checks nomeia cada verificação e seu status (pass, warn ou fail): o runtime Node, o caminho de configuração resolvido e suas permissões, a credencial armazenada e o fim do login, a origem do plano de controle e suas rotas de serviço, a capacidade feedback anunciada, e a cadeia de ferramentas de mídia opcional (ffmpeg, ffprobe, encoder_libx264, encoder_libx265, encoder_libwebp, cwebp, filter_hdr_tonemap).

Qualquer verificação falhada faz doctor sair com código diferente de zero, e warn não faz isso, então leia os nomes individuais antes de chamar a instalação de não saudável. Uma cadeia de ferramentas de mídia ausente afeta apenas os comandos que convertem mídia: media upload, media upload-batch, media replace e playlist init.

version#

Imprime a versão do CLI empacotada e seu adaptador de protocolo.

version

Sem parâmetros.

screenrig version

Execute isto primeiro em uma sessão. Um envelope bem-sucedido prova que o launcher resolveu o CLI incluído. --version e -V fazem a mesma coisa de qualquer lugar na linha de comando.

Faturamento

Limites do plano e valores de publicidade do projeto. Solicitações, armazenamento, reprodução e tudo o mais que um projeto faz nunca são cobrados; os valores aqui são apenas de publicidade. Os três comandos são gratuitos, e as leituras de /api/billing não contam no limite por hora de solicitações de agente.

billing usage#

Lê os limites de armazenamento e de solicitações de agente do plano.

billing usage

Sem parâmetros.

screenrig billing usage

data.stored_bytes é o armazenamento usado e data.allowance.storage_bytes o limite de armazenamento do plano; um upload além dele é recusado com quota_exceeded. data.allowance.requests_per_hour é o limite por hora de solicitações de agente (agent_requests_per_hour na saída para pessoas). As solicitações restantes nesta hora estão no cabeçalho RateLimit de cada resposta contada.

billing balance#

Lê os valores de publicidade em dólares americanos: restante, reservado, disponível e ganhos pagáveis.

billing balance

Sem parâmetros.

screenrig billing balance

Os anunciantes pagam com cartão ou com pagamento de máquina x402, os preços e os ganhos são em dólares americanos e os pagamentos começam em 1º de janeiro de 2027. A saída para pessoas mostra dólares; o JSON mantém os membros decimais mcr, em que 10.000.000 mcr são US$1.

billing statement#

Ler as entradas lançadas do livro-razão.

billing statement [--cursor CURSOR] [--limit COUNT]
ParâmetroTipoObrigatórioPadrãoNotas
--cursor CURSORstringnãoprimeira páginaO next_cursor de um extrato anterior.
--limit COUNTintegernãopadrão do servidorO máximo de entradas a retornar.
screenrig billing statement --limit 20

As entradas são linhas do livro-razão lançadas, em dólares americanos, em ordem estável. As reservas aparecem como bloqueios, não como ganhos ou gastos lançados, e uma correção aponta para a entrada original em vez de reescrevê-la. Uma cobrança de publicidade é visível ao comprador; o vendedor vê o bruto, a taxa de serviço e o líquido.

Outros grupos de comandos