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

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:

```
# all integrations cmux can find on PATH
cmux hooks setup

# or one agent at a time
cmux hooks setup antigravity
cmux hooks setup codex
cmux hooks setup grok
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-ключи, отбрасываются перед сохранением привязки возобновления. Одобрения также привязаны к рабочему каталогу и точным значениям окружения, если они есть.

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

| Агент | Бинарь | Команда resume | Feed bridge |
| --- | --- | --- | --- |
| Claude Code | `claude` | `claude --resume <id>` | PermissionRequest |
| Codex | `codex` | `codex resume <id>` | PreToolUse, PermissionRequest |
| Grok / Grok Build CLI | `grok` | `grok -r <id>` | PreToolUse |
| OpenCode | `opencode` | `opencode --session <id>` | plugin event bus |
| Pi | `pi` | `pi --session <id>` | нет |
| OMP | `omp` | `omp --session <id>` | нет |
| Campfire | `campfire` | `campfire --session <id>` | нет |
| Amp | `amp` | `amp threads continue <id>` | нет |
| Cursor CLI | `cursor-agent` | `cursor-agent --resume <id>` | beforeShellExecution |
| Gemini | `gemini` | `gemini --resume <id>` | PreToolUse |
| Antigravity CLI | `agy` | `agy --conversation <id>` | PreToolUse, PostToolUse |
| Rovo Dev | `acli` | `acli rovodev run --restore <id>` | нет |
| Hermes Agent | `hermes` | `hermes --resume <id>` | pre\_tool\_call, post\_tool\_call, pre\_approval\_request, post\_approval\_response |
| Copilot | `copilot` | `copilot --resume <id>` | PreToolUse |
| CodeBuddy | `codebuddy` | `codebuddy --resume <id>` | PreToolUse |
| Factory | `droid` | `droid --resume <id>` | PreToolUse |
| Qoder | `qodercli` | `qodercli --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.

Обычная [документация по конфигурации](https://cmux.com/ru/docs/configuration) описывает cmux.json. Восстановление сессии хранит layout приложения отдельно от настроек рендеринга терминала Ghostty.

Canonical: https://cmux.com/ru/docs/session-restore

Documentation index: https://cmux.com/llms.txt
