Portais

Portais são janelas incorporadas que vivem diretamente no seu canvas. Um portal de navegador permite navegar em sites e visualizar arquivos locais. Um portal de dispositivo roda um dispositivo iOS ou Android real. Nos dois casos, seus agentes de IA podem interagir diretamente com o que está dentro deles.

Um nó de portal no canvas do Maestri exibindo um site

Criando um portal

Clique no botão Portal na barra de ferramentas (ícone de globo) ou pressione P para adicionar um novo portal ao seu canvas. Digite uma URL — qualquer site como https://exemplo.com.

Cada portal roda uma instância isolada do WebKit (Safari) com seu próprio armazenamento. Suporte ao Chrome está planejado para o futuro.

Conectando portais

Você pode conectar um portal a outro portal para que eles compartilhem a mesma sessão de armazenamento. Isso é útil quando um portal precisa acessar cookies ou estado de autenticação de outro.

Use a ferramenta de conexão para vincular portais, assim como todos os outros nós no canvas.

Automação de agentes

Quando um portal está conectado ao terminal de um agente, o agente pode controlá-lo programaticamente usando o CLI maestri. Sem dependências externas, sem servidores MCP, sem configuração — apenas conecte e use. Como tudo no Maestri, é plug and play.

A automação de portais é uma ferramenta de browser-use projetada do zero para velocidade e eficiência de tokens. Agentes podem:

  • Clicar, digitar e rolar — interagir com qualquer elemento na página
  • Navegar — ir para URLs, voltar, atualizar
  • Redimensionar a viewport — definir a viewport em dimensões exatas e conferir um layout em larguras de celular, tablet e desktop
  • Tirar screenshots — ver a página visualmente, assim como você
  • Executar JavaScript — rodar scripts customizados no contexto da página
  • Ler o DOM — inspecionar a estrutura da página
  • Ver o console do navegador — capturar erros e output de debug

Agentes também podem criar novos portais por conta própria — não é necessário que você coloque um manualmente.

Para permitir que um agente controle um portal, conecte-os usando a ferramenta de conexão. Agentes podem ver portais encadeados e controlar todos eles.

Dica

Como portais rodam instâncias isoladas de navegador, você pode ter múltiplas sessões logadas no mesmo serviço simultaneamente — útil para testar diferentes contas de usuário.

Copiando o que um portal mostra

Clique com o botão direito em um portal e escolha Copiar captura de tela para colocar na área de transferência uma imagem do que ele está mostrando. Funciona igual para uma página web e para a tela de um dispositivo, então um relato de bug ou uma mensagem para um colega fica a um clique direito de distância.

Silenciando um portal

Uma página que toca som pode ser silenciada sem você sair dela: clique com o botão direito no portal e escolha Silenciar, e Ativar som quando quiser ela de volta. Silenciar é coisa de página web; o som de um portal de dispositivo pertence ao dispositivo.

Modo design

A automação de agentes corre em um sentido, com o agente alcançando o portal. O modo design corre no sentido contrário: você marca a parte da página que quer dizer e entrega ela a um agente.

Escolha o pincel na barra de ferramentas do portal e desenhe sobre o que você quer comentar. O Maestri transforma o traço em uma seleção, contorna ela na página e abre Ask about this selection com um recorte exatamente daquela região.

Escreva o que você quer que seja feito, escolha qual agente conectado vai receber, e envie. O recorte vai junto com o seu comentário, então "deixa isso mais compacto" ou "reescreve esse título" chega grudado em um pedaço específico da página em vez de uma descrição dele, e o agente vai direto naquele elemento em vez de adivinhar qual você quis dizer.

Portais de dispositivos funcionam do mesmo jeito, então você pode circular um controle em um app rodando e pedir por ele de vista.

Nota

A seleção vai para um agente conectado, então conecte o portal a um terminal primeiro, do mesmo jeito que Automação de agentes descreve.

Portais de dispositivos

Um portal pode conter um dispositivo móvel em vez de uma página web: um Simulador iOS, um emulador Android ou um celular Android físico conectado à sua máquina. É o mesmo nó, com as mesmas conexões e a mesma automação de agentes, então tudo o que você já sabe sobre portais continua valendo.

Somente no macOS

Simuladores iOS exigem o Xcode e funcionam apenas no macOS. Emuladores Android e celulares Android conectados funcionam no Maestri para Windows.

Um canvas do Maestri com um terminal de agente conectado a um simulador de iPhone, um emulador Android e um portal de navegador

Abrindo um dispositivo

Abra a janela Novo Portal e troque para Devices, ou use a ação @New Device Portal no Compositor de Prompts.

A janela Novo Portal na aba Devices, listando simuladores iOS agrupados por runtime com um deles marcado como iniciado

Você verá todos os simuladores, emuladores e celulares que sua máquina pode controlar, agrupados por versão do sistema, com um campo de busca e filtros para iOS, iPadOS e Android. Dispositivos que já estão rodando aparecem marcados como Booted. Escolha um e o Maestri o inicia se necessário, conecta e coloca no seu canvas.

Precisa de um dispositivo que você ainda não tem? New iOS Simulator… cria um a partir de uma lista de modelos pesquisável sem sair do Maestri. Emuladores Android são criados e removidos pelo Device Manager do Android Studio, e um celular Android físico aparece assim que é conectado.

Portais de dispositivos rodam sobre um runtime de dispositivos construído do zero. O portal desenha o próprio buffer de tela do dispositivo diretamente na GPU e envia seus cliques e teclas pelo pipeline de entrada nativo do dispositivo, mantendo tudo tão fluido e instantâneo quanto o próprio dispositivo, em vez de depender de screenshots e comandos de shell.

Vários portais de dispositivos podem rodar ao mesmo tempo, e cada um sobrevive a trocas de workspace e de andar. Dois portais apontando para o mesmo dispositivo compartilham uma única tela, então use um segundo dispositivo quando quiser rodar dois apps lado a lado.

Controlando um dispositivo manualmente

Clique dentro de um portal de dispositivo para controlá-lo diretamente com o mouse e o teclado: clique para tocar, digite para enviar teclas, arraste para deslizar e clique e segure para um toque longo. Gire o dispositivo para alternar entre retrato e paisagem. Esses gestos funcionam da mesma forma em dispositivos Android e no iOS.

Redimensionando um app

O iOS 27 deixa um app rodar em qualquer tamanho que você der, em vez de uma moldura fixa de dispositivo, e os portais de simulador falam essa língua. Clique em Redimensionar App… na barra do portal, digite uma largura e uma altura entre 100 e 4096, e Aplicar. O app redimensiona ao vivo enquanto o portal acompanha e mantém seu zoom, então um celular estreito, um iPad largo e tudo que está no meio são testáveis no mesmo simulador. Encerrar Modo de Redimensionamento devolve o portal à tela do próprio dispositivo.

Um agente conectado consegue fazer a mesma coisa, então pedir uma tela em três tamanhos vira trabalho que você delega em vez de fazer: ele inicia a sessão, aplica cada tamanho e encerra quando termina.

Nota

Redimensionar exige as ferramentas do Xcode que vêm com o iOS 27 e um app que suporte isso. O popover avisa com todas as letras quando a toolchain instalada não dá conta.

Automatizando um dispositivo

Conecte um portal de dispositivo ao terminal de um agente e ele controla o dispositivo com o mesmo CLI maestri. Sem XCUITest, sem Appium, sem ferramentas extras. Em vez do DOM, os agentes leem a árvore de elementos real do app em execução, com rótulos verdadeiros e posições exatas, para que um toque atinja o botão em vez de uma coordenada estimada. Agentes podem:

  • Tocar, digitar, rolar e deslizar em qualquer ponto da tela
  • Pressionar botões físicos como home, lock e side, além das teclas back e recents do Android
  • Iniciar e encerrar apps por bundle id ou nome de pacote
  • Abrir URLs pelo próprio handler de URL do dispositivo
  • Ler a árvore de elementos, incluindo qualquer web view embutida no app
  • Tirar screenshots e ligar ou desligar o dispositivo

Conteúdo web embutido entra na mesma árvore de elementos, então um agente testando um app nativo pode passar direto por uma tela de login ou checkout web sem trocar de ferramenta.

Compilando e rodando seu app

Aponte sua build para o dispositivo do portal e o app que você testa é o app que você acabou de compilar. Um agente pode ler o identificador do dispositivo pelo portal, compilar o projeto, instalar, iniciar e depois navegar pelo resultado, tudo do mesmo terminal.

Nota

No iOS, um app expõe sua árvore de elementos quando o Maestri o iniciou. Se um app foi iniciado pelo Xcode ou tocando no ícone, iniciá-lo novamente pelo Maestri o traz para baixo do agente de acessibilidade, então o agente lê uma árvore real em vez de recorrer a um screenshot.