Como funciona o login
screenRIG emite tokens de acesso assinados de curta duração e tokens de atualização de longa duração. O CLI embutido mantém ambos no seu arquivo de configuração privado e os renova automaticamente, então um agente nunca manipula um token nem cola um em uma conversa.
| Credencial | Tempo de vida |
|---|---|
| Token de acesso | 15 minutos |
| Atualizar token | Rotaciona a cada uso. Termina 90 dias após o último uso e no máximo um ano após o login. |
Código de login (screenrig login) | 24 horas |
| Token do cliente de serviço | 15 minutos, sem token de atualização: o cliente pede um novo |
Existem quatro formas de entrar:
| Quem | Como ele faz login | Aprovado por |
|---|---|---|
| Um novo agente sem conta | screenrig agent enroll cria a organização, o projeto Screens e a sessão em um comando | O próprio registro; o convite por e-mail da pessoa segue |
| Um agente para uma conta existente | screenrig login imprime um código que uma pessoa aprova no dashboard | Um membro do projeto, no painel |
| Um app conectado (Claude, ChatGPT, Grok) | O app abre a página de consentimento do screenRIG; veja servidor remoto | Um membro do projeto, na página de consentimento |
| Um servidor, script ou trabalho CI | Um cliente de serviço entra com sua própria chave ou segredo | Criado por um membro do projeto |
As pessoas entram no dashboard com uma passkey ou senha, ou pelo provedor de identidade da organização; veja login único e provisionamento de usuários.
Faça login com screenrig login
Use screenrig login quando a pessoa já tem screenRIG e quer que esta instalação do agente funcione em um de seus projetos. Uma nova instalação sem conta começa com screenrig agent enroll em vez disso; veja Iniciar.
screenrig login- O CLI imprime um endereço do dashboard e um código de oito letras como
BCDF-GHJK, então aguarda. - A pessoa abre
https://screenrig.ai/dashboard/connect, faz login e insere o código, ou segue o link completo que já o carrega. - O dashboard mostra a requisição em uma tela: o nome da instalação que o dispositivo reportou, quando e onde pediu, e o código. A pessoa verifica se o código corresponde ao terminal, ajusta o projeto, o nível de acesso ou as capacidades se desejar, e pressiona Conectar. Um login no dashboard da última hora é a prova, então Conectar não pede mais nada; um login mais antigo pede passkey. O dashboard então abre o novo agente.
- O CLI armazena a sessão, seleciona o projeto aprovado e reporta
status: signed_incom o projeto, organização e nível de acesso.
Aprovar apenas um login iniciado por você mesmo, no seu próprio computador. O dashboard nunca aprova nada ao carregar, e um código expirado precisa de um novo screenrig login.
| Sinalizar | Efeito |
|---|---|
--access read, --access propose ou --access manage | Peça permissão para Somente leitura, Propor ou Gerenciar. O padrão é manage; a pessoa faz a escolha final. |
--project prj_ID | Sugira o projeto que a pessoa aprova. |
--name NAME | Nomeie esta instalação, até 80 caracteres. |
--no-wait | Retornar imediatamente com o endereço, o código e um identificador login_. |
--resume login_ID | Aguarde a aprovação do login pendente e armazene sua sessão. |
Quando o agente precisa passar o endereço para uma pessoa em outro canal primeiro, use --no-wait. O identificador não contém segredo, e o login pendente fica no arquivo de configuração privado:
screenrig login --no-wait
screenrig login --resume login_HANDLEO endereço de login e seu código são para a pessoa que o aprova. Envie-os somente para essa pessoa e mantenha-os fora de logs e canais compartilhados.
Adicionar um projeto ou aumentar acesso
Uma instalação que já está conectada executa screenrig login novamente para adicionar outro projeto, ou para elevar um projeto Somente leitura ou Propor para Gerenciar:
screenrig login --project prj_ID --access manageA pessoa aprova essa mudança, e a instalação mantém seus outros projetos. screenrig project list mostra todos os projetos que a instalação pode usar, e screenrig project use ID seleciona um.
Somente leitura, Propor e Gerenciar
Cada sessão carrega um dos três níveis de acesso, escolhido pela pessoa que a aprova. Cada nível inclui tudo que o anterior pode fazer.
| Somente leitura | Propor | Gerenciar | |
|---|---|---|---|
| Listar e ler telas, playlists, mídias, eventos e reprodução | Sim | Sim | Sim |
| Enviar e editar mídia, escrever notas do projeto, capturar screenshots, enviar mensagens de feedback e suporte, rascunhar criativos e campanhas publicitárias | Não | Sim | Sim |
| Criar e atualizar playlists; atribuir, programar ou assumir telas | Não | Sim, como uma revisão que uma pessoa aprova | Sim |
| Excluir, parear, arquivar, recarregar, reiniciar, enviar toasts, definir energia do monitor, marcar telas, escrever K/V de aplicativo, reconhecer, adiar ou silenciar alertas, gerenciar notificações e configurações do projeto | Não | Não | Sim |
| Gaste crédito em compras, campanhas ou geração de imagens | Não | Não | Sim |
| Ler URLs de receptor webhook | Não: a URL está redigida | Não: a URL está redigida | Sim |
| Faturado por solicitação como toda solicitação de agente | Sim | Sim | Sim |
Somente leitura significa que a sessão não pode alterar ou comprar nada. Não significa gratuito: cada solicitação de agente e evento de listen-stream cobrado conta contra os pedidos incluídos da organização, assim como para Propor e Gerenciar.
Propor permite que um agente faça o trabalho enquanto uma pessoa mantém a palavra final sobre o que é reproduzido. Suas alterações na playlist e na tela respondem 202 com status: pending_review e um link para a revisão, e nada muda na tela até que uma pessoa aprove. Seus uploads de mídia, e suas alterações de tag e pasta para mídia aprovada, também aguardam revisão: as telas continuam reproduzindo o que foi aprovado até que uma pessoa aprove a mudança, uma rejeição devolve o item alterado, e um upload rejeitado permanece fora das telas. Não pode excluir, controlar telas ou gastar.
Uma sessão que tenta algo que seu nível não pode fazer recebe 403 insufficient_access. O CLI nomeia o próximo passo: uma pessoa aprova Gerenciar com screenrig login --access manage.
Entradas do agente padrão para Gerenciar, e apps conectados para Somente leitura. Para reduzir uma instalação, desconecte-a e faça login novamente com screenrig login --access read ou --access propose. O nível de uma sessão nunca é reduzido silenciosamente: as configurações de revisão abaixo mantêm sessões em Propor sem alterá-las, e a página de Acesso mostra quando isso ocorre.
Capacidades
Dentro do seu nível de acesso, uma sessão funciona apenas nas áreas de capacidade que a pessoa aprovou: screens, content, playlists, advertising, reports e project. A inscrição concede todas as seis no projeto que cria. Um comando fora das áreas aprovadas retorna 403 forbidden nomeando a capacidade ausente. As capacidades permanecem aprovadas para um projeto de instalação; para mais, uma pessoa aprova uma nova instalação que as possui.
Exigir revisão para alterações de agente
Duas configurações mantêm agentes com acesso Propor sem que precisem entrar novamente. Ambas se aplicam a cada solicitação, cobrindo sessões já existentes.
- Exigir revisão para alterações do agente, na página Configurações do painel. Enquanto estiver ativado, todo agente, aplicativo conectado e cliente de serviço no projeto trabalha no máximo em Propor: alterações no que é reproduzido aguardam em Revisões até que uma pessoa as aprove. O proprietário do projeto ou um administrador da organização altera essa configuração, e desativá-la requer a passkey deles. Revisões já aguardando permanecem abertas para decisão.
- Pode aprovar, para cada membro na página Acesso do projeto. O proprietário do projeto sempre pode aprovar. Um membro que não pode aprovar não decide revisões e não pode conceder Gerenciar a um agente, e os agentes pelos quais esse membro é responsável trabalham no máximo em Propor.
O nível mais baixo que se aplica vence. screenrig agent status relata o access da sessão, seu effective_access e, quando uma configuração o reduz, access_limited_by: project ou person. Fazer login novamente não eleva uma configuração; o proprietário do projeto a altera. Enquanto uma configuração se aplica, as telas de login e aprovação de conexão oferecem Somente leitura e Propor, e mostram por que Gerenciar está indisponível.
Uploaders
Um uploader trabalha nas playlists e pastas de mídia que você escolhe e em nenhum outro lugar. Ele envia mídia para essas pastas e adiciona, substitui e remove páginas dessas playlists, com datas de início e fim. Não pode ler nem alterar outras playlists, telas, agendamentos, membros, tokens, links de frota, cobrança ou configurações. Uma pessoa da equipe de uma agência é um membro uploader; o agente de uma agência é um cliente de serviço uploader.
- Convidar ou atribuir. Na página Acesso do dashboard, convide uma pessoa como uploader ou transforme um membro em uploader, e escolha as pastas e as playlists. Pela CLI,
screenrig invitations create --kind uploader --email designer@example.com --folder-id mfd_FOLDER --playlist-id pl_PLAYLISTconvida um, escreenrig service-client create --name "Agency agent" --uploader --folder-id mfd_FOLDER --playlist-id pl_PLAYLIST --secret-file agency.secretdá a um agente o próprio token. As pastas são exatamente as que você escolhe, não as pastas dentro delas. O proprietário edita o escopo ou o encerra a qualquer momento, e a mudança vale para a próxima requisição do uploader. - Propor ou publicar sem revisão. As alterações de um membro uploader aguardam em Revisões até que o proprietário do projeto ou um membro que possa aprovar as decida. O proprietário pode permitir que um membro publique sem revisão (
--access manage) ao convidar ou atribuir. Um cliente de serviço uploader age com o acesso com o qual foi criado, Propor a menos que você escolha outro, e Exigir revisão para alterações de agente o mantém em Propor como mantém todo agente. Um uploader nunca aprova revisões e nunca conecta agentes: um agente recebe um token de uploader. - Enviar e adicionar páginas.
screenrig media upload FILE --folder mfd_FOLDERenvia para uma pasta que o uploader tem.screenrig playlist page add pl_PLAYLIST --media med_IMAGE --from 2026-12-01 --until 2026-12-24adiciona a mídia como uma página exibida do início de 1º de dezembro até o fim de 24 de dezembro, no fuso horário de cada tela;playlist page replacetroca a mídia ou muda as datas, eplaylist page removeremove a página. Uma página adicionada pelo uploader é uma imagem ou um vídeo de suas pastas; as outras páginas do projeto permanecem como estão. Vários envios seguidos de um mesmo uploader entram em uma mesma revisão, então o proprietário os aprova juntos, e uma página que ainda espera nela pode ser substituída ou removida. A alteração de outro uploader na playlist aguarda até que essa revisão seja decidida. - No dashboard. Um membro uploader entra em um dashboard com uma única página, Enviar, que lista as playlists e as pastas dele. Em uma pasta, ele envia arquivos; em uma playlist, adiciona uma página a partir de uma imagem ou de um clipe, define o primeiro e o último dia em que a página aparece, substitui ou remove as próprias páginas e retira uma alteração que aguarda revisão. As demais páginas do projeto aparecem como Definida pelo projeto.
- Fora do escopo. Todo o resto responde
outside_upload_scope, cujoupload_scopelista as playlists e pastas que o uploader pode usar.
Para limitar um membro ou um agente a pastas de telas e telas em vez de conteúdo, veja Permissões por pasta de telas.
A página de acesso
A página Acesso do dashboard lista tudo que pode agir no projeto atual:
| Seção | O que ele lista |
|---|---|
| Pendente | Logins e solicitações de conexão aguardando aprovação |
| Pessoas | Membros e convites abertos |
| Agentes | Instalações do CLI e plugins, inscritos ou conectados |
| Aplicativos conectados | Assistentes de IA para uma pessoa conectada, uma entrada por app |
| Clientes de serviço | Servidores, scripts e trabalhos CI, com suas chaves e segredos |
Cada entrada mostra como obteve acesso e quem aprovou, seu nível de acesso e capacidades, e quando foi criada e usada pela última vez. Quando uma configuração de revisão mantém uma entrada abaixo do seu nível, a entrada mostra o nível em que opera e o motivo, por exemplo "Propor — projeto exige revisão". Desconectar encerra um agente ou app; Revogar encerra um cliente de serviço. Cada ação pede confirmação da pessoa com sua chave de acesso.
Faça logout e revogue
| Para terminar | Executar ou fazer |
|---|---|
| Login desta instalação | screenrig logout |
| Acesso desta instalação ao projeto atual | screenrig agent disconnect --yes |
| Esta instalação em todos os lugares | screenrig agent revoke-identity --yes |
| Qualquer agente ou app conectado | Desconectar na página de Acesso |
| Um cliente de serviço | Revogar na página de Acesso, ou screenrig service-client revoke ID --yes |
screenrig logout revoga o login no servidor, depois remove os tokens armazenados. Se a solicitação pode não ter alcançado o servidor, os tokens permanecem, então executá-la novamente é seguro. Uma sessão somente leitura pode sempre se desconectar.
Uma sessão revogada não pode renovar: nenhum novo token é emitido após a revogação. Seus tokens de acesso param de funcionar em segundos. Desativar a pessoa responsável por um agente encerra suas sessões da mesma forma, e excluir um projeto encerra o acesso de todas as sessões a esse projeto.
Duração da sessão
Cada uso do token de atualização estende seu prazo em 90 dias, até um ano após o login. screenrig doctor mostra quando a sessão desta instalação termina, e cada comando avisa nos últimos 30 dias. Para continuar, uma pessoa aprova um novo screenrig login.
Credenciais existentes
Instalações que fizeram login antes dessas sessões continuam funcionando. No próximo comando, o CLI incluído troca a credencial armazenada por uma sessão com os mesmos projetos e capacidades, sem prompt e sem saída. Atualize o plugin oficial para obter esse CLI; nada mais muda para o agente.
Referência
Esses endpoints seguem OAuth 2.0. O CLI incluído, aplicativos conectados e clientes de serviço os utilizam; um agente que trabalha pelo plugin nunca os chama diretamente.
| Item | Valor |
|---|---|
| Emissor | https://api.screenrig.ai |
| Metadados do servidor de autorização | https://api.screenrig.ai/.well-known/oauth-authorization-server |
| Metadados do recurso protegido | https://api.screenrig.ai/.well-known/oauth-protected-resource/api |
| Endpoint de token | https://api.screenrig.ai/oauth/token |
| Autorização do dispositivo | https://api.screenrig.ai/oauth/device_authorization |
| Ponto de extremidade de autorização | https://api.screenrig.ai/oauth/authorize |
| Revogação | https://api.screenrig.ai/oauth/revoke |
| Tipos de concessão | authorization_code (PKCE S256 somente), refresh_token, urn:ietf:params:oauth:grant-type:device_code, client_credentials, urn:ietf:params:oauth:grant-type:token-exchange |
| Autenticação do cliente | none, private_key_jwt (EdDSA, ES256, RS256), client_secret_basic |
| Escopos | access:read, access:propose, access:manage, identity, e as capacidades screens, content, playlists, advertising, reports e project |
| Recursos | https://api.screenrig.ai/api (padrão) e https://api.screenrig.ai/mcp |
Tokens de acesso são JWTs assinados com Ed25519 (EdDSA): um perfil apenas EdDSA usando as convenções de claims do RFC 9068 (typ: at+jwt, iss, aud, sub, client_id, scope, jti, iat, exp). Trate-os como opacos: envie cada um como Authorization: Bearer e solicite um novo quando expirar.
Erros do endpoint de token são JSON RFC 6749 (error, error_description) com Cache-Control: no-store:
error | Significado | Problema no CLI |
|---|---|---|
invalid_grant | A sessão foi revogada, expirou ou foi reutilizada, ou um código está errado | session_ended: execução screenrig login |
invalid_client | Cliente desconhecido, ou chave, segredo ou afirmação incorretos | client_auth_failed |
invalid_scope | Mais acesso ou capacidades do que foram aprovados | insufficient_access |
invalid_target | Um resource diferente dos dois acima | invalid_request |
authorization_pending, slow_down | Um login ainda aguardando aprovação | O CLI continua aguardando |
access_denied | A pessoa negou o login | login_denied |
expired_token | O código de login expirou | login_expired: execução screenrig login |
temporarily_unavailable | Tente novamente em breve | service_unavailable |
rate_limited | Aguarde Retry-After | rate_limited |
Solicitações para /api com token de acesso expirado ou revogado respondem 401 com WWW-Authenticate: Bearer error="invalid_token"; o CLI renova uma vez e tenta novamente uma vez. Um token que chama algo que seu nível de acesso não pode fazer responde 403 insufficient_access com WWW-Authenticate: Bearer error="insufficient_scope" e o scope que o permite.
Os endpoints de token e revogação aceitam 1.200 solicitações por endereço de cliente por hora, 60 renovações por sessão por hora e 600 tokens de cliente de serviço por cliente por hora. Inícios de login são limitados a 10 por endereço por hora.