Restauración de sesión

cmux guarda la forma de tu trabajo para que al relanzar la app vuelvan las mismas ventanas, workspaces, paneles, contexto de terminal y estado del navegador.

Qué restaura cmux

Después de relanzar, cmux restaura layout y metadatos propios de la app:

  • Layout de ventanas, workspaces y paneles
  • Directorios de trabajo
  • Scrollback de terminal, best effort
  • URL del navegador e historial de navegación
cmux no checkpointa estado arbitrario de procesos vivos. tmux, vim, shells y apps de terminal no compatibles se reabren como terminales normales salvo que tengan su propia integración de resume de cmux.

Reanudación de sesiones de agentes

Los agentes de coding con IA compatibles pueden reanudarse cuando cmux ha capturado el ID de sesión nativo del agente. Instala hooks después de instalar el CLI del agente para que su binario esté en PATH:

cmux hooks setup
cmux hooks setup codex
cmux hooks setup grok
cmux hooks setup antigravity
cmux hooks setup omp
cmux hooks setup --agent opencode

cmux hooks setup instala todas las integraciones compatibles que encuentra e imprime un resumen de los agentes omitidos. Usa el nombre de un agente cuando solo quieras una integración.

Comandos personalizados de resume de surface

Los usuarios avanzados e integraciones pueden vincular cualquier surface de terminal a un comando de reinicio. cmux guarda las asociaciones creadas por el CLI público o el socket para inspección y reanudación manual.

cmux surface resume set --kind tmux --checkpoint work --shell "tmux attach -t work"
cmux surface resume show --json
cmux surface resume clear --checkpoint work

Los prefijos aprobados se pueden revisar o editar en Settings > Terminal > Resume Commands. cmux solo ejecuta automáticamente las asociaciones de resume que marca como confiables, como las de tmux detectadas desde procesos activos o prefijos aprobados por el usuario. cmux sigue sin checkpointar memoria arbitraria de procesos. Las claves de entorno sensibles, como tokens, contraseñas, secretos y claves de API, se descartan antes de guardar una asociación de reanudación. Las aprobaciones también se vinculan al directorio de trabajo y a los valores exactos del entorno cuando existen.

Agentes compatibles

AgenteBinarioComando de resumePuente de feed
Claude Codeclaudeclaude --resume <id>PermissionRequest
Codexcodexcodex resume <id>PreToolUse, PermissionRequest
Grok / Grok Build CLIgrokgrok -r <id>PreToolUse
OpenCodeopencodeopencode --session <id>bus de eventos de plugin
Pipipi --session <id>ninguno
OMPompomp --session <id>ninguno
Ampampamp threads continue <id>ninguno
Cursor CLIcursor-agentcursor-agent --resume <id>beforeShellExecution
Geminigeminigemini --resume <id>PreToolUse
Antigravity CLIagyagy --conversation <id>PreToolUse, PostToolUse
Rovo Devacliacli rovodev run --restore <id>ninguno
Hermes Agenthermeshermes --resume <id>pre_tool_call, post_tool_call, pre_approval_request, post_approval_response
Copilotcopilotcopilot --resume <id>PreToolUse
CodeBuddycodebuddycodebuddy --resume <id>PreToolUse
Factorydroiddroid --resume <id>PreToolUse
Qoderqodercliqodercli --resume <id>PreToolUse

Claude Code lo maneja el wrapper de Claude de cmux cuando la integración de Claude está activada en Settings. Antigravity también acepta agy como alias de setup, y Rovo Dev acepta rovo.

Restauración manual

cmux restaura el último snapshot guardado en un arranque normal. También puedes reaplicar manualmente el snapshot anterior:

  • History > Restore Previous App Launch
  • ⌘ ⇧ O
  • cmux restore-session

Desactivar la reanudación automática de agentes

Para restaurar paneles sin lanzar comandos de resume de agentes guardados, desactiva Settings > Terminal > Resume Agent Sessions on Reopen o configura:

~/.config/cmux/cmux.json
{
  "terminal": {
    "autoResumeAgentSessions": false
  }
}

Esto solo desactiva los comandos de resume de agentes. cmux sigue restaurando layout, directorios de trabajo, scrollback e historial del navegador.

Cómo funciona

  1. cmux escribe un snapshot JSON versionado en ~/Library/Application Support/cmux/session-<bundle-id>.json, además de una caché de sesión anterior para reapertura manual.
  2. El scrollback de terminal se guarda como texto acotado y se reproduce mediante un archivo temporal al restaurar. Es best effort porque las apps de terminal pueden redibujar o limpiar su pantalla.
  3. Los agent hooks escriben ~/.cmuxterm/<agent>-hook-sessions.json con el ID de sesión del agente, ID de workspace de cmux, ID de surface, cwd, ID de proceso cuando está disponible y un comando de lanzamiento sanitizado.
  4. Al restaurar, cmux reconstruye primero ventanas y paneles. Si la reanudación automática de agentes está activada, lanza un comando shell de una sola ejecución que ejecuta el comando nativo de resume del agente con el ID de sesión guardado.

La documentación de configuración normal cubre cmux.json. La restauración de sesión mantiene el layout de la app separado de la configuración de renderizado de terminal de Ghostty.