Qué es y por qué importa
Cada ventana de Claude Code es una sesión, con su propia cabeza. Tiene su propia conversación y solo sabe lo que le has dicho ahí dentro. Si abres dos, de entrada no saben nada la una de la otra.
El problema es que el mensajero acabas siendo tú. Una sesión cambia el nombre de un campo en la app, tú copias, pegas en la otra ventana, vuelves a explicarlo todo y a lo mejor se te olvida algo. Con dos trabajos en paralelo pasa todo el rato.
Claude Code tiene una función justo para esto: los mensajes entre sesiones. Una sesión puede ver las demás abiertas en tu ordenador y mandarle a una de ellas un mensaje de texto. La que lo recibe lo lee y sigue trabajando teniéndolo en cuenta.
Por qué importa: puedes repartir el trabajo como lo repartirías entre dos personas. En una haces construir algo, en la otra le pides que revise lo que está haciendo la primera. O una trabaja en la app y la otra en la web, y cuando la primera termina avisa a la segunda. Tú sigues siendo quien decide, no el cartero.
Cómo se activa
Abre dos sesiones de Claude Code en el mismo ordenador, una por trabajo (p. ej. una en la carpeta de la app y otra en la de la web).
No hay nada que encender: si Claude Code está actualizado, los mensajes entre sesiones ya funcionan.
Claude tiene dos herramientas para esto: una para ver las otras sesiones abiertas (ListAgents) y otra para mandar un mensaje a una de ellas (SendMessage). No tienes que escribir comandos: se lo pides en español, sin más, tipo «manda un mensaje a la sesión de la web». A veces Claude incluso manda uno por su cuenta, cuando se da cuenta de que uno de sus cambios afecta al trabajo de la otra sesión.
Ponle nombre a cada sesión
Las sesiones se encuentran por su nombre. Claude Code elige uno por su cuenta, pero es más cómodo que lo decidas tú, así siempre sabes cuál es cuál.
- En la ventana de la app escribe /rename app. El nombre aparece en la barra donde escribes.
- En la ventana de la web escribe /rename web.
- En cualquiera de las dos escribe /list-agents: ves las sesiones a las que Claude puede llegar, con el nombre que hay que usar para cada una.
Cuando le escribes a Claude también puedes teclear @ y las primeras letras del nombre, tipo @web, y elegir la sesión en el menú. Así sabe exactamente a quién mandar el mensaje.
Si tu Claude Code no ve las otras sesiones, actualízalo a la última versión y vuelve a probar. La comprobación más rápida: si no reconoce /list-agents, tu versión todavía no tiene esta función.
Las tres formas en que lo uso cada día
1. Uno construye, el otro revisa
En la sesión 1 hago construir la función. En la sesión 2 escribo:
Mira lo que está haciendo la sesión 1. Lee los cambios que ha hecho, intenta romperlos, y si encuentras un error escríbeselo a ella y a mí. No toques los archivos.
La parte que importa es «No toques los archivos». La que revisa lee, prueba y avisa, pero no corrige. Si corrigieran las dos, acabarían tocando las mismas cosas y ya no sabrías quién ha hecho qué. El error lo arregla quien lo ha cometido, en cuanto recibe el mensaje.
2. El relevo entre la app y la web
Aquí las dos sesiones trabajan en carpetas distintas, una en la app y otra en la web. En la sesión de la app escribo:
Cuando termines y los tests pasen, manda un mensaje a la sesión de la web con lo que ha cambiado (nombres de los campos, direcciones, textos), para que actualice sus páginas.
El mensaje es solo texto. La otra sesión no ve la conversación ni los archivos de la primera: lee lo que le escriben. Por eso pido cosas concretas, como nombres de los campos, direcciones y textos, y no un genérico «he cambiado algunas cosas».
No tienes que estar ahí haciendo de despertador. Si la sesión de la web está parada, el mensaje la pone en marcha otra vez. Si está trabajando, lo lee en cuanto termina el paso que está haciendo, sin que la corten a medias.
3. Una busca, la otra decide
En la sesión 1:
Busca en el proyecto todos los sitios donde se gestiona el login y manda la lista a la sesión 2.
En la sesión 2:
Espera la lista de la sesión 1 y luego propón un plan en 5 puntos. No escribas código hasta que yo diga ok.
Así la sesión que decide se mantiene limpia: no se llena de archivos leídos y resultados de búsqueda, solo recibe la lista. Y ese «No escribas código hasta que yo diga ok» te deja a ti la última palabra sobre el plan.
Extra: haz que te avisen cuando la otra termine
Si estás esperando un trabajo largo en otra sesión, no hace falta ir a mirar cada cinco minutos. En la sesión en la que estás escribe:
Avísame cuando la sesión de la app haya terminado lo que está haciendo.
Claude le pide a la otra sesión que mande un aviso cuando se pare, y te lo trae justo donde estás.
La regla de oro
Una sesión, un trabajo. Dos sesiones con el mismo archivo se pisan: si tienen que tocar los mismos archivos, usa una copia del proyecto para cada una (se llaman worktrees, hablo de ellos en otro vídeo).
Un worktree es una copia del proyecto en su propia carpeta, con su propia rama. Cada sesión modifica su copia y no toca la de las demás. Hace falta que el proyecto esté en git.
Para crearlo basta con pedirlo, lo primero de todo en la sesión:
Trabaja en un worktree nuevo llamado [nombre]. No toques el proyecto principal.
Desde la terminal también puedes abrir la sesión ya dentro de una copia, con claude --worktree seguido del nombre. Y los mensajes sirven justo para esto: cuando una sesión termina su parte, avisa a las demás de lo que ha cambiado.
Errores comunes
- Dos sesiones que modifican los mismos archivos en la misma carpeta: dale a cada una su worktree, o deja que escriba solo una de las dos.
- Pedirle a la sesión que revisa que arregle los errores: pídele que los señale, y que los corrija la sesión que escribió el código.
- Mensajes vagos tipo «he cambiado algunas cosas»: pídele a Claude que escriba qué ha cambiado con nombres exactos, porque la otra sesión solo ve ese texto.
- Sesiones sin un nombre claro: ponle a cada una un nombre con /rename antes de empezar, así no le escribes a la equivocada.
- Pensar que un mensaje puede decir que sí por ti: un mensaje de otra sesión no aprueba nada, las peticiones de permiso te llegan igualmente a ti.
- Echarle la culpa a Claude si no encuentra la otra sesión: prueba /list-agents y, si no lo reconoce, actualiza Claude Code.
Lista de comprobación
- Dos sesiones abiertas, una por trabajo
- Cada sesión tiene un nombre, puesto con /rename
- /list-agents muestra la otra sesión
- La sesión que revisa tiene orden de no tocar los archivos
- Cada mensaje dice qué ha cambiado, con nombres exactos
- Si tocan los mismos archivos, un worktree para cada una
Preguntas frecuentes
¿Las dos sesiones comparten la memoria?
No. El mensaje es un texto que una le escribe a la otra, sin la conversación y sin los archivos. Si necesitas una conversación entera, retoma esa sesión en lugar de pasarla a trozos con mensajes.
¿Pueden seguir escribiéndose hasta el infinito?
No. Claude Code limita los mensajes repetidos entre dos sesiones, así que un ida y vuelta sin fin se para solo. Aun así, yo siempre doy una tarea clara y un punto en el que parar.
¿Qué diferencia hay con los subagentes?
Un subagente trabaja dentro de tu sesión, hace una parte del trabajo y le devuelve un resumen. Aquí en cambio son dos sesiones de verdad, abiertas por ti, cada una con su ventana y su trabajo, que se escriben cuando hace falta.
Me aparece una petición para aprobar un mensaje. ¿Es normal?
Sí. Pasa sobre todo cuando la sesión que recibe trabaja sin pedirte permisos: en ese caso Claude Code retiene los mensajes que llegan y te pregunta antes a ti. Si lo apruebas, el mensaje llega.