Serie: Cmux (7/7)
Flujo de trabajo con múltiples agentes en la práctica: patrones reales con CMUX
Los cinco artículos anteriores desglosaron cada bloque funcional de CMUX. Ahora los conectamos: un escenario real de desarrollo en el que corres tres agentes de IA simultáneamente, cada uno con su propio espacio, puedes recibir notificaciones de finalización y, ocasionalmente, controlar el comportamiento del terminal mediante scripts.
Escenario: tres agentes corriendo a la vez
Imagina que hoy tienes tres cosas que hacer:
- Un agente implementando una nueva funcionalidad (Claude Code / Cursor)
- Otro ejecutando un bucle de pruebas estilo CI
- Otro monitorizando logs para asegurarse de que no aparecen errores
Los tres son independientes entre sí, pero todos tienen que estar corriendo, y quieres ver el estado de todos de un vistazo.
Diseño de los espacios de trabajo
Siguiendo el principio «espacio de trabajo = tarea», crea tres espacios de trabajo:
| Nombre del espacio de trabajo | Color | Contenido |
|---|---|---|
feature-auth |
Azul | Salida del agente + shell de reserva |
test-runner |
Naranja | Salida de los comandos de prueba |
monitoring |
Gris | Monitorización de logs con tail -f |
Los tres espacios de trabajo son independientes; de un vistazo a la barra lateral ves el estado de todos.
Diseño del cmux.json
Escribe los tres espacios de trabajo como comandos personalizados. Al empezar el día los activas uno a uno y los tres entornos quedan listos:
{
"commands": [
{
"name": "Feature Dev",
"description": "Espacio de trabajo para el desarrollo de la funcionalidad Auth",
"keywords": ["feature", "auth", "dev"],
"restart": "confirm",
"workspace": {
"name": "feature-auth",
"color": "#3b82f6",
"cwd": "./",
"layout": {
"direction": "horizontal",
"split": 0.65,
"children": [
{
"pane": {
"surfaces": [
{
"type": "terminal",
"name": "Agent",
"focus": true
}
]
}
},
{
"pane": {
"surfaces": [
{
"type": "terminal",
"name": "Shell"
}
]
}
}
]
}
}
},
{
"name": "Test Runner",
"description": "Ejecución continua de pruebas",
"keywords": ["test", "runner", "ci"],
"restart": "ignore",
"workspace": {
"name": "test-runner",
"color": "#f97316",
"cwd": "./",
"layout": {
"direction": "horizontal",
"split": 1,
"children": [
{
"pane": {
"surfaces": [
{
"type": "terminal",
"name": "Tests",
"command": "npm run test:watch",
"focus": true
}
]
}
}
]
}
}
},
{
"name": "Monitoring",
"description": "Monitorización de logs",
"keywords": ["log", "monitor", "tail"],
"restart": "ignore",
"workspace": {
"name": "monitoring",
"color": "#6b7280",
"cwd": "./",
"layout": {
"direction": "horizontal",
"split": 0.5,
"children": [
{
"pane": {
"surfaces": [
{
"type": "terminal",
"name": "App Log",
"command": "tail -f logs/app.log",
"focus": true
}
]
}
},
{
"pane": {
"surfaces": [
{
"type": "terminal",
"name": "Error Log",
"command": "tail -f logs/error.log"
}
]
}
}
]
}
}
}
]
}Enviar notificaciones con el CLI
Cuando un agente termina una tarea importante, quieres recibir una notificación sin tener que mirar la salida constantemente. Añade esto a tus scripts o configuración del agente:
# Notificación al completar una tarea
cmux notify --title "Feature Build Done" --body "Build de la funcionalidad auth completado, listo para review"
# Aviso al fallar las pruebas
cmux notify --title "Test Failed" --body "3 pruebas han fallado, revisa el espacio de trabajo test-runner"Si llamas a este comando desde fuera de CMUX (por ejemplo, desde un script de CI), recuerda crear primero el enlace simbólico /usr/local/bin/cmux (consulta el artículo de instalación).
Automatización con la API de socket: uso avanzado
La API de socket te permite controlar CMUX mediante programas. Antes de usarla, verifica la configuración del «Modo de automatización»:
Preferencias > Modo de automatización > Solo procesos de cmux (recomendado para equipos de desarrollo personal)
Consultar todos los espacios de trabajo:
cmux list-workspacesLa información devuelta por este comando se puede encadenar en scripts para implementar lógica como «verificar si existe un espacio de trabajo concreto y crearlo automáticamente si no existe».
Ritmo de trabajo recomendado
Al empezar el día: activa los tres comandos personalizados y los tres espacios de trabajo quedan listos. Sin configuración manual.
Durante el trabajo: deja que los agentes corran y no los mires constantemente —espera las notificaciones. Cuando lleguen, cambia al espacio de trabajo correspondiente para ver el resultado.
Cambiar de contexto: tres espacios de trabajo en la barra lateral, un clic para cambiar. Sin ⌘Tab buscando ventanas perdidas.
Antes de cerrar: usa cmux list-workspaces para verificar el estado de todos los espacios de trabajo y asegurarte de que no hay ningún agente a mitad de una tarea.
Consideraciones en máquinas compartidas
Si tu equipo de desarrollo es compartido (servidor de equipo, runner de CI), el modo de automatización recomendado es «Desactivado» o «Solo procesos de cmux». Evita allowAll —este modo permite que cualquier proceso local se conecte al socket de CMUX, lo que supone un riesgo en entornos compartidos.
Hasta aquí, el flujo de trabajo completo de CMUX queda conectado. Desde la instalación, la estructura, la configuración y los comandos personalizados, hasta el uso real con múltiples agentes —un conjunto de patrones repetibles que no se descontrolan, independientemente de cuántos agentes estés corriendo.
¿Quieres volver a revisar algún tema? Desde la página principal de la serie encontrarás el artículo que necesitas.