Centralita y mensajería

Con varios agentes trabajando, no quieres ir pinchando en cada sesión para saber cuál te necesita. La Centralita es una sola conversación que sigue a todas las demás. Te dice qué está trabajando, qué está atascado y qué te espera. Lleva tus respuestas a la sesión correcta, e inicia, reanuda o guarda sesiones cuando se lo pides.

Con el conector de mensajería, también puedes hablarle desde el móvil o desde Slack.

La Centralita

El chat propio de la Centralita en el escenario (Claude Code en la máquina Web app, carpeta ~/.bromure/switchboard): a la pregunta «¿Qué está pasando en mis sesiones?», responde con un punto por sesión y una tabla Sesión / Máquina / Estado, y luego ofrece responder a @checkout con «Ambas». La fila de la Centralita está seleccionada arriba en la barra lateral, y dice «1 te necesita · 2 trabajando · 2 listas».

Dónde aparece

La fila Centralita se sitúa arriba en la lista de sesiones, encima de las salas y las sesiones. Aparece en cuanto dos o más sesiones están en marcha, es decir, iniciándose, trabajando, listas, o esperándote. Las sesiones en pausa, terminadas o archivadas no cuentan. La fila también se queda mientras la propia Centralita está ocupada o te pregunta algo, así que nunca desaparece a mitad de una respuesta. Con una sola sesión, ya estás mirando lo único que importa, y la fila se queda a un lado.

  • Antes de que la Centralita se haya iniciado, la fila dice "Pregunta por todas tus sesiones a la vez". Al hacer clic se inicia la Centralita.
  • Cuando está en marcha, la fila da un resumen: "n te necesitan · n trabajando · n listas". Sin nada en marcha, dice "Sigue tus sesiones".
  • En el riel plegado de la barra lateral, la Centralita es un icono de varita arriba, siguiendo la misma regla. Su ayuda da el mismo resumen, por ejemplo "Centralita — 1 te necesita · 2 trabajando".

Haz clic en la fila o en la varita para poner la conversación de la Centralita en el escenario. Es un chat como cualquier otro: escríbele, adjunta archivos, sube. Ver El chat.

Qué es

Por debajo, la Centralita es una sesión de Claude Code corriente con un papel especial:

  • Corre en la máquina que usaste la última vez (una máquina es un espacio de trabajo, en el editor de ajustes). Si aún no tienes sesiones, corre en la primera máquina.
  • Trabaja en la carpeta ~/.bromure/switchboard. El CLAUDE.md que hay ahí es su resumen, reescrito cada vez que arranca.
  • Es la única sesión con el servidor MCP bromure-switchboard (puerto vsock 5836). El anfitrión niega esas herramientas a cualquier otra sesión.
  • No escribe código ni cambia archivos. Su resumen le dice que lleve la cuenta, te cuente lo que importa en unas pocas líneas, y lleve tus decisiones.

Al arrancar, te saluda con un breve estado de cada sesión. Después de eso, no consulta en bucle. Cuando pasa algo que merece su atención, el anfitrión escribe un aviso de una línea en su conversación, empezando por [Switchboard]. Por ejemplo, una sesión te necesita desde hace unos segundos, o una sesión sobre la que actuó ha terminado. El aviso solo entra cuando su prompt está libre, y como mucho cada 20 segundos. La Centralita mira entonces, te cuenta lo que importa, y termina su turno.

La Centralita nunca se archiva automáticamente. Si la archivas, o su agente se detiene, hacer clic en la fila la trae de vuelta.

Qué puede hacer

Estas son sus herramientas, del servidor MCP bromure-switchboard:

HerramientaQué hace
list_sessionsLista todas las sesiones: su identificador (el @apodo, o un derivado corto del título), máquina, agente, carpeta, estado, última actividad, y lo último que dijo su agente.
read_sessionMuestra los turnos recientes de una sesión, o las últimas líneas de su terminal. El terminal muestra peticiones de permiso y diálogos que ninguna transcripción registra.
pending_questionMuestra qué espera una sesión que te necesita: su pregunta con opciones numeradas, más su pantalla.
list_workspacesLista las máquinas en las que puede correr una sesión nueva.
next_eventsMuestra qué ha pasado desde la última vez que miró: sesiones iniciadas, que acabaron un turno, que terminaron o que te necesitan, y llamadas al modelo rechazadas (clave de API equivocada, o sin crédito).
send_to_sessionEscribe un mensaje en una sesión, o despierta con él una sesión dormida. El texto largo o de varias líneas se deja en un archivo del ~/.bromure/inbox/ de la sesión, con un puntero de una línea.
answer_questionResponde a la pregunta pendiente de una sesión: elige una opción numerada, o escribe una respuesta libre.
press_keysPulsa teclas en un prompt con el que answer_question no puede. Solo se permiten de 1 a 12 de Enter Escape Tab BTab Space BSpace Up Down Left Right C-c y n a 0–9.
start_sessionInicia una sesión nueva en una máquina, con un mensaje de apertura y una elección de agente (Claude Code por omisión), en la carpeta que nombre o, por omisión, en una carpeta nueva vacía propia.
resume_sessionDespierta una sesión dormida o terminada, opcionalmente con un mensaje.
archive_sessionGuarda una sesión.
message_userTe envía un mensaje por el canal desde el que escribiste la última vez (Signal, WhatsApp o Slack). Sin móvil ni Slack conectados, se le dice a la Centralita que responda en su conversación, y se la remite a Espacios de trabajo › Infraestructura › Conector de mensajería….

Le hablas con palabras llanas: "¿qué está pasando?", "dile a @checkout que vaya con la opción 2", "inicia una sesión de Codex en Payments API para subir la versión de Node", "archiva la prueba de carga".

Si un proveedor de modelo rechaza las llamadas de una sesión (HTTP 401, 402 o 403), la Centralita te dice qué sesión, o al menos qué máquina, está afectada, para que puedas arreglar sus credenciales. Ver Modelos y proveedores. Un rechazo repetido se informa una vez por máquina cada 10 minutos.

Seguridad: solo actúa bajo tu palabra

La Centralita lee la salida de todas las sesiones. Esa salida podría contener instrucciones plantadas en una página web o en un archivo. Así que las acciones que hablan por ti las comprueba el anfitrión, y no se dejan al juicio del modelo.

  • Acciones comprobadas: responder a una sesión bloqueada, lo que cubre answer_question, press_keys, y send_to_session a una sesión que te necesita. Archivar una sesión también se comprueba.
  • La regla: cada una de ellas tiene que citar tus propias palabras, literalmente, de un mensaje que tú escribiste en la conversación de la Centralita en los últimos 30 minutos. El anfitrión busca la cita entre tus mensajes. Sus propios avisos [Switchboard] y el resumen de apertura no cuentan.
  • Cuando no hay coincidencia, la acción se rechaza y la Centralita tiene que preguntarte primero.

En la práctica: te dirá "@checkout pregunta si desactivar el botón, añadir una clave de idempotencia, o ambas", y esperará. Solo responde después de que digas "responde a @checkout ambas".

Nunca aprueba una petición de permiso ni responde a una pregunta porque la salida de otra sesión se lo haya dicho.

STOP y RESUME

Desde un móvil conectado o desde Slack, envía STOP (solo; las mayúsculas y una / inicial no importan).

  • El anfitrión pausa la Centralita al instante, antes de que el modelo vea el mensaje. Interrumpe su turno en curso y responde "En pausa: no actuaré sobre ninguna sesión. Envía RESUME para continuar."
  • En pausa, se le niegan sus herramientas de acción: send_to_session, answer_question, press_keys, start_session, resume_session y archive_session. Todavía puede leer sesiones y responder a tus preguntas.
  • La pausa cubre también las Centralitas de las salas.
  • RESUME la vuelve a activar ("Reanudado."). La pausa no se guarda: también termina cuando Bromure se reinicia.

Nota: STOP y RESUME solo se atienden cuando vienen del conector de mensajería. Escritos en el chat de la Centralita en el Mac, son mensajes corrientes.

Centralitas de sala

Cada sala puede tener una Centralita propia, acoplada bajo la cuadrícula de la sala. Funciona igual, con estas diferencias:

  • Solo lista las sesiones de la sala y solo se la despierta por ellas.
  • Trabaja en ~/.bromure/rooms/<nombre-de-sala>.
  • Las sesiones que inicia se unen a la sala.

La Centralita global de la barra lateral sigue viéndolo todo.

El conector de mensajería

El conector de mensajería enlaza la Centralita con Signal, WhatsApp o Slack. Desde donde estés, puedes preguntar qué está pasando, responder a una sesión bloqueada, o empezar trabajo nuevo:

  • "¿qué está pasando?" da un estado corto, del tamaño de un móvil.
  • "api 2" responde a una sesión bloqueada. Cuando una sesión empieza a necesitarte y escribiste la última vez desde el móvil, la Centralita te envía la pregunta palabra por palabra, con opciones numeradas y cómo responder.
  • "inicia una sesión de codex en infra para subir la imagen de coturn" empieza trabajo nuevo.
  • STOP / RESUME la pausan y la reanudan, como arriba.

Tus mensajes llegan a la conversación de la Centralita como [Signal] …, [WhatsApp] … o [Slack] …. La Centralita te responde por el canal desde el que escribiste la última vez. Sus respuestas empiezan por "☎️ ". Si la Centralita no está en marcha, tu mensaje la inicia.

La ventana del conector de mensajería en el primer arranque: una franja naranja BETA advirtiendo de que quien conectes puede hablar con la Centralita, el título «Conector de mensajería — Chatea con Bromure sobre tus sesiones desde Signal, WhatsApp o Slack.», una explicación corta, y el botón Configurar el conector.

Configurarlo

Abre Espacios de trabajo › Infraestructura › Conector de mensajería…. Una vez que el conector existe, también puedes usar su fila Mensajería en la barra lateral.

La ventana lleva una franja BETA: "Los conectores son nuevos. Quien conectes aquí puede hablar con la Centralita, que puede actuar sobre tus sesiones — Bromure solo te responde a ti, y STOP desde cualquiera de ellos la pausa. Espera alguna aspereza."

Haz clic en Configurar el conector. Bromure le crea una pequeña máquina propia, que "Corre aislada en este Mac". Es una VM gestionada como un registro, con 512 MB de memoria por omisión. Ahí es donde corren los servicios de mensajería:

  • Signal (signal-cli-rest-api) y WhatsApp (GOWA), en Docker
  • Slack, por Socket Mode

Tus claves de mensajería y los tokens de Slack viven en el disco de esa máquina y en ningún otro sitio.

La máquina del conector se comporta como cualquier otra máquina gestionada:

  • Iniciar con Bromure está activado por omisión. Con eso activado, el conector arranca con la app y se suspende cuando sales.
  • Iniciar y Detener están en la ventana, y en su fila de la barra lateral.

Solo corren los servicios que hayas configurado. Un servicio arranca cuando abres su hoja Conectar…, y desconectarlo lo detiene. Un servicio de WhatsApp sin usar nunca se queda marcando al vacío.

Luego haz clic en Conectar… en el canal que quieras. Está disponible en cuanto el conector está en marcha. Su ayuda, "Esperando a que arranque el conector", lo explica cuando no lo está.

Signal y WhatsApp

Los dos preguntan dónde quieres chatear con Bromure.

Chatear contigo mismo. Bromure se convierte en un dispositivo vinculado de tu propia cuenta, y le hablas en tu propio chat Notas personales (Note to Self) (Signal) o Envíate un mensaje (Message yourself) (WhatsApp).

  • Nada más que configurar. Escanea el código QR desde el móvil:
    • Signal: Ajustes › Dispositivos vinculados › Vincular un dispositivo nuevo
    • WhatsApp: Ajustes › Dispositivos vinculados › Vincular un dispositivo
  • WhatsApp ofrece también Usar un código de vinculación en su lugar. Introduce el número de la cuenta, haz clic en Obtener código, y luego en el móvil elige Vincular con número de teléfono y escribe el código.
  • Las respuestas no te notifican. Signal y WhatsApp nunca te notifican de tu propio chat, así que ábrelo para verlas.
  • Solo ese chat llega a la Centralita. Un dispositivo vinculado recibe también tus otras conversaciones, porque así funciona la vinculación. El conector las descarta, y su registro solo anota que se ignoró un mensaje, nunca lo que decía.

Chatear con un contacto de Bromure. Bromure usa una segunda cuenta y aparece como una persona en tus chats, así que sus respuestas sí te notifican.

  • Signal necesita un número de teléfono de repuesto que pueda recibir un SMS o una llamada:

    1. Introduce el número de Bromure — el de repuesto (formato internacional) y haz clic en Envíame un código por SMS.
    2. Si Signal pide un captcha, haz clic en Abrir la página de captcha de Signal. Resuélvelo, haz clic derecho en Open Signal, copia el enlace y pégalo en el campo.
    3. Si no llega ningún SMS (fijos, algunos números VoIP), haz clic en Mejor llámame, y Signal lee el código en voz alta. Signal solo llama a un número al que primero ha intentado mandar un SMS, así que el botón se activa después del SMS.
    4. Haz clic en Tengo el código. Introduce el código, y tu propio número — el único al que Bromure responderá. Haz clic en Verificar.
  • WhatsApp: Bromure no puede crear una cuenta de WhatsApp. Se vincula a una que configures para él:

    1. Consigue un número de repuesto: una segunda SIM o eSIM, o un fijo (WhatsApp puede verificarlo con una llamada de voz).
    2. Instala WhatsApp Business, que corre al lado de tu WhatsApp normal en el mismo móvil, y regístralo con el número de repuesto.
    3. Introduce tu número de WhatsApp personal. Bromure responde solo a mensajes de este número. Haz clic en Tengo la segunda cuenta — Continuar.
    4. Escanea el código QR con WhatsApp Business (Ajustes › Dispositivos vinculados › Vincular un dispositivo), o usa un código de vinculación.

    Luego escribe a ese contacto desde tu WhatsApp personal.

Advertencia: WhatsApp no admite oficialmente este tipo de vinculación, y puede cortarla. Signal es el canal más fiable.

Slack

Slack se conecta a través de una app de Slack tuya, en tu espacio de trabajo. "Slack se abre con sus ajustes ya rellenados: solo mensajes directos, sin canales, sin URL pública." El administrador de tu espacio de trabajo puede tener que aprobar la app.

  1. Haz clic en Crear la app en Slack, elige tu espacio de trabajo y haz clic en Create. Si el enlace no abre el formulario, elige en Slack Create New App › From an app manifest. Pega el manifiesto que se muestra en El manifiesto de la app (Copiar manifiesto).

  2. En Slack, Install App › Install to Workspace, y permite. Si tu espacio de trabajo necesita la aprobación de un administrador, espera a que llegue. Luego haz clic en Ya la he instalado — Continuar.

  3. Pega los dos tokens y haz clic en Conectar:

    • Bot User OAuth Token, de la página OAuth & Permissions de la app. Empieza por xoxb-.
    • App-level token, de Basic Information › App-Level Tokens › Generate Token and Scopes. Añade el alcance connections:write y genera. Empieza por xapp-.

    "Los dos se comprueban con Slack desde el conector y se guardan ahí, en su propio disco — no en este Mac."

  4. Vincula tu cuenta. Bromure muestra un código de seis cifras. En Slack, abre Bromure (en Apps) y envíale el código en un mensaje directo. Quien envíe el código se convierte en la única persona a la que Bromure responde en Slack. Envíalo tú mismo, y no lo compartas.

    • El código vale 10 minutos. Nuevo código da otro.
    • Tras varios códigos erróneos enviados a la app, la vinculación se detiene ("Si no eras tú, alguien más de tu espacio de trabajo está intentándolo").

    Una vez vinculado, Bromure te envía un mensaje en esa conversación. A partir de ahí, solo tus mensajes directos llegan a la Centralita. Los canales y todos los demás se ignoran.

Si cierras la hoja antes de vincular, la tarjeta de Slack dice "App configurada — aún no vinculada con tu cuenta" y ofrece Vincular….

Comprobar que funciona

La tarjeta de un canal conectado ofrece Enviar mensaje de prueba. Con Chatear contigo mismo, aterriza en silencio en tu propio chat, así que ábrelo para comprobarlo.

El Registro al pie de la ventana anota los pasos del conector y cada mensaje recibido o ignorado, nunca su contenido.

Desconectar y quitar

  • Desconectar… en la tarjeta de un canal hace que el conector olvide la vinculación o los tokens de ese canal. Para Slack, la app se queda en tu espacio de trabajo hasta que la quites allí (Slack › Settings › Manage apps).
  • Quitar el conector desde su fila de la barra lateral elimina su máquina y todo lo que hay en ella: las cuentas vinculadas y los tokens de Slack. Un dispositivo vinculado a tu propia cuenta sigue listado en tu móvil hasta que lo quites allí.

Privacidad y seguridad

  • Solo tú llegas a la Centralita: tu propio número (un contacto de Bromure), tu propio chat contigo mismo, o tu cuenta de Slack vinculada. El conector descarta todo lo demás antes de que la Centralita pudiera verlo.
  • Tus claves de mensajería y tokens se quedan en la máquina del conector. El resto de Bromure nunca los tiene.
  • Lo que la Centralita te envía es solo lo que ella elige retransmitir. Las credenciales dentro de tus máquinas son sustitutas, nunca los secretos reales. Ver Credenciales y la frontera del cable.