Восстановление сессии

cmux сохраняет форму вашей работы, чтобы после перезапуска приложения вернуть те же окна, рабочие пространства, панели, контекст терминала и состояние браузера.

Что восстанавливает cmux

После перезапуска cmux восстанавливает layout и метаданные, принадлежащие приложению:

  • Layout окон, рабочих пространств и панелей
  • Рабочие каталоги
  • Terminal scrollback, best effort
  • URL браузера и историю навигации
cmux не checkpoint-ит произвольное состояние живых процессов. tmux, vim, shell и неподдерживаемые терминальные приложения открываются как обычные терминалы, если у них нет собственной cmux resume-интеграции.

Возобновление сессий агентов

Поддерживаемые AI coding agents могут возобновляться, когда cmux захватил native session ID агента. Установите hooks после установки agent CLI, чтобы бинарь был в 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 устанавливает все найденные поддерживаемые интеграции и печатает сводку пропущенных агентов. Используйте имя агента, если нужна только одна интеграция.

Пользовательские команды surface resume

Опытные пользователи и интеграции могут привязать любую terminal surface к команде перезапуска. cmux сохраняет привязки, созданные публичным CLI или socket, для проверки и ручного возобновления.

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

Одобренные префиксы можно просмотреть или изменить в Settings > Terminal > Resume Commands. cmux автоматически запускает только привязки resume, помеченные как доверенные, например tmux-привязки, обнаруженные из живых процессов, или префиксы, одобренные пользователем. cmux по-прежнему не checkpoint-ит произвольную память процессов. Чувствительные ключи окружения, такие как токены, пароли, секреты и API-ключи, отбрасываются перед сохранением привязки возобновления. Одобрения также привязаны к рабочему каталогу и точным значениям окружения, если они есть.

Поддерживаемые агенты

АгентБинарьКоманда resumeFeed bridge
Claude Codeclaudeclaude --resume <id>PermissionRequest
Codexcodexcodex resume <id>PreToolUse, PermissionRequest
Grok / Grok Build CLIgrokgrok -r <id>PreToolUse
OpenCodeopencodeopencode --session <id>plugin event bus
Pipipi --session <id>нет
OMPompomp --session <id>нет
Ampampamp threads continue <id>нет
Cursor CLIcursor-agentcursor-agent --resume <id>beforeShellExecution
Geminigeminigemini --resume <id>PreToolUse
Antigravity CLIagyagy --conversation <id>PreToolUse, PostToolUse
Rovo Devacliacli rovodev run --restore <id>нет
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 обрабатывается wrapper-ом cmux Claude, когда интеграция Claude включена в Settings. Antigravity также принимает agy как alias для setup, а Rovo Dev принимает rovo.

Ручное восстановление

cmux восстанавливает последний сохраненный snapshot при обычном запуске. Предыдущий snapshot также можно применить вручную:

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

Отключить автоматическое возобновление агентов

Чтобы восстановить панели без запуска сохраненных agent resume-команд, отключите Settings > Terminal > Resume Agent Sessions on Reopen или задайте:

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

Это отключает только команды resume агентов. cmux всё равно восстанавливает layout, рабочие каталоги, scrollback и историю браузера.

Как это работает

  1. cmux записывает версионированный JSON snapshot в ~/Library/Application Support/cmux/session-<bundle-id>.json, а также cache предыдущей сессии для ручного открытия.
  2. Terminal scrollback хранится как ограниченный текст и при восстановлении проигрывается через временный файл. Это best effort, потому что терминальные приложения могут перерисовать или очистить экран.
  3. Agent hooks записывают ~/.cmuxterm/<agent>-hook-sessions.json с session ID агента, cmux workspace ID, surface ID, cwd, process ID при наличии и очищенной командой запуска.
  4. При восстановлении cmux сначала перестраивает окна и панели. Если автоматическое возобновление агентов включено, он запускает одноразовую shell-команду, которая выполняет native resume-команду агента с сохраненным session ID.

Обычная документация по конфигурации описывает cmux.json. Восстановление сессии хранит layout приложения отдельно от настроек рендеринга терминала Ghostty.