Tú, tu equipo, Claude, Codex y quien escribe a tu bot de Telegram en una sola conversación, con un panel que muestra todo en vivo.

Sala Multiplayer es un programa pequeño que funciona en tu computadora y reúne en una sola conversación a ti (o a tu equipo), dos agentes de IA (Claude Code y Codex) y a quien escribe a tu bot de Telegram. Sirve para trabajar con agentes junto con otras personas o atender clientes con borradores de IA que una persona aprueba antes de enviar. Los agentes funcionan con tu suscripción, sin API. Para usarla, necesitas Node 24 y los CLI de Claude Code y Codex instalados y con sesión iniciada.
Primera versión práctica del concepto Multiplayer Agentic: en lugar de que cada persona hable a solas con su IA, todos hablan en el mismo lugar.
Llama a @claude y @codex en la conversación. Ambos responden en la sala con tu suscripción de Claude Code y Codex.
Un solo bot recibe los mensajes. Los agentes responden por él con su nombre al frente ("Claude: ...").
En el modo de atención, la respuesta al cliente queda como borrador y solo se envía cuando alguien del equipo la aprueba.
Pide "crea un agente que revise mis textos". Claude devuelve una propuesta con el costo y el tiempo estimados. El agente se activa cuando el dueño la aprueba.
La conversación se organiza por temas en la columna derecha. Haz clic en uno para ver el resumen: qué se decidió, qué está pendiente, quién participó y cuánto costó.
Cada mensaje se convierte en un diagrama de secuencia o un grafo con flechas numeradas: quién llamó a quién, en qué orden y cómo terminó. Al lado aparecen lo que se pidió, lo decidido y lo que sigue pendiente.
Cada mensaje entra en la sala, llega a quien fue llamado y aparece en el panel al instante.
pessoa: tú y tus agentes; el bot ignora a quien no es el dueño. atendimento: los clientes escriben por Telegram, Claude responde con la base de respuestas, Codex revisa cuando el equipo lo pide y un supervisor o agente aprueba.
El agente lo solicita con una línea FERRAMENTA: nome | entrada y la sala la ejecuta. Ejemplos: base (base de respuestas), chamado, notas, hora.
Entre agentes, solo el @id al comienzo de la frase llama ("@codex, ¿revisas esto?"). Mencionar el nombre en medio del texto no activa a nadie. Una respuesta que solo confirma ("de acuerdo, espero al dueño") no llama a nadie y recibe la etiqueta "solo confirma". Un agente solo vuelve a llamar a quien le habló si le hace una pregunta.
Hasta 10 turnos seguidos entre agentes (6 en atención), hasta 12 respuestas de agentes por mensaje sumando todas las ramas (8 en atención), un límite diario (400 y 300), un tope por invitado (30) y, si quieres, por agente. El aviso aparece una vez por mensaje.
Los límites, el modelo y el nivel de esfuerzo de cada agente, así como las reglas para invitados, están en la pantalla Config, con la contraseña del dueño, o en Telegram con /config. Quien no es el dueño lo pide en el chat y el dueño lo aprueba.
El panel solo se abre en esta máquina (127.0.0.1). Los mensajes de otras personas se tratan como datos, nunca como instrucciones. Los agentes funcionan sin las herramientas propias del CLI, sin MCP y en una carpeta vacía.
La demostración funciona solo con Node. Para usar los agentes reales, debes iniciar sesión en tu cuenta desde ambos CLI.
La sala usa SQLite, que ya viene con Node (node:sqlite), sin dependencias adicionales.
# comprobar la versión node --version # v24 o superior
Instalados y con sesión iniciada mediante tu suscripción. La sala ejecuta ambos CLI; no usa una clave de API.
# ambos deben responder claude --version codex --version
Sin bot, la sala funciona solo desde el panel. Con bot, necesitas el token de @BotFather.
# en Telegram @BotFather → /newbot
Empieza con la demostración, que usa agentes simulados y no consume nada. Después activa los agentes reales y, por último, Telegram.
No hay npm install: el proyecto no tiene dependencias.
git clone https://github.com/inematds/sala-multiplayer cd sala-multiplayer
Abre el perfil de atención con agentes simulados para que veas las cuatro pantallas: clientes, una propuesta de agente nuevo, temas y el flujo visual. La demostración empieza limpia cada vez y no modifica los datos de la sala real.
npm run demo # abre http://127.0.0.1:4601 npm test # 46 pruebas, sin llamar a agentes ni a Telegram
Elige el perfil. En el panel, escribe @claude y @codex para llamar a un agente.
npm run pessoa # tú y tus agentes → http://127.0.0.1:4600 npm run atendimento # área de atención → http://127.0.0.1:4600
En @BotFather, crea el bot y copia el token. Para que pueda leer mensajes de grupo, desactiva la privacidad.
/newbot # elige un nombre y copia el token /setprivacy # elige el bot → Disable
El .env queda fuera de git. Averigua tu id numérico con @userinfobot. En atención, completa también los ids del supervisor y del agente.
cp .env.exemplo .env # SALA_TELEGRAM_TOKEN= token de @BotFather # SALA_DONO_TELEGRAM_ID= tu id # SALA_SUPERVISOR_TELEGRAM_ID= / SALA_ATENDENTE_TELEGRAM_ID= (atendimento)
Un bot de Telegram no puede iniciar la conversación. Sin el /start, no puede avisarte de las aprobaciones. Después vuelve a ejecutar el perfil: el indicador de Telegram en la parte superior del panel queda "activo".
/start # cada persona del equipo, una vez npm run atendimento # o npm run pessoa
En atención, el borrador aparece en la parte superior del panel. Apruébalo ahí (puedes editarlo antes) o por Telegram.
/aprovar 3 # envía el borrador 3 al cliente /recusar 3 # descarta el borrador 3
La persona envía /entrar al bot en un chat privado. Recibes la solicitud por Telegram y también aparece en "Aprobaciones pendientes" en el panel (para aceptarla ahí, se necesita la contraseña del dueño). La persona invitada puede conversar y llamar a los agentes, pero no puede aprobar nada ni cambiar la configuración; además, tiene su propio límite diario de respuestas. Para desactivarla, usa /remover o el botón de la pantalla Config.
/entrar # a pessoa, no bot /aceitar 7 # tú: "Solicitud 7: Ana (@ana) quiere entrar" /recusar 7 # ou recusa /remover ana # la desactiva; ella puede salir con /sair
Escribe en la sala lo que necesitas. Claude no crea nada por su cuenta: devuelve una propuesta (nombre, función, motor, herramientas y límite diario), con el costo y el tiempo por respuesta calculados a partir de respuestas anteriores. Sin @topicos, la sala agrupa los mensajes por temas, pero no escribe un resumen. Cuando se aprueba, cada tema recibe un resumen, lo decidido y lo pendiente, y cada mensaje consume una llamada adicional de tu suscripción.
# en la sala @claude cria um agente que revise meus textos @claude cria um agente que organize a conversa em tópicos # id: topicos /aprovar 4 # o en el panel, en Aprobaciones pendientes
En la pantalla Config, con la contraseña del dueño (SALA_DONO_SENHA en el .env), o por Telegram. Los cambios se aplican de inmediato.
/config # muestra todo /config teto_rodada 12 # respuestas de agentes por mensaje /config agente.claude.nivel super
Los perfiles en perfis/ definen quién participa, la personalidad de cada agente, las herramientas, la ruta predeterminada, quién aprueba y los límites. Copia uno y ejecútalo con el nuevo nombre.
cp perfis/atendimento.json perfis/vendas.json node server.mjs --perfil vendas
Todo se actualiza en vivo, sin recargar. Las pantallas caben sin desplazamiento en anchos de 360 a 1920 px.

/): arriba aparecen los mensajes de la última hora, los agentes trabajando, las aprobaciones pendientes y las respuestas del día. A la izquierda están los participantes. En el centro está el chat, en una sola columna: cada mensaje tiene un avatar y un borde de color (los tuyos en blanco, las personas en amarillo, los agentes en azul y el sistema en rojo). A la derecha están los tópicos: haz clic en uno para filtrar el chat y abrir arriba el resumen (lo decidido, lo pendiente, quién participó, el costo y "Ver el flujo").
/fluxo?v=visual): una ronda por mensaje de una persona, con una columna por participante y una flecha por respuesta. Las marcas señalan propuestas, límites, errores y "solo confirma". Al lado está la franja de resolución: solicitud, propuestas, lo decidido, lo pendiente y el costo.
/fluxo?v=grafo): la misma ronda en un grafo. Cada círculo representa a un participante y cada flecha lleva el número del paso; la lista de abajo explica cada paso. Al lado está el grafo del tema completo: todas las rondas de ese tema y cuántos mensajes pasaron por cada flecha. Sirve para detectar rápidamente ciclos entre agentes.
/fluxo): muestra todo lo que entra y sale, en el orden en que ocurre. El botón Texto | Visual | Grafo cambia el modo; "Todos" vuelve a activar todos los filtros; en Visual y Grafo, "Abrir todas" despliega todas las rondas a la vez; Pausar detiene la lista.
/grafo): quién conversa con quién. La línea se hace más gruesa según el volumen y un punto la recorre con cada mensaje.
/config): muestra los límites de la sala, de cada agente y de los invitados, además del botón para activar o desactivar a cada invitado de Telegram. Solo el dueño, con su contraseña.

La v0.8 ya está publicada. Esto es lo que incluye y lo que viene después:
/config en Telegram, que solo puede cambiar el dueño.@ solo al comienzo de la frase, "solo confirma" no llama a nadie, estado de la sala en el prompt de los agentes; invitación por Telegram con /entrar y /aceitar.@topicos escribe el resumen cuando se aprueba.@conselho-gestao reúne al consejo y devuelve la síntesis.