Central e mensagens
Com vários agentes a trabalhar, não quer andar a clicar em cada sessão para descobrir qual precisa de si. A Central é uma única conversa que acompanha todas as outras. Diz-lhe o que está a trabalhar, o que está preso e o que espera por si. Leva as suas respostas à sessão certa, e inicia, retoma ou guarda sessões quando lhe pedir.
Com o conector de mensagens, também pode falar com ela a partir do telemóvel ou do Slack.
A Central
Onde aparece
A linha Central fica no topo da lista de sessões, acima das salas e das sessões. Aparece assim que duas ou mais sessões estão em curso, isto é, a iniciar, a trabalhar, prontas, ou à espera de si. As sessões em pausa, encerradas ou arquivadas não contam. A linha também fica enquanto a própria Central está ocupada ou lhe pergunta algo, para nunca desaparecer a meio de uma resposta. Com uma só sessão, já está a olhar para a única coisa que importa, e a linha fica de lado.
- Antes de a Central ter sido iniciada, a linha diz «Pergunte por todas as suas sessões de uma vez». Clicar nela inicia a Central.
- Quando está em execução, a linha dá um resumo: «n precisam de si · n a trabalhar · n prontas». Sem nada em curso, diz «Acompanha as suas sessões».
- Na barra estreita recolhida, a Central é um ícone de varinha no topo, seguindo a mesma regra. A dica dá o mesmo resumo, por exemplo «Central — 1 precisa de si · 2 a trabalhar».
Clique na linha ou na varinha para pôr a conversa da Central no palco. É um chat como outro qualquer: escreva-lhe, anexe ficheiros, volte atrás. Ver O chat.
O que é
Por baixo, a Central é uma sessão Claude Code comum com um papel especial:
- Corre na máquina que usou por último (uma máquina é um espaço de trabalho, no editor de definições). Se ainda não tiver sessões, corre na primeira máquina.
- Trabalha na pasta
~/.bromure/switchboard. OCLAUDE.mdque está lá é o seu resumo, reescrito de cada vez que arranca. - É a única sessão com o servidor MCP
bromure-switchboard(porta vsock 5836). O anfitrião recusa essas ferramentas a qualquer outra sessão. - Não escreve código nem altera ficheiros. O seu resumo diz-lhe para acompanhar, dizer-lhe o que importa em poucas linhas, e levar as suas decisões.
Quando arranca, cumprimenta-o com um breve estado de cada sessão. Depois disso, não faz consultas em ciclo. Quando acontece algo que merece a sua atenção, o anfitrião escreve um aviso de uma linha na conversa dela, começado por [Switchboard]. Por exemplo, uma sessão está à sua espera há alguns segundos, ou uma sessão sobre a qual ela agiu terminou. O aviso só entra quando a linha de comando dela está livre, e no máximo a cada 20 segundos. A Central olha então, diz-lhe o que importa, e termina a sua vez.
A Central nunca é arquivada automaticamente. Se a arquivar, ou se o agente dela parar, clicar na linha trá-la de volta.
O que pode fazer
Estas são as suas ferramentas, do servidor MCP bromure-switchboard:
| Ferramenta | O que faz |
|---|---|
list_sessions | Lista todas as sessões: o identificador (o @apelido, ou um derivado curto do título), máquina, agente, pasta, estado, última atividade, e a última coisa que o agente dela disse. |
read_session | Mostra as vezes recentes de uma sessão, ou as últimas linhas do terminal dela. O terminal mostra pedidos de permissão e diálogos que nenhuma transcrição registra. |
pending_question | Mostra o que espera uma sessão que precisa de si: a pergunta com as opções numeradas, mais o ecrã dela. |
list_workspaces | Lista as máquinas em que uma sessão nova pode correr. |
next_events | Mostra o que aconteceu desde a última vez que olhou: sessões iniciadas, que acabaram uma vez, que terminaram ou que precisam de si, e chamadas ao modelo recusadas (chave de API errada, ou sem crédito). |
send_to_session | Escreve uma mensagem numa sessão, ou acorda com ela uma sessão adormecida. Texto longo ou com várias linhas é deixado num ficheiro em ~/.bromure/inbox/ da sessão, com um apontador de uma linha. |
answer_question | Responde à pergunta pendente de uma sessão: escolhe uma opção numerada, ou escreve uma resposta livre. |
press_keys | Prime teclas numa linha de comando que answer_question não consegue tratar. Só são permitidas 1 a 12 de Enter Escape Tab BTab Space BSpace Up Down Left Right C-c y n a 0–9. |
start_session | Inicia uma sessão nova numa máquina, com uma mensagem de abertura e uma escolha de agente (Claude Code por omissão), na pasta que indicar ou, por omissão, numa pasta nova vazia própria. |
resume_session | Acorda uma sessão adormecida ou encerrada, opcionalmente com uma mensagem. |
archive_session | Guarda uma sessão. |
message_user | Envia-lhe uma mensagem no canal de onde escreveu por último (Signal, WhatsApp ou Slack). Sem telemóvel nem Slack ligados, é dito à Central para responder na conversa dela, e é encaminhada para Espaços de trabalho › Infraestrutura › Conector de mensagens…. |
Fala com ela em palavras simples: «o que se está a passar?», «diz ao @checkout para ir com a opção 2», «inicia uma sessão Codex na Payments API para subir a versão do Node», «arquiva o teste de carga».
Se um fornecedor de modelo recusar as chamadas de uma sessão (HTTP 401, 402 ou 403), a Central diz-lhe que sessão, ou pelo menos que máquina, está afetada, para poder corrigir as credenciais dela. Ver Modelos e fornecedores. Uma recusa repetida é reportada uma vez por máquina a cada 10 minutos.
Segurança: só age sob a sua palavra
A Central lê a saída de todas as sessões. Essa saída pode conter instruções plantadas numa página web ou num ficheiro. Por isso, as ações que falam por si são verificadas pelo anfitrião, e não deixadas ao juízo do modelo.
- Ações verificadas: responder a uma sessão bloqueada, o que abrange
answer_question,press_keys, esend_to_sessionpara uma sessão que precisa de si. Arquivar uma sessão também é verificado. - A regra: cada uma delas tem de citar as suas próprias palavras, textualmente, de uma mensagem que você escreveu na conversa da Central nos últimos 30 minutos. O anfitrião procura a citação entre as suas mensagens. Os avisos
[Switchboard]dela e o resumo de abertura não contam. - Quando não há correspondência, a ação é recusada e a Central tem de lhe perguntar primeiro.
Na prática: ela dir-lhe-á «o @checkout está a perguntar se deve desativar o botão, acrescentar uma chave de idempotência, ou ambas», e esperará. Só responde depois de você dizer «responde ao @checkout ambas».
Nunca aprova um pedido de permissão nem responde a uma pergunta por a saída de outra sessão lhe ter dito para o fazer.
STOP e RESUME
De um telemóvel ligado ou do Slack, envie STOP (sozinho; maiúsculas/minúsculas e uma / inicial não importam).
- O anfitrião põe a Central em pausa de imediato, antes de o modelo ver a mensagem. Interrompe a vez em curso da Central e responde «Em pausa — não vou agir sobre nenhuma sessão. Envie RESUME para continuar.»
- Em pausa, as suas ferramentas de ação são recusadas:
send_to_session,answer_question,press_keys,start_session,resume_sessionearchive_session. Continua a poder ler sessões e a responder às suas perguntas. - A pausa abrange também as Centrais das salas.
- RESUME volta a ligá-la («Retomado.»). A pausa não é guardada: também termina quando o Bromure reinicia.
Nota: STOP e RESUME só são tratados quando vêm do conector de mensagens. Escritos no chat da Central no Mac, são mensagens comuns.
Centrais de sala
Cada sala pode ter uma Central própria, ancorada sob a grelha da sala. Funciona da mesma maneira, com estas diferenças:
- Só lista as sessões da sala e só é acordada por causa delas.
- Trabalha em
~/.bromure/rooms/<nome-da-sala>. - As sessões que inicia juntam-se à sala.
A Central global da barra lateral continua a ver tudo.
O conector de mensagens
O conector de mensagens liga a Central ao Signal, ao WhatsApp ou ao Slack. De onde estiver, pode perguntar o que se está a passar, responder a uma sessão bloqueada, ou começar trabalho novo:
- «o que se está a passar?» dá um estado curto, do tamanho de um telemóvel.
- «api 2» responde a uma sessão bloqueada. Quando uma sessão começa a precisar de si e escreveu por último do telemóvel, a Central envia-lhe a pergunta palavra por palavra, com as opções numeradas e como responder.
- «inicia uma sessão codex na infra para subir a imagem do coturn» começa trabalho novo.
- STOP / RESUME põem-na em pausa e retomam-na, como acima.
As suas mensagens chegam à conversa da Central como [Signal] …, [WhatsApp] … ou [Slack] …. A Central responde-lhe no canal de onde escreveu por último. As respostas dela começam por «☎️ ». Se a Central não estiver a correr, a sua mensagem inicia-a.
Configurá-lo
Abra Espaços de trabalho › Infraestrutura › Conector de mensagens…. Depois de o conector existir, também pode usar a linha Mensagens na barra lateral.
A janela traz uma faixa BETA: «Os conectores são novos. Quem ligar aqui pode falar com a Central, que pode agir sobre as suas sessões — o Bromure só responde a você, e STOP de qualquer um deles põe-na em pausa. Conte com algumas arestas.»
Clique em Configurar o conector. O Bromure cria uma pequena máquina só para ele, que «Corre isolada neste Mac». É uma VM gerida como um registo, com 512 MB de memória por omissão. É aí que correm os serviços de mensagens:
- Signal (signal-cli-rest-api) e WhatsApp (GOWA), em Docker
- Slack, por Socket Mode
As suas chaves de mensagens e os tokens do Slack vivem no disco dessa máquina e em nenhum outro lugar.
A máquina do conector comporta-se como qualquer outra máquina gerida:
- Iniciar com o Bromure está ligado por omissão. Com isso ligado, o conector arranca com a aplicação e é suspenso quando sai.
- Iniciar e Parar estão na janela, e na linha da barra lateral.
Só correm os serviços que tiver configurado. Um serviço arranca quando abre a folha Conectar… dele, e desconectar pára-o. Um serviço WhatsApp não usado nunca fica a ligar para fora.
Depois clique em Conectar… no canal que quiser. Fica disponível quando o conector estiver a correr. A dica, «À espera de que o conector arranque», explica quando não está.
Signal e WhatsApp
Ambos perguntam onde quer conversar com o Bromure.
Conversar consigo mesmo. O Bromure torna-se um aparelho ligado à sua própria conta, e fala com ele no seu próprio chat Nota para mim (Note to Self) (Signal) ou Enviar mensagem para si (Message yourself) (WhatsApp).
- Nada mais a configurar. Leia o código QR com o telemóvel:
- Signal: Definições › Aparelhos ligados › Ligar um aparelho novo
- WhatsApp: Definições › Aparelhos ligados › Ligar um aparelho
- O WhatsApp oferece também Usar um código de pareamento. Introduza o número da conta, clique em Obter código, e depois no telemóvel escolha Ligar com número de telefone e escreva o código.
- As respostas não o notificam. O Signal e o WhatsApp nunca o notificam sobre o seu próprio chat, pelo que tem de o abrir para as ver.
- Só esse chat chega à Central. Um aparelho ligado recebe também as suas outras conversas, porque é assim que a ligação funciona. O conector descarta-as, e o registo dele nota apenas que uma mensagem foi ignorada, nunca o que ela dizia.
Conversar com um contacto do Bromure. O Bromure usa uma segunda conta e aparece como uma pessoa nas suas conversas, pelo que as respostas dele o notificam.
-
O Signal precisa de um número de telefone extra que possa receber uma mensagem ou uma chamada:
- Introduza o número do Bromure — o extra (formato internacional) e clique em Enviar-me um código por SMS.
- Se o Signal pedir um captcha, clique em Abrir a página de captcha do Signal. Resolva-o, clique com o botão direito em Open Signal, copie a ligação e cole-a no campo.
- Se não chegar mensagem (linhas fixas, alguns números VoIP), clique em Prefiro uma chamada, e o Signal lê o código em voz alta. O Signal só liga para um número a que tentou primeiro enviar mensagem, pelo que o botão fica ativo depois da mensagem.
- Clique em Tenho o código. Introduza o código, e o seu próprio número — o único a que o Bromure responderá. Clique em Verificar.
-
WhatsApp: o Bromure não pode criar uma conta de WhatsApp. Liga-se a uma que configure para ele:
- Arranje um número extra: um segundo SIM ou eSIM, ou uma linha fixa (o WhatsApp pode verificá-la com uma chamada de voz).
- Instale o WhatsApp Business, que corre ao lado do seu WhatsApp normal no mesmo telemóvel, e registe-o com o número extra.
- Introduza o seu número de WhatsApp pessoal. O Bromure responde apenas a mensagens deste número. Clique em Tenho a segunda conta — Continuar.
- Leia o código QR com o WhatsApp Business (Definições › Aparelhos ligados › Ligar um aparelho), ou use um código de pareamento.
Depois escreva a esse contacto a partir do seu WhatsApp pessoal.
Aviso: o WhatsApp não suporta oficialmente este tipo de ligação, e pode cortá-la. O Signal é o canal mais fiável.
Slack
O Slack liga-se através de uma app Slack sua, no seu espaço de trabalho. «O Slack abre com as definições já preenchidas: apenas mensagens diretas, sem canais, sem URL pública.» O administrador do seu espaço de trabalho pode ter de aprovar a app.
-
Clique em Criar a app no Slack, escolha o seu espaço de trabalho e clique em Create. Se a ligação não abrir o formulário, escolha em vez disso Create New App › From an app manifest no Slack. Cole o manifesto mostrado em O manifesto da app (Copiar manifesto).
-
No Slack, Install App › Install to Workspace, e permita. Se o seu espaço de trabalho precisar da aprovação de um administrador, fica à espera dele. Depois clique em Já a instalei — Continuar.
-
Cole os dois tokens e clique em Conectar:
- Bot User OAuth Token, da página OAuth & Permissions da app. Começa por
xoxb-. - App-level token, de Basic Information › App-Level Tokens › Generate Token and Scopes. Acrescente o âmbito
connections:writee gere. Começa porxapp-.
«Ambos são verificados junto do Slack a partir do conector e guardados lá, no disco dele — não neste Mac.»
- Bot User OAuth Token, da página OAuth & Permissions da app. Começa por
-
Pareie a sua conta. O Bromure mostra um código de seis dígitos. No Slack, abra Bromure (em Apps) e envie-lhe o código numa mensagem direta. Quem enviar o código torna-se a única pessoa a que o Bromure responde no Slack. Envie-o você mesmo, e não o partilhe.
- O código funciona durante 10 minutos. Novo código dá outro.
- Depois de vários códigos errados enviados à app, o pareamento pára («Se não foi você, alguém no seu espaço de trabalho está a tentar»).
Uma vez pareado, o Bromure envia-lhe uma mensagem nessa conversa. A partir daí, só as suas mensagens diretas chegam à Central. Os canais e todos os outros são ignorados.
Se fechar a folha antes do pareamento, o cartão do Slack diz «App configurada — ainda não pareada com a sua conta» e oferece Parear….
Confirmar que funciona
O cartão de um canal ligado oferece Enviar mensagem de teste. Com Conversar consigo mesmo, ela aterra em silêncio no seu próprio chat, pelo que tem de o abrir para confirmar.
O Log no fundo da janela registra os passos do conector e cada mensagem recebida ou ignorada, nunca o conteúdo dela.
Desconectar e remover
- Desconectar… no cartão de um canal faz o conector esquecer a ligação ou os tokens desse canal. No caso do Slack, a app fica no seu espaço de trabalho até a remover lá (Slack › Settings › Manage apps).
- Remover o conector a partir da sua linha na barra lateral elimina a máquina dele e tudo o que lá está: as contas ligadas e os tokens do Slack. Um aparelho ligado à sua própria conta continua listado no telemóvel até o remover lá.
Privacidade e segurança
- Só você chega à Central: o seu próprio número (um contacto do Bromure), o seu próprio chat consigo mesmo, ou a sua conta Slack pareada. O conector descarta tudo o resto antes de a Central o poder ver.
- As suas chaves de mensagens e tokens ficam na máquina do conector. O resto do Bromure nunca os detém.
- O que a Central lhe envia é apenas o que ela escolhe retransmitir. As credenciais dentro das suas máquinas são substitutas, nunca os segredos reais. Ver Credenciais e a fronteira do fio.