pairdown
Pairdown
Markdown multijugador, con agentes en la sala.
Un servidor contiene todos los documentos. Las personas abren un enlace y editan el mismo documento juntas, en vivo, y dejan comentarios en el margen. Cualquiera en la sala puede traer su propia sesión de Claude Code — aparece como participante con nombre, permanece en silencio hasta que alguien la menciona, y luego responde en el hilo en el que fue invocada.
Funciona en un navegador sin necesidad de instalar nada. Las salas, la edición, los comentarios y el uso compartido funcionan sin ningún agente conectado; el plugin de Claude Code es la forma opcional de adjuntar una sesión, y nunca contiene el documento en sí.
Ejecutar el servidor
Para alojarlo se necesita un checkout y bun:
bun install
bun run build # bundles the browser client into public/js
bun run src/server.ts # http://127.0.0.1:8790Un solo proceso atiende todas las salas. / es el índice de salas — cada sala del servidor, enlazada a su propio /r/<id>, con un formulario para crear una. Las salas persisten en data/rooms/, un archivo por cada una, y sobreviven al proceso.
Related MCP server: agent-room-mcp
Traer un agente
Instala el plugin desde este repositorio — el repositorio es su propio marketplace, así que son dos comandos en lugar de uno:
claude plugin marketplace add rohanrichards/pairdown
claude plugin install pairdown@pairdownLa instalación pide cuatro cosas, y las dos primeras importan:
Configuración | Por qué |
Identificador del agente | lo que la gente escribe después de |
Tu nombre | se muestra junto al identificador, para que la gente vea de quién es el agente |
Servidor de salas | déjalo como está para un servidor en tu propia máquina; configúralo con el de otra persona para unirte a su sala |
Clave compartida | solo cuando su servidor está detrás de una. Es una clave de demostración compartida, no una credencial personal, y se almacena en texto plano en |
Puedes cambiarlas más tarde con /plugin configure pairdown.
Necesitas node (22 o más reciente) en tu PATH. No necesitas clonar este repositorio ni instalar sus dependencias — el agente se distribuye como un único archivo empaquetado y se ejecuta directamente desde él.
bun solo se necesita para alojar un servidor de salas, porque el servidor está construido sobre Bun.serve. Llevar un agente a la sala de otra persona no lo requiere.
Para trabajar en el propio plugin, claude --plugin-dir . lo carga desde un checkout sin instalarlo, y recoge tus ediciones en /reload-plugins.
El plugin ejecuta un servidor MCP que se conecta al servidor de salas como cliente. Su binario pairdown, en PATH mientras el plugin está habilitado, inicia el servidor de salas bajo demanda si aún no está en marcha.
Una vez conectada, una sesión llama a room_list, luego a room_create o room_join, y después trabaja con read, outline, search, edit, append, insert, comments, reply y resolve.
Un agente permanece inactivo hasta que se le nombra. Nada llega a una sesión a menos que un comentario mencione su identificador, así que una sala con cuatro agentes es tan silenciosa como una sin ninguno hasta que alguien pide uno de ellos.
Los mismos cuatro ajustes son variables de entorno, para ejecutar el agente fuera del plugin:
Variable | Qué hace |
| el identificador de esta sesión, lo que la gente escribe después de |
| de quién es el agente, se muestra junto al identificador |
| servidor de salas al que conectarse (por defecto |
| clave compartida, cuando el servidor está protegido |
Una variable de entorno prevalece sobre el ajuste del plugin del mismo nombre, que es como se ejecuta un segundo agente con un identificador diferente sin tocar tu configuración:
PAIRDOWN_AGENT=scout PAIRDOWN_OWNER=Rohan claudeActualización
La instalación no actualiza una instalación existente a una versión más reciente — informa de que el plugin ya está instalado y deja la versión en ejecución como está. Para obtener una nueva versión:
claude plugin marketplace update pairdown
claude plugin uninstall pairdown@pairdown
claude plugin install pairdown@pairdownComprueba lo que realmente se está ejecutando con claude plugin list; es el número de versión que aparece allí lo que importa, no lo que está en la caché.
Mencionar un identificador notifica a esa sesión inmediatamente; un comentario sin etiqueta espera hasta que alguien pulsa "enviar a claude". La notificación inmediata además requiere la vista previa de investigación de canales, y en Team/Enterprise un administrador de la organización debe establecer channelsEnabled — sin ello, la notificación se descarta silenciosamente y todo lo demás sigue funcionando.
La puerta de clave compartida
Establecer PAIRDOWN_SECRET pone todo el servidor detrás de una clave: los navegadores reciben un formulario y luego una cookie de sesión, los agentes y scripts envían Authorization: Bearer <key>. Si no se establece, el servidor está abierto, exactamente como antes.
PAIRDOWN_SECRET="$(openssl rand -base64 32 | tr -d /+= )" bun run src/server.tsEsto es autenticación, no autorización. Una clave significa que todos los que la poseen son el mismo principal: nadie puede distinguirse, nadie puede ser revocado individualmente, y todas las salas del servidor están detrás de la misma puerta. Existe para que una demo supervisada pueda pasar por un túnel sin entregar la caja a quien encuentre la URL. No es una forma de dejar un servidor en marcha.
Lo que sí hace correctamente es la parte que este tipo de puerta suele hacer mal: la comparación es de tiempo constante, la cookie lleva un HMAC de la clave en lugar de la clave, y la actualización de websocket está protegida junto con las páginas — proteger el HTML pero no /ws cerraría la puerta y dejaría la ventana abierta.
Pruebas
bun test
bun run src/smoke.tssmoke.ts crea una sala desechable, lanza el servidor MCP contra ella y recorre toda la superficie de la herramienta de principio a fin.
Aún no está aquí
Cuentas, SSO, permisos por sala, alojamiento. Primero local, un túnel para la demo.
Consulta docs/superpowers/specs/2026-08-19-spec-room-design.md para el diseño. Él y el plan que lo acompaña son registros fechados escritos bajo el primer nombre del proyecto, y se dejan tal como estaban.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to communicate with each other through Slack-like room-based channels with messaging, mentions, presence management, and long-polling for real-time collaboration.194MIT
- AlicenseNot gradedqualityBmaintenanceEnables Cursor agents to communicate via a shared chat room, allowing them to ask questions, share status, and warn about conflicts while collaborating on the same repo.710MIT
- AlicenseNot gradedqualityFmaintenanceMCP server for collaborative markdown editing, allowing agents to write documents and humans to comment, with comments fed back as agent input.300,650MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to collaborate in shared rooms with people, managing room presence, message delivery, and automatic agent registration via MCP tools.MIT
Related MCP Connectors
Persistent docs and memory for AI agents — read, write, organize & search a shared workspace.
A room-based collaborative platform
MCP-native collaborative markdown editor with real-time AI document editing
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/rohanrichards/pairdown'
If you have feedback or need assistance with the MCP directory API, please join our Discord server