Restauration de session

cmux enregistre la forme de votre travail pour que la relance de l'app retrouve les mêmes fenêtres, workspaces, panneaux, contexte de terminal et état du navigateur.

Ce que cmux restaure

Après relance, cmux restaure la disposition et les métadonnées appartenant à l'app :

  • Disposition des fenêtres, workspaces et panneaux
  • Répertoires de travail
  • Scrollback du terminal, best effort
  • URL du navigateur et historique de navigation
cmux ne checkpoint pas l'état arbitraire des processus actifs. tmux, vim, les shells et les apps de terminal non prises en charge rouvrent comme des terminaux normaux, sauf s'ils ont leur propre intégration de reprise cmux.

Reprise des sessions d'agents

Les agents de coding IA pris en charge peuvent reprendre lorsque cmux a capturé l'ID de session natif de l'agent. Installez les hooks après le CLI de l'agent pour que son binaire soit sur 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 installe toutes les intégrations prises en charge qu'il trouve et affiche un résumé des agents ignorés. Utilisez le nom d'un agent si vous ne voulez qu'une intégration.

Commandes personnalisées de reprise de surface

Les utilisateurs avancés et les intégrations peuvent lier toute surface de terminal à une commande de redémarrage. cmux conserve les associations créées par le CLI public ou le socket pour inspection et reprise manuelle.

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

Les préfixes approuvés peuvent être vérifiés ou modifiés dans Settings > Terminal > Resume Commands. cmux exécute automatiquement seulement les associations de reprise qu'il marque comme fiables, comme les associations tmux détectées depuis des processus actifs ou les préfixes approuvés par l’utilisateur. cmux ne checkpoint toujours pas la mémoire arbitraire des processus. Les clés d’environnement sensibles, comme les jetons, mots de passe, secrets et clés API, sont supprimées avant l’enregistrement d’une association de reprise. Les approbations sont aussi liées au répertoire de travail et aux valeurs exactes de l’environnement quand elles existent.

Agents pris en charge

AgentBinaireCommande de reprisePont de feed
Claude Codeclaudeclaude --resume <id>PermissionRequest
Codexcodexcodex resume <id>PreToolUse, PermissionRequest
Grok / Grok Build CLIgrokgrok -r <id>PreToolUse
OpenCodeopencodeopencode --session <id>bus d'événements plugin
Pipipi --session <id>aucun
OMPompomp --session <id>aucun
Ampampamp threads continue <id>aucun
Cursor CLIcursor-agentcursor-agent --resume <id>beforeShellExecution
Geminigeminigemini --resume <id>PreToolUse
Antigravity CLIagyagy --conversation <id>PreToolUse, PostToolUse
Rovo Devacliacli rovodev run --restore <id>aucun
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 est géré par le wrapper Claude de cmux lorsque l'intégration Claude est activée dans Settings. Antigravity accepte aussi agy comme alias de setup, et Rovo Dev accepte rovo.

Restauration manuelle

cmux restaure le dernier snapshot enregistré au lancement normal. Vous pouvez aussi réappliquer manuellement le snapshot précédent :

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

Désactiver la reprise automatique des agents

Pour restaurer les panneaux sans lancer les commandes de reprise d'agents enregistrées, désactivez Settings > Terminal > Resume Agent Sessions on Reopen ou définissez :

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

Cela désactive seulement les commandes de reprise des agents. cmux restaure toujours la disposition, les répertoires de travail, le scrollback et l'historique du navigateur.

Fonctionnement

  1. cmux écrit un snapshot JSON versionné dans ~/Library/Application Support/cmux/session-<bundle-id>.json, ainsi qu'un cache de session précédente pour la réouverture manuelle.
  2. Le scrollback du terminal est stocké comme texte borné et rejoué via un fichier temporaire à la restauration. C'est best effort, car les apps de terminal peuvent redessiner ou effacer leur écran.
  3. Les hooks d'agents écrivent ~/.cmuxterm/<agent>-hook-sessions.json avec l'ID de session de l'agent, l'ID de workspace cmux, l'ID de surface, le cwd, l'ID de processus si disponible et une commande de lancement assainie.
  4. À la restauration, cmux reconstruit d'abord les fenêtres et les panneaux. Si la reprise automatique des agents est activée, il lance une commande shell ponctuelle qui exécute la commande de reprise native de l'agent avec l'ID de session enregistré.

La documentation de configuration habituelle couvre cmux.json. La restauration de session garde la disposition de l'app séparée des réglages de rendu du terminal Ghostty.