Guardar y restaurar disposiciones
Por qué tus pestañas vuelven exactamente donde las dejaste, incluso después de reiniciar el servidor.
purplemux se construye sobre la idea de que cerrar una pestaña en el navegador no debería terminar una sesión. Dos piezas trabajan juntas: tmux mantiene los shells en marcha, y ~/.purplemux/workspaces.json recuerda la disposición.
Qué se persiste
Cualquier cosa visible en un espacio de trabajo:
- Las pestañas y su orden
- Las divisiones de paneles y sus proporciones
- El tipo de panel de cada pestaña — Terminal, Claude, Diff, Navegador web
- El directorio de trabajo de cada shell
- Los grupos, nombres y orden de espacios de trabajo
workspaces.json se actualiza transaccionalmente en cada cambio de disposición, así que el archivo siempre refleja el estado actual. Consulta Directorio de datos para el mapa de archivos en disco.
Cerrar el navegador
Cierra la pestaña, refresca o cierra la tapa del portátil. Nada de eso mata las sesiones.
Cada shell vive en una sesión de tmux sobre el socket dedicado purple — totalmente aislado de tu ~/.tmux.conf personal. Vuelve a abrir http://localhost:8022 una hora después y el WebSocket se reconecta a la misma sesión de tmux, reproduce el scrollback y devuelve el PTY en directo a xterm.js.
No restauras nada; te reconectas.
Recuperarse tras reiniciar el servidor
Un reinicio sí mata los procesos de tmux — son procesos del sistema operativo. purplemux gestiona esto en el siguiente arranque:
- Lee la disposición —
workspaces.jsondescribe cada espacio, panel y pestaña. - Recrea sesiones en paralelo — para cada pestaña se lanza una nueva sesión de tmux en su directorio de trabajo guardado.
- Auto-resume de Claude — las pestañas que tenían una sesión de Claude se relanzan con
claude --resume {sessionId}para continuar la conversación donde quedó.
La parte "en paralelo" importa: si tenías diez pestañas, las diez sesiones de tmux suben a la vez en lugar de una tras otra. Cuando abras el navegador, la disposición ya está ahí.
Lo que no vuelve
Hay algunas cosas que no se pueden persistir:
- Estado en memoria del shell — variables de entorno que hayas establecido, jobs en segundo plano, REPLs a medio pensar.
- Avisos de permisos en curso — si Claude estaba esperando una decisión de permiso cuando murió el servidor, verás el aviso de nuevo al reanudar.
- Procesos en primer plano distintos de
claude— buffers devim,htop,docker logs -f. El shell vuelve al mismo directorio; el proceso no.
Es el contrato estándar de tmux: el shell sobrevive, los procesos dentro de él no necesariamente.
Control manual
Normalmente no necesitas tocar esto, pero por si acaso:
- El socket de tmux se llama
purple. Inspecciónalo contmux -L purple ls. - Las sesiones se llaman
pt-{workspaceId}-{paneId}-{tabId}. - Editar
workspaces.jsonmientras purplemux corre no es seguro — el servidor lo tiene abierto y escribe a través de él.
Para la historia más profunda (protocolo binario, backpressure, vigilancia de JSONL) consulta Cómo funciona en la página principal.
Siguientes pasos
- Espacios de trabajo y grupos — qué se guarda por espacio.
- Pestañas y paneles — qué se guarda por pestaña.
- Compatibilidad de navegadores — particularidades conocidas con pestañas móviles en segundo plano y reconexiones.