Acesso remoto e clientes

Uma máquina (um espaço de trabalho, no editor de definições) vive num único Mac, mas a pessoa que a quer conduzir nem sempre está sentada a esse Mac. O Bromure Agentic Coding pode ser alcançado remotamente, e todos os caminhos remotos passam por uma única porta de entrada SSH, opcional e desativada por predefinição. Ative-a e obtém três formas de entrar: uma pessoa pode ligar-se por ssh a partir de qualquer terminal e chegar a um menu; pode gerir a própria porta de entrada a partir da linha de comandos; e um cliente nativo — outro Mac com a aplicação, ou o Bromure Remote no iPhone, iPad ou Apple Vision Pro — pode ligar-se e espelhar toda a instância — as suas sessões, salas e Central, máquinas, terminais e quadros — numa janela em direto.

O cliente nativo chega a um servidor de duas formas. Na mesma rede, adiciona-o diretamente por endereço. De qualquer outro lugar, inicia sessão numa conta bromure.io e escolhe o servidor a partir de um diretório: os dois dispositivos são apresentados um ao outro pelo bromure.io e depois comunicam ponto a ponto, sem reencaminhamento de portas, sem VPN e sem qualquer endereço para memorizar — e assim que iniciar sessão, os seus próprios dispositivos autorizam-se mutuamente, pelo que a ligação é sem palavra-passe e sem configuração manual de chaves.

Este capítulo aborda a ativação do acesso remoto no anfitrião, cada um dos pontos de entrada, a forma como o cliente nativo espelha um remoto (por endereço e através do bromure.io), a edição das Preferências de um remoto, os clientes para iPhone, iPad e Vision Pro, o acesso a serviços dentro das VMs remotas, a exposição de um servidor de desenvolvimento à internet e o modelo de segurança que mantém tudo isto seguro. A inscrição à escala da frota e a telemetria na nuvem são um sistema completamente diferente — consulte Empresa. A referência completa de comandos encontra-se em CLI, API e MCP.

As três formas de entrar

Tudo o que se segue depende de a porta de entrada SSH estar ativada (está desligada por predefinição). Uma vez em execução, o mesmo servidor serve todos os três públicos:

Forma de entrarQuem a utilizaO que obtém
SSH simplesUma pessoa em qualquer terminal (ssh -p 2222 you@mac)O menu remoto — uma TUI ao estilo curses. Uma shell em bruto nunca é acessível.
A CLI bromure-cli remoteVocê, no próprio anfitriãoGerir a porta de entrada: ativar/desativar, chaves, estado. Consulte Ativar o acesso remoto no anfitrião.
O cliente nativoOutro Mac com a aplicação, ou o Bromure Remote em iOS / iPadOS / visionOSUm espelho em direto da instância remota, com edições bidirecionais — alcançado por endereço numa LAN ou através de uma conta bromure.io de qualquer lugar.

O servidor é incorporado — é a biblioteca swift-nio-ssh da Apple integrada na aplicação, e não o próprio sshd do macOS. Essa distinção é importante: como a aplicação executa o seu próprio servidor, consegue verificar a palavra-passe da sua conta macOS através do OpenDirectory sem que alguma vez ative o Início de sessão remoto nas Definições do Sistema e sem direitos de administrador. Escuta apenas o utilizador macOS exato que executa a aplicação, e força cada início de sessão interativo a entrar no menu remoto. As únicas exceções destinadas a máquinas são quatro comandos na lista branca que o cliente nativo utiliza (bromure-fatclient/1 control, forward <ip> <port>, forward-udp <ip> e browser-mcp <vm>); qualquer outra coisa que uma pessoa escreva comporta-se como um início de sessão e cai no menu.

Nota: A janela de Acesso Remoto descreve o servidor como "uma instância do servidor SSH do sistema propriedade da aplicação". Mais precisamente, é um servidor swift-nio-ssh incorporado, deliberadamente não o sshd do macOS — é exatamente isso que lhe permite funcionar sem Início de sessão remoto nem direitos de administrador.

Ativar o acesso remoto no anfitrião

O acesso remoto está desligado até que o ative, e pode ser gerido de duas formas equivalentes: a janela Acesso Remoto ou a CLI bromure-cli remote. Ambas escrevem no mesmo local, pelo que uma alteração feita numa reflete-se na outra e é aplicada em tempo real.

A janela de Acesso Remoto

Abra Bromure Agentic Coding (o menu com o nome da aplicação) → Acesso Remoto…. O título da janela é Acesso Remoto. Um ponto verde ou cinzento indica sshd em execução ou sshd parado; quando o servidor está ativo, aparece por baixo do cabeçalho uma cadeia de ligação copiável no formato ssh -p <port> <user>@<host>.

SecçãoCampoFinalidadePredefinição
CabeçalhoAtivar acesso remoto por SSHInicia e para o servidor.Desligado
EscutaIP de vínculoEm que interface escutar. 0.0.0.0 = todas as interfaces; 127.0.0.1 = apenas este Mac.0.0.0.0
EscutaPortaPorta TCP de escuta; tem de ser ≥ 1024 (um processo não-root não pode vincular portas privilegiadas).2222
AutenticaçãoPalavra-passe da conta macOSAceitar a palavra-passe de início de sessão macOS do utilizador que executa a aplicação (verificada via OpenDirectory).Ligado
AutenticaçãoChave públicaAceitar chaves da lista de chaves autorizadas abaixo.Ligado
Chave de anfitrião do servidorimpressão digitalA impressão digital ed25519 da própria chave de anfitrião do servidor, para verificação fora de banda. Indica (gerada na primeira ativação) até à primeira utilização.—
Chaves públicas autorizadaslistaChaves públicas ssh-ed25519 / ecdsa inscritas. Adicione colando uma linha de chave; remova com o ícone do lixo. Indica Nenhuma chave inscrita. quando vazia.vazia

Edite o IP de vínculo ou a Porta e prima Return para aplicar a alteração em tempo real. A secção Autenticação indica Verificado contra <user> — o utilizador que executa o bromure-ac. para que fique claro de quem é a palavra-passe que desbloqueia a porta.

Aviso: Pelo menos um método de autenticação tem de permanecer ativado — não pode desligar simultaneamente a autenticação por palavra-passe e por chave pública. Colar uma chave inválida é rejeitado com Não é uma chave pública válida. Adicionar ou remover uma chave autorizada reinicia a escuta, o que interrompe quaisquer ligações em curso.

A CLI bromure-cli remote

A CLI comunica com a aplicação em execução através do seu socket de controlo exclusivo do proprietário, pelo que a aplicação continua a ser a única fonte de verdade. É a forma mais rápida de ativar o acesso num Mac sem monitor a que chegou através de uma shell existente.

ComandoO que faz
bromure-cli remote (ou remote status)Imprime o estado de ativado/em execução, o vínculo e a porta, os métodos de autenticação, a impressão digital da chave de anfitrião, o utilizador de início de sessão, uma cadeia de ligação pronta a usar e a lista numerada de chaves autorizadas.
bromure-cli remote enable [--port N] [--bind IP] [--password|--no-password] [--pubkey|--no-pubkey]Inicia o servidor (lançando automaticamente o agente da aplicação, se necessário). Predefinições: porta 2222, vínculo 0.0.0.0, ambos os métodos de autenticação ligados.
bromure-cli remote disablePara o servidor e persiste o estado desligado.
bromure-cli remote key add <path-or-key-text>Inscreve uma chave pública a partir de um caminho de ficheiro ou de uma linha de chave colada; imprime a sua impressão digital.
bromure-cli remote key lsLista as chaves autorizadas com um índice iniciado em 1, a impressão digital e o comentário.
bromure-cli remote key rm <index|fingerprint>Remove uma chave por índice ou por uma subcadeia da impressão digital.

O remote enable recusa se passar simultaneamente --no-password e --no-pubkey, e dá erro enquanto uma imagem base estiver em falta ou a instalar. Quando a aplicação não está em execução, status, disable e key ls imprimem Nenhum agente bromure-ac em execução.

Nota: O servidor não arranca enquanto a imagem base estiver ausente ou ainda a instalar — ativá-lo devolve então um erro acionável em vez de uma operação silenciosamente ignorada. Isto é verdade tanto no arranque como quando alterna o comutador. Instale ou conclua primeiro a instalação da imagem base.

Chaves de anfitrião, impressões digitais e confiança

Na primeira ativação, o servidor gera uma chave de anfitrião ed25519. A sua impressão digital — mostrada na linha Chave de anfitrião do servidor e por bromure-cli remote status, no formato 256 SHA256:… bromure-ac-remote (ED25519) — é o que um cliente que se liga verifica para se certificar de que chegou ao Mac correto. Forneça esta impressão digital a quem se liga (ou verifique-a você mesmo na folha de primeiro contacto do cliente nativo) para que um atacante intermediário não possa fazer-se passar pelo anfitrião. Consulte confiança na primeira utilização para saber como o cliente nativo a fixa.

Limitação de taxa

As tentativas de palavra-passe são limitadas por IP de origem através de um token bucket: cinco tentativas à velocidade máxima e, depois, uma reposição de cerca de uma tentativa a cada dois segundos, com o atraso imposto limitado a oito segundos. As tentativas são atrasadas, nunca recusadas, e ninguém é alguma vez bloqueado; um IP ruidoso não pode abrandar outro. A autenticação por chave pública nunca é limitada.

Iniciar sessão por SSH simples

Qualquer terminal pode aceder ao anfitrião com ssh -p 2222 <user>@<mac>. Em vez de uma shell, a ligação chega ao menu remoto — uma TUI ao estilo curses (internamente bromure-ac __remote-menu) forçada em cada início de sessão humano. Uma shell em bruto nunca é acessível através dele.

O menu é anterior ao redesenho centrado nas sessões e organiza-se em torno das máquinas: uma lista de Espaços de trabalho com glifos de estado em direto (● em execução, ◌ a arrancar, ⏸ suspenso, ○ desligado), mais as secções Modelos (os modelos instalados e o catálogo no dispositivo) e Trace (resumos, nomes de anfitrião, fugas). A partir dele pode:

  • Criar um espaço de trabalho com um formulário de ecrã único, com uma porta Full settings… para formulários de definições por painel.
  • Iniciar, suspender, terminar, reiniciar ou eliminar qualquer espaço de trabalho.
  • Editar definições. Os segredos aparecem como •••• (set); deixar um segredo em branco mantém o valor guardado.
  • Gerir worktrees — criar, integrar, anexar um terminal ou descartar.
  • Gerar chaves SSH, alternar o Fusion e o encaminhamento de modelos, e navegar por resumos de rastreio.
  • Associar a qualquer separador tmux ou a um contentor Docker em execução.

Nota: Os formulários de definições do menu não conseguem editar o quadro Modelos. O seu formulário Modelos é só de leitura: lista os fornecedores do servidor (chave de API ou subscrição) e indica se o espaço de trabalho substitui as definições globais. Escolha fornecedores e modelos a partir de um Mac, nas Preferências ou nas Preferências remotas de um espelho.

Navegue com as teclas de setas, Enter para selecionar e q ou Esc para retroceder; Sair (desligar) termina a sessão. Selecionar Associar entrega o terminal ao tmux do convidado; Ctrl-b d desassocia de volta ao menu. Enquanto está associado, um atalho de sobreposição (predefinição Ctrl-]) abre um controlador do lado do anfitrião — mudar de separador, abrir um novo separador, gerir worktrees, alternar o Fusion ou o encaminhamento, editar definições, reiniciar, suspender ou desligar — sem que a tecla alguma vez chegue ao convidado. Associar a um contentor pede a shell (Enter = sh).

Nota: O menu precisa de um terminal real. Ligar sem TTY mostra uma sugestão para voltar a ligar com ssh -t. Arrancar um espaço de trabalho a frio aguarda até cerca de 20 segundos pela sessão tmux do convidado antes de anexar.

O atalho de sobreposição é configurável no Mac anfitrião (a máquina a que se está a ligar) através do ficheiro ~/Library/Application Support/BromureAC/remote/overlay-key — as formas aceites são C-], ^], 0x1d ou 29 — ou da variável de ambiente BROMURE_OVERLAY_KEY.

Espelhar um remoto com o cliente nativo

O cliente nativo transforma a cópia do Bromure Agentic Coding deste Mac — ou o Bromure Remote no iPhone, iPad ou Apple Vision Pro — num espelho em direto de uma instância remota. Num Mac obtém uma janela completa intitulada Remote — <name> que tem o aspeto e o funcionamento da janela principal local: o início das sessões, as salas e a Central, as máquinas, os quadros de tarefas e de automatizações. Tudo o que faz corre no remoto e é refletido de volta.

Ligar

Abra Espaços de trabalho › Conectar a um Bromure remoto… (⇧⌘K). A janela resume a escolha: "Espelhe outro Mac com o Bromure — a grade, os workspaces, as abas e as automatizações dele. Entre para acessar seus servidores de qualquer lugar, ou adicione um diretamente pelo endereço na sua LAN." Ambos os caminhos levam à mesma janela-espelho; diferem apenas na forma como os dois dispositivos se encontram e se autorizam.

Nota: O handshake SSH adapta-se à ligação: os orçamentos de ligação e de handshake escalam com o tempo de ida e volta medido, pelo que uma ligação de latência elevada (Wi-Fi de hotel, rede móvel, um continente de distância) liga-se lentamente em vez de expirar.

Por endereço (mesma rede)

Use isto numa LAN onde conhece o endereço do Mac e não precisa de uma conta bromure.io.

  1. No Mac remoto, ative o acesso remoto (a janela Acesso Remoto ou bromure-cli remote enable).
  2. Neste Mac, clique em +, introduza um Nome (por exemplo, rack mini), um Endereço, uma Porta (predefinição 2222) e um Utilizador remoto, depois clique em Ligar. As linhas guardadas mostram user@address:port e a hora da última ligação.
  3. No primeiro contacto, uma folha mostra a impressão digital da chave de anfitrião SSH do remoto. Verifique-a contra a janela Acesso Remoto do remoto e depois clique em Confiar e Continuar. A fixação é memorizada para este ponto de extremidade; as ligações posteriores são silenciosas, a menos que a chave mude, caso em que o botão fica vermelho e indica Confiar na Nova Chave e Continuar — um possível atacante intermediário.
  4. O cliente tenta a autenticação por chave pública com a chave dedicada deste dispositivo. Se ainda não estiver autorizada, recorre à palavra-passe de início de sessão do macOS do utilizador remoto (botão: Iniciar sessão); um início de sessão por palavra-passe bem-sucedido inscreve a chave deste dispositivo no remoto através do túnel, pelo que todas as ligações seguintes dispensam palavra-passe. Para pré-autorizar sem nunca escrever uma palavra-passe, clique em Mostrar a chave deste Mac e execute bromure-cli remote key add '<this Mac's key>' no remoto.

Após a primeira ligação, faça duplo clique num servidor guardado para voltar a ligar com um clique; o menu de contexto de cada linha oferece Ligar, Editar… e Remover. O Bromure Remote no iPhone e iPad oferece o mesmo fluxo em Adicionar um servidor por endereço.

Através de uma conta bromure.io (de qualquer lugar)

Iniciar sessão no bromure.io permite a um cliente alcançar os seus servidores através de redes diferentes — do Wi-Fi de um café a um Mac em casa — sem reencaminhamento de portas, sem VPN e sem endereço para decorar. O bromure.io apenas apresenta os dois dispositivos e retransmite bytes quando um caminho direto é impossível; a própria sessão SSH permanece cifrada ponto a ponto entre eles.

  1. Inicie sessão. Num Mac, escolha Entrar no bromure.io… no menu com o nome da aplicação e inicie sessão no seu navegador (ou expanda a secção do código e introduza um código de inscrição de seis palavras e um Nome do dispositivo). No Bromure Remote, inicie sessão a partir do ecrã inicial. Todos os dispositivos que inscrever partilham a mesma conta.
  2. No Mac remoto, ative o Acesso Remoto. Um servidor só aparece no diretório enquanto a sua porta de entrada estiver ativa e estiver a enviar sinais de vida ao bromure.io.
  3. No cliente, abra Conectar a um Bromure remoto…. Os seus servidores aparecem em Meus servidores · bromure.io com um ponto de presença em direto e a hora em que foram vistos pela última vez. Faça duplo clique num (ou selecione-o e clique em Ligar). O estado mostra "Connecting to <name> via bromure.io…" enquanto é estabelecido um caminho ponto a ponto — direto, com mapeamento de portas no router ou retransmitido — e depois o espelho abre-se.

Neste caminho não há qualquer endereço para escrever, nenhuma folha de chave de anfitrião e nenhuma palavra-passe: os seus próprios dispositivos confiam uns nos outros através da sua conta (abaixo), e a chave de anfitrião é fixada automaticamente.

Sem palavra-passe entre os seus próprios dispositivos

Assim que tiver iniciado sessão, cada dispositivo que inscreve partilha a sua identidade SSH através da sua conta, pelo que qualquer um dos seus dispositivos alcança qualquer um dos seus servidores sem palavra-passe e sem bromure-cli remote key add manual:

  • Cada dispositivo publica a sua chave pública SSH no bromure.io ao arrancar. Cada um dos seus servidores (com Acesso remoto ativo) obtém as chaves dos seus dispositivos e instala-as no seu authorized_keys em segundos, pelo que um dispositivo que inscreveu há instantes fica autorizado quase de imediato.
  • Um servidor também publica o início de sessão macOS com que é executado, pelo que o cliente o contacta automaticamente como o utilizador correto (o mesmo campo que o caminho por endereço lhe pede para preencher).
  • As chaves estão limitadas aos seus próprios dispositivos — nunca aos de outro utilizador, mesmo dentro da mesma organização.
  • Terminar sessão num dispositivo reforma-o: a sua chave é removida dos seus servidores e ele desaparece do diretório, pelo que voltar a iniciar sessão nunca deixa um duplicado obsoleto. Um dispositivo não usado durante 90 dias também deixa de estar autorizado até voltar a dar sinal. E a partir da consola web do bromure.io pode terminar a sessão de qualquer um dos seus dispositivos a pedido.

Nota: O cliente nativo gera o seu próprio par de chaves ed25519 dedicado (comentário bromure-ac-fatclient) na primeira vez que o utiliza — é esta a chave publicada na sua conta. Numa ligação por endereço, a fixação da chave do anfitrião pertence ao ponto de acesso (address:port) e não ao utilizador, pelo que editar o endereço ou a porta de um servidor guardado descarta a fixação e volta a mostrar a folha de impressão digital; uma ligação bromure.io fixa, em vez disso, a chave do par através da conta.

A janela-espelho

A janela-espelho abre-se automaticamente após uma ligação bem-sucedida. É o início das sessões do Mac remoto: a mesma barra lateral (sessões, salas, a Central, tarefas, automatizações, Máquinas virtuais com eventuais clusters Kubernetes e registos), o mesmo palco e o mesmo cabeçalho. Inicie uma sessão com Nova sessão (⌘N), converse com ela, responda às suas perguntas, abra uma sala com a sua grelha de conversas ou fale com a Central do remoto — tudo acontece no remoto, e a paleta ⌘K também funciona.

O cabeçalho tem os mesmos controlos da janela local: a cápsula Linux para o terminal de uma sessão, o menu da máquina com o nome da máquina (Definições…, Detalhes da máquina, Copiar endereço IP, Inspecionar rastro, Abrir em janela própria, Reiniciar), o raio do Fusion, Mostrar ou ocultar o navegador agêntico (⌃⌘B) e Mostrar ou ocultar o painel Ficheiros (⌃⌘E). Uma janela-espelho acrescenta um controlo próprio, o interruptor do túnel de rede (consulte O túnel de rede à escala do sistema). Os terminais são apresentados com a aparência da própria máquina.

Algumas coisas comportam-se de forma especial através do espelho:

  • Definições… abre o mesmo editor de definições que no local, suportado por uma leitura com os segredos em branco e uma gravação que preserva os segredos (consulte Os segredos ficam no anfitrião). O seu painel Modelos edita a substituição, própria dessa máquina remota, das definições de modelos do Mac remoto. Generate new SSH key funciona e mostra-lhe a nova chave pública.
  • O painel Ficheiros (⌃⌘E) navega pelos ficheiros da máquina através do túnel. Substitui a janela separada de navegação de ficheiros das versões anteriores. Consulte Máquinas.
  • Reiniciar funciona como na própria janela do servidor: um reinício limpo após Reiniciar “…”?, ou um reinício forçado se mantiver ⌥ premida ao escolhê-lo (consulte Reiniciar uma máquina); a ordem é então enviada ao servidor.
  • Abrir em janela própria abre uma janela de terminal adicional em direto que se fecha sozinha se a máquina parar.

Se o remoto executar um Bromure mais antigo sem a API de sessões, o espelho recorre à disposição antiga, centrada nas máquinas.

Os menus atuam sobre o espelho em primeiro plano

Quando uma janela-espelho é a janela ativa, estes itens de menu atuam sobre o Mac remoto em vez deste:

ItemEfeito no Mac espelhado
Nova sessão… (⌘N)Abre o ecrã de nova sessão do espelho.
Espaços de trabalho › Nova sala…Cria a sala no remoto.
Próxima sala (⌃⌘R)Percorre as salas do remoto (as salas arquivadas são ignoradas).
Espaços de trabalho › Infraestrutura › Criar cluster Kubernetes… / Criar registo…Abre a folha de criação no espelho, para que o cluster ou registo seja criado no remoto.
Preferências… (⌘,)Abre as Preferências com o remoto como alvo (abaixo).

Preferências remotas

Prima ⌘, com uma janela-espelho em primeiro plano e as Preferências abrem-se nas predefinições desse Mac, com o título Preferências — <host>. Sempre que uma janela-espelho está aberta, um seletor Definições para: no topo das Preferências alterna entre Este Mac e cada remoto ligado; cada alvo tem o seu próprio editor, pelo que os rascunhos nunca passam de uma máquina para outra. Enquanto as definições do remoto carregam, a janela mostra "Carregando as preferências de <host>…"; se falhar, mostra Não foi possível carregar as preferências remotas com Tentar novamente.

Tudo faz a ida e volta pelo remoto: os segredos chegam em branco e são mantidos a menos que escreva um novo. O painel Modelos edita as definições globais de modelos do remoto — as chaves de API aparecem ocultadas — e as alterações são guardadas quando clica em Guardar, ao contrário das Preferências locais, onde o quadro Modelos guarda à medida que edita (consulte Modelos e fornecedores). As definições da aplicação próprias deste Mac — o painel Automatização e as secções Sub-rede do espaço de trabalho e Transporte remoto de Recursos — não são mostradas para um remoto, nem no editor de uma máquina remota.

Iniciar sessão nos fornecedores remotamente

Os inícios de sessão por subscrição funcionam de ponta a ponta a partir do cliente. Sign in with fornecedor executa a captura no remoto, mas a página de início de sessão do fornecedor (ou o URL do código de dispositivo) abre-se no seu navegador; para um fornecedor que nunca mostra um URL, o cliente mostra o terminal da VM de início de sessão para que possa concluir de forma interativa. Um início de sessão iniciado a partir das definições de uma máquina remota faz a pergunta de âmbito — Todos os espaços de trabalho ou Apenas este espaço de trabalho — no seu ecrã; se ninguém responder, fica com Apenas este espaço de trabalho. Um início de sessão iniciado a partir das Preferências remotas é sempre partilhado por todas as máquinas do remoto. Sair… também funciona remotamente.

Ramos e revisão remotamente

Novo ramo…, Rever alterações e Integrar em ramo funcionam a partir do espelho para uma sessão com uma pasta própria, exatamente como no ecrã do próprio remoto (consulte Ramos e revisão). No Bromure Remote, o menu de uma sessão oferece Novo worktree….

Pedir algo a uma sessão no Mac espelhado

Enquanto este Mac espelha um remoto, uma sessão daqui pode pedir algo a uma sessão no remoto pelo seu @apelido: as sessões remotas aparecem na lista @ do compositor e para os agentes com o nome do respetivo anfitrião, e os ficheiros anexados a um pedido viajam pelo túnel até à caixa de entrada do par. As respostas, os redirecionamentos e o encerramento seguem todos o mesmo caminho de volta. O sentido inverso — os agentes do remoto a pedirem algo a uma sessão neste Mac — não está disponível, porque o remoto não tem canal de volta para o cliente.

O que é espelhado

O espelho mostra cada máquina com o seu estado de execução em direto, sessões e salas, separadores e ramos, a Grelha, automatizações, o quadro de tarefas de programação, detalhes e sinais vitais das máquinas, o painel Docker, clusters Kubernetes e registos, terminais interativos em direto e os eventos de segurança do remoto, que aparecem na Linha do tempo de segurança ao lado dos deste Mac — o seu filtro de máquinas oferece Todas as máquinas, Este Mac e cada anfitrião espelhado. Os modelos no dispositivo e as suas transferências correm no remoto, nunca no cliente. As edições convergem em todos os clientes ligados: iniciar, parar e reiniciar máquinas, operações de sessões e salas, operações de separadores, edições da Grelha (disposição inteira, vence o último a escrever), edições de automatizações, o interruptor do Fusion, ações Docker, gravações de definições e transferências de ficheiros.

O espelho acompanha o remoto através de um canal push (GET /state/subscribe) sobre uma ponte em túnel SSH até ao socket de controlo do remoto; enquanto o canal push está ativo, o cliente só volta a ler o estado completo a cada 5 segundos, como sinal de vida, e passa a lê-lo a cada 0,75 segundos se o canal cair. As chamadas de controlo curtas são multiplexadas numa única ligação SSH por anfitrião; as anexações interativas de terminal usam as suas próprias ligações SSH dedicadas, porque um canal multiplexado reteria em buffer a saída imediata de que um terminal precisa. Numa ligação bromure.io, a mesma ponte e os mesmos fluxos de terminal seguem pelo caminho ponto a ponto, e o espelho comporta-se de forma idêntica.

As conversas também poupam a ligação. Na primeira vez que abre a conversa de uma sessão remota, ela carrega apenas os ~1,5 MB mais recentes; deslocar para cima até Carregar conversa anterior obtém as partes mais antigas. Uma conversa que volta a abrir — ao regressar a uma sessão, ou uma sala mostrada de novo — parte do histórico já transferido e obtém apenas as mensagens novas.

Algumas operações não estão disponíveis a partir do cliente nativo:

  • As edições da disposição da Grelha precisam de uma janela gráfica aberta no remoto. Um remoto totalmente sem interface (aplicação em execução, sem janela principal) espelha tudo o resto, mas não aceita uma alteração de disposição.
  • Importar uma chave SSH a partir de um ficheiro está oculto nos editores de definições remotos.

Bromure Remote no iPhone, iPad e Apple Vision Pro

O Bromure Remote é um espelho só de cliente, alcançado exatamente da mesma forma (inicie sessão e escolha um servidor, ou adicione um por endereço). É centrado nas sessões, tal como no Mac:

  • iPhone — uma lista Sessões com o número de sessões que precisam de si, um ecrã de nova sessão ("Como posso ajudar?") e um ecrã por sessão: a sua conversa, um botão Linux para o seu terminal e um menu com Retomar, Mudar o nome…, Novo worktree…, as definições da máquina, Arquivar (ou Encerrar e arquivar), Encerrar sessão e Eliminar sessão. Uma sala abre-se com um separador por sessão, entre os quais se desliza, com a Central da sala.
  • iPad — uma barra lateral permanente com sessões, salas e máquinas; uma sala mostra a sua grelha de conversas como no Mac.

Em ambos, a lista segue a ordem da barra lateral do Mac: Nova sessão primeiro, Tarefas de código e Automações logo abaixo, e depois as sessões. As máquinas dividem-se em Máquinas virtuais (com a Grelha) e Native Machines — os Macs Sidecar que o Mac remoto associou, mostrados só quando há algum; uma máquina nativa oferece Novo terminal. No iPad, Nova sessão fica visível acima da secção Sessões, que se pode recolher.

Quando um Mac remoto se recusa a iniciar uma sessão (num Mac Sidecar sem esse agente, por exemplo), o cliente mostra o motivo do Mac remoto em vez de não fazer nada.

  • Apple Vision Pro — a disposição do iPad, mais janelas espaciais: fixe qualquer terminal como janela própria em qualquer ponto da sala, abra a Grelha como uma janela de palco dedicada, ou transforme toda a grelha em janelas flutuantes com Pin All as Windows.

Numa sala, um único compositor na parte inferior tem um seletor Para — a Central da sala ou qualquer sessão nela — e um menu de anexos (Fototeca, Escolher ficheiros, Colar imagem); os anexos são carregados na máquina do destino quando envia. No iPhone e iPad, uma sessão que precisa da sua intervenção pode chegar até si como notificação push enquanto a app está em segundo plano; tocar nela abre essa sessão. O quadro Modelos não está disponível nestes dispositivos; mude de modelo a partir de um Mac.

Pedidos de decisão pendentes

Algumas ações levantam uma decisão no remoto — uma atualização do armazenamento da pasta pessoal, uma reposição de desvio da imagem base, a limpeza de uma VM comprometida, uma pergunta sobre a ação de fecho, a pergunta de âmbito de um início de sessão num fornecedor, ou um alerta de exfiltração de credenciais (o detetor de comprometimento a pausar uma VM que tentou divulgar uma credencial). Estas aparecem como alertas na sua janela-espelho, e a sua resposta regressa pelo túnel. Se um pedido ficar sem resposta, expira para a opção segura. Um pedido pendente nunca bloqueia o plano de controlo do remoto: o resto do espelho mantém-se ativo enquanto o alerta está visível. Os pedidos de consentimento que um agente em execução pode desencadear (uso de credenciais, passagem da cadeia de fornecimento, escritas de salvaguardas, injeção de prompt) são tratados por um caminho separado e impossível de forjar pelo convidado, documentado em Tratamento remoto de consentimento.

Os segredos ficam no anfitrião

Os segredos nunca atravessam a ligação. Quando o cliente nativo lê as definições de uma máquina remota ou as Preferências do remoto, todos os campos de segredo chegam em branco (as chaves de API dos fornecedores de modelos chegam como um substituto ocultado). Ao guardar, um campo em branco ou ocultado significa "manter o valor guardado" e um valor escrito substitui-o. As chaves de API, tokens, inícios de sessão por subscrição e segredos de ambiente MCP ficam no Mac remoto. Depois de emparelhado, o cliente nativo autentica-se apenas por chave SSH — não há pedidos de palavra-passe durante o espelhamento.

Aceder a serviços nas VMs do remoto

O servidor de desenvolvimento de um espaço de trabalho remoto reside num endereço privado como http://192.168.64.5:3000 na rede do remoto. O Bromure dá-lhe dois níveis de acesso a ele — um automático e limitado ao navegador, outro opcional e à escala do sistema.

O painel do navegador (automático, limitado por PAC)

O painel de navegador recolhível da janela-espelho (o botão do globo no cabeçalho, ou ⌃⌘B) é uma VM Chromium local cujo tráfego de páginas para a sub-rede do espaço de trabalho remoto passa em túnel por SSH. Um script PAC (proxy auto-config) gerado encaminha apenas a sub-rede remota através de um reencaminhador SOCKS por anfitrião e tudo o resto DIRECT, e os destinos são resolvidos do lado remoto — por isso, navegar até ao http://192.168.64.x:port literal de um servidor de desenvolvimento remoto simplesmente funciona. O próprio fluxo MCP de controlo do navegador do agente remoto é retransmitido para este painel, pelo que o agente de programação remoto conduz o navegador que está a ver.

Selecione uma sessão ou máquina numa máquina remota em execução e prima ⌃⌘B. O painel não faz nada até a primeira atualização de estado ter entregue a sub-rede do remoto e o reencaminhador SOCKS estar ativo (uma linha de registo indica "tunnel not ready" até lá). A sua VM de navegador local está fixada na sub-rede 192.168.127.0/24 (gateway 192.168.127.1) para nunca colidir com uma sub-rede de espaço de trabalho. Os perfis de navegador persistentes ficam neste Mac, indexados pelo ID da máquina remota.

Nota: O painel do navegador exige que este Mac seja Apple Silicon com a imagem base do navegador instalada localmente. O encaminhador SOCKS vincula 0.0.0.0 (para que a VM do navegador o possa alcançar no gateway vmnet) mas aceita ligações apenas do loopback e da sub-rede de navegador fixada 192.168.127.x — nunca é um relay aberto.

Encaminhamento SOCKS e encaminhamentos de porta fixos

Cada anfitrião remoto ligado obtém automaticamente um encaminhador SOCKS5 local numa porta efémera vinculada a 0.0.0.0 (filtrada por pares para o loopback e a sub-rede de navegador 192.168.127.x). Cada CONNECT abre um canal SSH forward <ip> <port> que o remoto encaminha — através do relay de loopback sempre ativo do convidado em vsock 5010 — para o próprio 127.0.0.1:<port> desse convidado. Assim, a partir deste Mac, curl --socks5 127.0.0.1:<port> http://192.168.64.5:3000 alcança o convidado remoto byte a byte.

Para encaminhamentos fixos existe encanamento de CLI oculto: bromure-cli __forward <hostID> <localPort> <remoteIP> <remotePort> para um encaminhamento ao estilo ssh -L, e bromure-cli __forward-socks <hostID> <localPort> para um proxy SOCKS autónomo. Ambos vinculam o loopback por predefinição e aceitam --bind-all.

Aviso: O remoto recusa qualquer encaminhamento cujo destino não seja um convidado na sua própria sub-rede vmnet. Não pode usar um encaminhamento para alcançar o próprio Mac remoto, o seu gateway ou a internet — apenas as VMs de espaço de trabalho.

O túnel de rede à escala do sistema

Quando quiser que qualquer aplicação local — não apenas o painel do navegador — alcance as VMs remotas nos seus endereços literais, ative o túnel por anfitrião com o interruptor de rede da janela-espelho (o ícone de pontos ligados, o primeiro dos controlos do cabeçalho). A sua dica diz Ativar o acesso direto de rede às VMs do sistema remoto (192.168.x.x a partir de qualquer aplicativo local).

Um auxiliar privilegiado de uma só vez — um daemon launchd instalado via SMAppService, sem sudo — cria uma interface utun e encaminha a sub-rede remota para ela, depois devolve o descritor de ficheiro da interface à aplicação. Uma pilha TCP/UDP em espaço de utilizador na aplicação termina cada fluxo e junta-o sobre os mesmos canais de encaminhamento SSH, utilizando a sua identidade SSH. Não há regras pf nem encaminhamento no kernel.

Na primeira vez que o ativa, um alerta intitulado Permitir o auxiliar de rede do Bromure explica a aprovação macOS única:

  1. Clique no comutador da barra de ferramentas.
  2. No alerta, abra Definições do Sistema → Geral → Itens de arranque e permita Bromure Agentic Coding (o macOS pede credenciais de administrador uma vez).
  3. A aplicação sonda a aprovação (a cada 2 segundos, até 5 minutos) e liga-se automaticamente no momento em que esta é concedida. Enquanto aguarda, a dica do comutador indica A aguardar aprovação em Definições do Sistema › Itens de arranque….

Se o remoto ainda não tiver comunicado a sub-rede das suas máquinas (nenhuma máquina arrancou), a dica diz Aguardando o remoto informar a sub-rede dos espaços de trabalho (inicie um espaço de trabalho) — clique para cancelar. Quando o túnel está ativo, a dica diz O acesso direto de rede às VMs do sistema remoto está ATIVADO — clique para desativar; se falhar, Falha no túnel de rede — clique para tentar novamente. Desativá-lo para o túnel e, quando o último anfitrião o desativa, o daemon é desregistado. A definição é memorizada por anfitrião.

Nota: O túnel precisa de uma conta de administrador para a aprovação única. Sem uma, o Bromure continua a funcionar através do caminho SOCKS incorporado — o auxiliar só é necessário para alcançar VMs remotas a partir de outras aplicações. Se o macOS recusar o registo de imediato, um alerta intitulado Não foi possível instalar o auxiliar de rede explica-o, e o comutador tenta novamente no clique seguinte. Um ping a um convidado remoto é respondido localmente pelo túnel: confirma que o encaminhamento está ativo, não que o convidado está vivo.

Múltiplos remotos (sub-redes por instalação + encaminhamento de frota)

Pode espelhar vários remotos ao mesmo tempo; cada um abre a sua própria janela, encaminhador SOCKS e (opcionalmente) túnel. A armadilha em que isto costumava cair: cada instalação usava historicamente a mesma rede 192.168.64.0/24 para as suas VMs de espaço de trabalho, pelo que dois remotos espelhados anunciavam sub-redes idênticas e a VPN à escala do sistema não os conseguia distinguir.

As sub-redes por instalação resolvem isto na origem. Cada Mac escolhe agora um /24 aleatório dentro de 172.16.0.0/12 — evitando o intervalo 172.17–172.20 do Docker e qualquer /24 em que o anfitrião já esteja — e usa-o para todas as suas VMs de espaço de trabalho, pelo que duas instalações independentes quase nunca colidem (172.16/12 é também o intervalo privado com menos probabilidade de entrar em conflito com uma LAN ou VPN empresarial). As instalações novas começam numa sub-rede destas; pode vê-la, alterá-la ou voltar a sorteá-la a qualquer momento em Preferências › Recursos › Sub-rede do espaço de trabalho. O endereçamento dos convidados é DHCP puro a partir do próprio switch do Bromure, por isso tudo isto é do lado do anfitrião (sem reconstrução de imagem), e o remoto anuncia a sub-rede escolhida no seu estado para que o cliente nativo e o túnel a sigam automaticamente.

Para o caso raro em que dois remotos ainda partilham uma sub-rede, o primeiro é encaminhado literalmente e ao segundo é atribuído um alias no espaço CGNAT 100.64.<n>.0/24, com um remapeamento 1:1 que preserva o octeto do anfitrião para que ambos possam ser alcançados ao mesmo tempo.

Aviso: O encaminhamento por alias multi-anfitrião está implementado e testado unitariamente, mas a ligação em tempo de execução que costura um PAC e um remapeamento browser-MCP com noção de alias entre anfitriões ainda está pendente. Um único anfitrião remoto é a configuração totalmente suportada hoje. Uma limitação conhecida da atribuição de alias, uma vez ligada, é que uma página de desenvolvimento que emita uma hiperligação literal absoluta http://192.168.64.x dentro de um remoto com alias pode encaminhar incorretamente; os remotos literais (sem alias) não são afetados.

Expor um servidor de desenvolvimento à internet

Independentemente de tudo o que foi dito acima, um serviço HTTP individual a correr dentro de um espaço de trabalho pode ser exposto à internet pública com um túnel rápido Cloudflare por porta. Abra os detalhes de uma máquina em execução (o menu da máquina › Detalhes da máquina), encontre o serviço no cartão de portas e clique no globo (dica: Expor à Internet (túnel rápido do Cloudflare)). O Bromure executa um processo cloudflared para essa origem e dá-lhe um URL aleatório https://<name>.trycloudflare.com — sem necessidade de conta Cloudflare. Um túnel e um URL por serviço; expor ou deixar de expor um nunca perturba os outros.

A cor do globo acompanha o estado: cinzento = desligado, laranja = a instalar ou a iniciar, verde = em execução, vermelho = falhou. Uma linha de estado sob a porta mostra o progresso (A transferir e verificar o cloudflared (~18 MB, uma vez)…, depois A iniciar o túnel…) ou o nome de anfitrião público clicável com um botão de cópia.

Na primeira vez que expõe algo, uma caixa de diálogo de consentimento única intitulada Expor serviços à Internet via Cloudflare Tunnel? explica a transferência, a verificação, os processos do túnel (registados na Linha do tempo de segurança), os Termos de Serviço da Cloudflare e o facto de qualquer pessoa com o URL aleatório poder aceder ao serviço. Clique novamente no globo para parar.

O binário cloudflared é uma versão fixada, verificada duas vezes antes de alguma vez correr: o SHA-256 do arquivo transferido é comparado com um hash incorporado na aplicação, e uma verificação de assinatura de código Developer ID confirma o ID de equipa da Cloudflare. Corre com --no-autoupdate.

Aviso: Os URLs de túnel rápido são públicos para qualquer pessoa que os tenha, e o nome de anfitrião muda sempre que o túnel reinicia (um reinício, um deixar de expor/voltar a expor ou uma falha). Apenas as origens HTTP(S) obtêm um globo — SSH e as portas conhecidas de TCP em bruto ou de bases de dados (22, 1433, 3306, 3389, 5432, 5672, 5900, 6379, 9092, 11211, 27017) e UDP nunca o obtêm, porque um navegador não as conseguiria alcançar através da borda da Cloudflare. Todos os túneis de um espaço de trabalho são desmontados quando a sua VM suspende ou encerra. Uma incompatibilidade de hash na transferência recusa a instalação até que a fixação seja atualizada numa versão da aplicação.

Encaminhamento de retorno de chamada OAuth

Uma CLI a executar dentro de uma VM de espaço de trabalho — gh, gcloud, um início de sessão por subscrição — conclui frequentemente um fluxo OAuth abrindo um navegador no seu Mac anfitrião e aguardando um redirecionamento para http://127.0.0.1:<port>/callback. O Bromure faz essa ponte automaticamente: o anfitrião vincula a porta de loopback tanto em IPv4 como em IPv6, e no primeiro pedido real junta-a sobre vsock 5010 ao próprio 127.0.0.1:<port> do convidado. O redirect_uri nunca é reescrito, pelo que o PKCE e a validação de redirecionamento continuam a passar. Não há nada para configurar — inicie o início de sessão dentro do espaço de trabalho e o redirecionamento é entregue ao convidado.

O encaminhador desmonta-se a si próprio após 300 segundos para que a porta de loopback nunca fique retida indefinidamente. Se a porta do anfitrião já estiver em uso, o fluxo prossegue nativamente sem a ponte, e as pré-ligações especulativas do navegador (sockets que abrem mas nunca enviam) são ignoradas para que não possam encravar um servidor de retorno de chamada de disparo único.

Modelo de segurança

O acesso remoto é poderoso, por isso vale a pena ser preciso quanto às suas fronteiras.

  • Desligado por predefinição, uma porta. Nenhum caminho remoto existe até que ative o servidor SSH. Cada caminho — menu humano, CLI, cliente nativo, encaminhamentos de porta, browser MCP — passa por esse único servidor e nenhum outro.
  • Cifragem e transporte. Todo o tráfego é SSH. O fluxo de estado e as chamadas de controlo do cliente nativo, as anexações de terminal, as transferências de ficheiros, os reencaminhamentos de portas e o relé browser-MCP viajam todos dentro da ligação SSH. Como o swift-nio-ssh não tem troca de chaves pós-quântica, um cliente OpenSSH moderno mostrará um aviso "not using a post-quantum key exchange"; isto é esperado e não indica um ataque de downgrade.
  • O bromure.io é um intermediário, não um homem no meio. No caminho de conta, o bromure.io apenas apresenta os seus dois dispositivos e — quando nenhum caminho ponto a ponto direto pode ser construído — retransmite bytes opacos através de um relay TURN (sobre TLS). Nunca termina a sessão SSH: o túnel encriptado é executado de ponta a ponta entre os seus dois Mac. As chaves SSH são partilhadas apenas entre os dispositivos da sua própria conta (nunca os de outro utilizador), cada servidor obtém ele próprio as chaves de dispositivo do seu proprietário, e inscrever-se / terminar sessão é a forma como a confiança de um dispositivo é concedida e revogada. Um dispositivo com a sessão terminada ou inativo durante 90 dias deixa de estar autorizado.
  • Quem pode iniciar sessão. Apenas o utilizador macOS exato que lançou a aplicação. A autenticação por palavra-passe é verificada contra o OpenDirectory (sem Início de sessão remoto, sem alterações PAM, sem direitos de administrador), e a autenticação por chave pública aceita apenas as chaves que inscreveu. As tentativas de palavra-passe são limitadas por IP de origem; as chaves não.
  • O que uma sessão pode fazer. Um início de sessão humano só pode alcançar o menu remoto — nunca uma shell — pelo que pode criar, configurar e conduzir espaços de trabalho, mas não pode executar comandos arbitrários no anfitrião. Os quatro verbos de máquina do cliente nativo são igualmente restritos: uma ponte de socket de controlo, um encaminhamento para um convidado na sub-rede vmnet e um relay browser-MCP. Os encaminhamentos para o próprio anfitrião, o gateway ou a internet são recusados.
  • Os segredos nunca saem do anfitrião. As leituras de definições remotas chegam com os segredos em branco (chaves dos fornecedores de modelos ocultadas) e as gravações preservam os segredos; as chaves de API, tokens, inícios de sessão por subscrição e segredos de ambiente MCP ficam no Mac remoto.
  • Confiança na primeira utilização. O cliente nativo fixa a chave de anfitrião do remoto por ponto de extremidade no primeiro contacto e avisa de forma audível em qualquer alteração posterior.
  • Consentimento não falsificável pelo convidado. Os pedidos de consentimento MITM levantados por um agente em execução são apresentados no lado do anfitrião da bomba de terminal, onde um convidado comprometido não os consegue ver nem falsificar; qualquer expiração ou desassociação resolve-se em negar. Consulte Gestão do consentimento remoto.

Resolução de problemas

SintomaCausa provávelO que fazer
Ativar devolve um erroA imagem base está em falta ou ainda a instalarO servidor não pode arrancar até que a imagem base esteja presente. Conclua a instalação e depois ative novamente.
O ssh liga-se mas diz para reconectar com ssh -tNão foi solicitado um TTYO menu remoto precisa de um terminal; adicione -t (ou use ssh -t -p 2222 <user>@<mac>).
O OpenSSH imprime "not using a post-quantum key exchange"O swift-nio-ssh não tem troca de chaves PQEsperado e inofensivo — a ligação continua encriptada.
Uma ligação por endereço continua a pedir uma palavra-passeA chave deste Mac não está inscrita no remotoDeixe um início de sessão por palavra-passe inscrevê-la automaticamente, ou execute bromure-cli remote key add '<this Mac's key>' no remoto (Mostrar a chave deste Mac copia-a).
Uma ligação bromure.io ainda pede uma palavra-passeO registo de chaves ainda não autorizou este dispositivo nesse servidorAqui o sem-palavra-passe é automático — verifique que tem sessão iniciada no bromure.io em ambos os Mac, que o servidor tem o Acesso Remoto ativo e que ambos executam uma compilação atual (o servidor publica o seu início de sessão e obtém as suas chaves). Dê alguns segundos após ativar o Acesso Remoto.
Os meus servidores · bromure.io está vazioSem sessão iniciada, ou o servidor não se está a anunciarInicie sessão (menu com o nome da aplicação → Iniciar sessão em bromure.io…); no remoto, ative o Acesso Remoto para que envie sinais de vida e apareça. Uma linha esbatida significa que deixou de enviar sinais de vida.
«Não foi possível estabelecer uma ligação … através do bromure.io»Nenhum caminho de rede direto ou retransmitido entre os dois MacConfirme que ambos conseguem alcançar o bromure.io; o relay precisa que turns:5349 esteja acessível. Tente novamente — um caminho é retentado na tentativa seguinte.
«Alcançado … pelo bromure.io, mas a sua porta de entrada SSH não respondeu»O Acesso Remoto foi desligado no remotoReative o Acesso Remoto no Mac remoto.
«O dispositivo bromure.io deste Mac foi revogado. Inicie sessão novamente.»Este dispositivo teve a sessão terminada / foi revogado (por si, pela consola web, ou por 90 dias de inatividade)Volte a inscrever-se: menu com o nome da aplicação → Iniciar sessão em bromure.io….
Folha vermelha Confiar na Nova Chave e ContinuarA chave de anfitrião do remoto mudou desde que foi fixadaVerifique fora de banda; só continue se souber por que motivo a chave mudou (reinstalação, novo Mac) — caso contrário, pode ser um atacante intermediário.
As ligações em curso caem depois de editar chavesAdicionar ou remover uma chave autorizada reinicia a escutaEsperado; reconecte.
O painel do navegador fica em brancoO reencaminhador SOCKS ou a sub-rede ainda não estão prontosAguarde a primeira atualização de estado do espelho; confirme que a máquina está em execução e que este Mac tem a imagem do navegador instalada.
Um encaminhamento é recusadoO destino não é um convidado na sub-rede vmnet do remotoOs encaminhamentos só podem alcançar VMs de espaço de trabalho, nunca o anfitrião, o gateway ou a internet.
O comutador do túnel fica preso em A aguardar aprovação…O auxiliar privilegiado ainda não foi aprovadoAprove Bromure Agentic Coding em Definições do Sistema → Geral → Itens de arranque (precisa de administrador). Sem ele, o SOCKS continua a funcionar.
As edições de disposição em grelha não pegam no remotoO remoto está sem monitorAs edições de grelha precisam de uma janela GUI aberta no remoto; tudo o resto continua a ser espelhado.

Ficheiros, portas e variáveis de ambiente

O estado do lado do servidor reside em ~/Library/Application Support/BromureAC/remote/: hostkey_ed25519 (0600) e o seu .pub, authorized_keys (0600) e a sobreposição opcional overlay-key. A identidade e o estado do cliente nativo residem em ~/Library/Application Support/BromureAC/remote-client/: id_ed25519(.pub) (comentário bromure-ac-fatclient), known_hosts (fixações TOFU), hosts.json (servidores guardados) e a persistência de espelho por anfitrião em hosts/<host-UUID>/. Todo o diretório de suporte é realocado sob CFFIXED_USER_HOME.

Porta / interfaceFunção
TCP 2222 (configurável, ≥ 1024)O servidor SSH incorporado, vínculo 0.0.0.0 por predefinição.
TCP 443 de saída + turns:5349Apenas caminho de conta bromure.io. Alcançar a sua conta (diretório de dispositivos, rendezvous) e, quando nenhum caminho ponto a ponto direto pode ser construído, o relay TURN sobre TLS. Ambos têm de estar acessíveis a partir de cada dispositivo para o caminho de conta; sem relação com o caminho por endereço.
Convidado vsock 5010Relay de loopback sempre ativo em cada VM — o caminho para os encaminhamentos de porta e a entrega de retornos de chamada OAuth.
Convidado vsock 5830O fluxo browser-MCP do agente do espaço de trabalho, retransmitido para o painel do navegador do cliente nativo.
Porta efémera, vínculo 0.0.0.0Encaminhador SOCKS5 por anfitrião (filtrado por pares para o loopback e a sub-rede de navegador 192.168.127.x).
192.168.127.0/24A sub-rede de VM de navegador local fixada do cliente nativo.
100.64.<n>.0/24Sub-redes de alias CGNAT atribuídas numa colisão de sub-rede de frota.

As chaves UserDefaults relevantes (domínio io.bromure.agentic-coding) são remoteAccess.enabled, remoteAccess.port, remoteAccess.bindAddress, remoteAccess.passwordAuth, remoteAccess.pubkeyAuth, fatclient.tunnel.<host-UUID> e cloudflareTunnel.consented. As variáveis de ambiente de diagnóstico incluem BROMURE_OVERLAY_KEY (atalho do menu remoto), BROMURE_FATCLIENT_LOG (registo detalhado do cliente nativo) e BROMURE_FATCLIENT_UTUN (forçar a ativação opcional do túnel à escala do sistema — o interruptor da barra de ferramentas é o caminho do produto). A referência completa da CLI, incluindo a canalização oculta __forward, __forward-socks, __dial e __attach-window, está em CLI, API e MCP.