Orquestar agentes de IA sin Herdr ni Orca: solo con Claude Code

Cuando hablamos de orquestar agentes de IA, lo primero que aparece en la conversación son herramientas como Herdr u Orca. Son excelentes, pero hay una forma mucho más simple si ya usas Claude Code como agente principal: desde hace algunas versiones, una sesión puede enviarle mensajes a otra sesión.

Eso significa delegar trabajo de una terminal a otra, incluso entre modelos distintos, e incluso entre proyectos distintos. En este artículo te muestro el flujo completo con un ejemplo real: un planner que arma la planificación y dos developers que ejecutan las tareas según su dificultad.

🔗 Patrocinado por Hostinger

¿Cuántas veces terminaste un proyecto y se quedó en tu localhost porque desplegarlo salía caro? Con un VPS de Hostinger tienes tu propio servidor por pocos dólares al mes: 2 núcleos de CPU, 8 GB de RAM, 100 GB de disco NVMe y hasta 8 TB de transferencia, sobre procesadores AMD EPYC.

Con acceso root completo puedes instalar lo que quieras: backend, frontend, en cualquier lenguaje, o tus propios asistentes de IA y proyectos como n8n. Incluye además Kodee, un asistente con IA al que le escribes en lenguaje natural para resolver dudas de tu VPS, más backups semanales y snapshots por si algo sale mal.

Usá el código FAZT y obtené hasta 10% de descuento → hostinger.com/fazt

Qué es la mensajería entre sesiones de Claude Code

Es una función oficial de Claude Code llamada cross-session messaging. La idea es simple: cuando una sesión aprende algo que otra necesita, Claude se lo pasa en vez de que tú copies y pegues entre terminales.

Lo importante en tres puntos:

  • Qué viaja: solo texto plano. Nunca el historial de conversación ni los archivos del emisor. Si quieres mover el contexto completo, lo correcto es retomar la sesión con --resume.
  • Por dónde viaja: entre sesiones de la misma máquina, por un socket local por sesión. No pasa por servidores de Anthropic. Solo lo hace cuando el destino es otra máquina tuya o una sesión en la nube, a través de Remote Control.
  • Qué necesitas: Claude Code v2.1.224 o superior en macOS, Linux y WSL 2; v2.1.234 en Windows nativo. Si cumples, ya está activo. Para comprobarlo, escribe /list-agents (también responde como /peers): si el comando no existe, tu versión no la tiene.

Tú nunca invocas las herramientas a mano. Claude descubre destinos con ListAgents y entrega con SendMessage por su cuenta.

El flujo: un planner y dos developers

1. Planificar con el modelo más caro

Al inicio de un proyecto conviene gastar en pensar, no en escribir. Abre Claude Code, cambia al modelo más capaz y sube el esfuerzo al máximo:

claude --model fable --effort max

O dentro de la sesión:

Los niveles de esfuerzo disponibles son low, medium, high, xhigh y max, según la documentación de configuración de modelos. high es el valor por defecto.

Luego el prompt de planificación. El truco está en la segunda parte:

Ese plan.md sale extenso, con secciones de API, fases y tareas etiquetadas. Las etiquetas de dificultad son la clave: son el criterio con el que después vas a repartir el trabajo.

2. Abrir sesiones con modelos distintos

Abre dos terminales más, entra al mismo proyecto y lanza claude en cada una. En una cambia a Sonnet 5, en la otra a Opus 5:

Ahora tienes tres modelos vivos: el planner con el modelo de planificación, y dos ejecutores con perfiles de costo y velocidad diferentes.

3. Nombrar las sesiones

Sin nombres, esto no funciona. Cada sesión se nombra con /rename:

También puedes nombrarlas desde el arranque con claude -n developer-1. El nombre aparece en la barra de prompt, y es la dirección que usan las demás sesiones para alcanzarla.

Un detalle útil: si intentas usar un nombre que ya tiene otra sesión viva en la misma máquina, Claude Code deja el nombre con la que lo tenía y renombra la tuya a una variante, avisándote.

4. Delegar

Vuelve al planner y escribe la instrucción de reparto:

La lógica detrás del reparto: Sonnet 5 responde muy rápido y rinde bien en tareas mecánicas, mientras que Opus 5 es más lento pero sostiene mejor el código complejo. Estás pagando latencia solo donde hace falta.

En cada terminal vas a ver llegar el mensaje identificado con el nombre del emisor y un resumen de las tareas asignadas. A partir de ahí, cada sesión avanza sola por fases, y el planner se queda escuchando las respuestas: si una termina antes, recibe el aviso.

Si quieres apuntar a un destino específico sin que Claude tenga que listar sesiones, puedes mencionarla con @ y el autocompletado (requiere v2.1.232 o superior):

5. Pedir aviso cuando una sesión termine

En vez de estar revisando terminales, puedes suscribirte a un aviso único:

Claude Code manda una sola notificación cuando esa sesión queda inactiva o sale. Si no llega en 12 horas, la suscripción se descarta sola. Ninguna de las dos sesiones queda haciendo polling.

El caso que realmente lo justifica: proyectos cruzados

Delegar dentro de un mismo proyecto es cómodo, pero no es donde esto brilla. Donde se vuelve indispensable es entre proyectos distintos.

En mi caso, casi todo el software que uso lo escribí yo. No uso Jira ni Linear: tengo mi propio gestor de tareas. Cada cierto tiempo aparece una necesidad cruzada, por ejemplo que el CLI de ese gestor acepte subir contenido en Markdown porque mi sitio web lo necesita.

Con sesiones nombradas, eso es un mensaje:

El otro proyecto recibe el pedido, implementa la característica y responde. Dos repos avanzando en paralelo sin que yo cambie de contexto.

Límites reales que conviene conocer

Esto no es un bus de mensajes ilimitado, y la documentación es explícita al respecto:

Límite Comportamiento
Tamaño del mensaje Se rechaza en el emisor pasado ~1 millón de caracteres
Ráfagas Muchos mensajes seguidos a una sesión se rechazan; Claude debe agruparlos
Bucles Se limitan repeticiones y se descartan mensajes idénticos; un loop entre dos sesiones se detiene solo
Cola Máximo 50 mensajes aceptados en espera de lectura

Y sobre seguridad, tres garantías que vale la pena conocer antes de dejar sesiones corriendo:

  • Un mensaje de otra sesión no cuenta como tu consentimiento. No puede responder un prompt de permisos en tu nombre.
  • No puede cambiar configuración. Ni permisos, ni CLAUDE.md, ni ajustes.
  • Los comandos no se ejecutan. Si el mensaje contiene /compact, llega como texto plano.

Si quieres cerrar la puerta por completo, existe el ajuste crossSessionInbound con tres valores: accept, hold (lo deja en espera de tu aprobación) y refuse.

Cuándo NO usar esto

Aquí va la parte honesta: esto no es para todos.

  • Si trabajas en un solo proyecto, no vas a encontrarle ventaja. Es probable que hasta avances más lento por estar dividiendo en subtareas algo que cabía en una sola planificación.
  • Si estás haciendo vibe coding, no sirve. El vibe coding es pedir, ver qué hizo la IA y volver a pedir. La orquestación asume lo contrario: un plan grande armado antes de escribir una línea.
  • Cansa. Saltar entre sesiones y mantener en la cabeza qué está avanzando cada una es trabajo real. Avanzas más proyectos a la vez, pero la revisión de código se vuelve el nuevo cuello de botella.

Y Claude Code tiene funciones dedicadas para casos parecidos que quizá se ajusten mejor:

  • Subagentes: paralelismo dentro de una sola sesión. Si solo quieres velocidad, esta es la opción simple.
  • Agent teams: un equipo coordinado que Claude lanza y supervisa él mismo.
  • Agent view: vigilar y dirigir muchas sesiones desde un solo lugar.
  • Worktrees: aislar ramas para que los agentes no se pisen entre sí.

📌 Si te interesa el enfoque de worktrees, lo cubrí en detalle aquí: (enlace interno: artículo de Git worktrees + agentes en paralelo)

Entonces, ¿para qué sirven Herdr y Orca?

Nada de lo anterior reemplaza a estas herramientas: se complementan.

Herdr

Herdr se define como el runtime donde viven tus agentes. Mantiene terminales reales abiertas en un servidor en segundo plano, así que puedes cerrar la laptop y el trabajo sigue. Marca cada agente como working, blocked o idle, así no vas panel por panel buscando cuál se quedó esperando una respuesta tuya. Detecta más de 20 CLIs de agentes, corre en macOS, Linux y Windows, y es Apache 2.0.

Yo lo uso a diario: nombro cada sesión con el nombre del proyecto, la dejo en Remote Control, y desde ahí se comunican entre ellas.

📌 (enlace interno: artículo/video donde muestro Herdr en profundidad)

Orca

Orca es la alternativa gráfica, desarrollada por Stably y respaldada por Y Combinator. Se define como un ADE (Agent Development Environment): cada tarea corre en su propio worktree aislado, con terminal, navegador embebido, diffs comentables y app móvil complementaria. Soporta más de 25 CLIs y es open source.

Si no te sientes cómodo en la terminal, empieza por aquí.

Orquestar entre proveedores: donde esto escala de verdad

Dentro de Claude Code intercambias entre modelos de Anthropic. En Codex, entre modelos de OpenAI. Ahí el margen para combinar es estrecho.

El panorama cambia con agentes que no traen modelo propio y se conectan a cualquier proveedor:

  • OpenCode — open source, con acceso a más de 75 proveedores de modelos vía Models.dev, incluyendo modelos locales. Soporta múltiples sesiones en paralelo sobre el mismo proyecto.
  • Command Code — enfocado en hacer funcionar bien los modelos abiertos: DeepSeek, Kimi, GLM, Qwen y MiniMax, con más de 50 modelos disponibles y planes desde precios muy bajos.
  • Pi — el minimalista del grupo: cuatro herramientas activas por defecto (read, write, edit, bash) y más de 15 proveedores integrados. Se instala con npm install -g @earendil-works/pi-coding-agent.

Aquí sí puedes orquestar mezclando proveedores: planificar con un modelo caro, ejecutar con uno chino barato, revisar con otro. Y si ya pagas suscripciones de Claude y GPT, las interfaces tipo Herdr u Orca te permiten exprimirlas todas al mismo tiempo en lugar de dejar una ociosa.

Conclusión

La mensajería entre sesiones no inventa nada nuevo conceptualmente, pero baja muchísimo la barrera: no instalas nada, no configuras nada, solo nombras tus sesiones y empiezas a delegar.

Mi flujo actual: media hora o una hora armando una planificación grande, y recién ahí abro sesiones y delego. Si los tokens no alcanzan, la misma tarea se va a un modelo más barato en otra terminal.

Si pagas una suscripción de $100 o $200, esto lo aprovechas muchísimo. Con la de $20, en mi opinión, estás básicamente en el trial de Claude Code, y ahí tiene más sentido mirar OpenCode o Command Code.

Próximamente: llevo unas semanas probando enfoques de code review con IA, que es el cuello de botella natural cuando avanzas varios proyectos a la vez. Va a ser el tema del siguiente video.

¿Dudas o sugerencias? Déjamelas en los comentarios. Y si necesitas ayuda con tu arquitectura o tu flujo de trabajo con agentes, puedes reservar una asesoría personalizada en fazt.dev.

Preguntas frecuentes

¿Necesito instalar algo para enviar mensajes entre sesiones de Claude Code? No. Si tienes v2.1.224 o superior en macOS, Linux o WSL 2 (v2.1.234 en Windows nativo), ya está activo. Verifícalo con /list-agents.

¿Los mensajes entre sesiones pasan por internet? Entre sesiones de la misma máquina, no: viajan por un socket local. Solo pasan por servidores de Anthropic cuando el destino es otra máquina tuya o una sesión en la nube.

¿Se transfiere el contexto completo de una sesión a otra? No. Solo texto plano escrito por Claude. Para mover el contexto entero, retoma la sesión con --resume.

¿Puedo orquestar entre proyectos distintos? Sí, y es el caso más útil. Las sesiones son independientes, así que una sesión en el frontend puede pedirle un cambio a la sesión del backend o de otro repo.

¿Esto reemplaza a Herdr o a Orca? No. Herdr y Orca resuelven persistencia, visibilidad y gestión de muchas sesiones. La mensajería resuelve la comunicación. Funcionan mejor juntos.