> ## Documentation Index
> Fetch the complete documentation index at: https://docs2.openclaw.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Миграция

# `openclaw migrate`

Импортируйте состояние из другой агентной системы через поставщика миграции, принадлежащего плагину. Встроенные поставщики поддерживают состояние Codex CLI, [Claude](/ru/install/migrating-claude) и [Hermes](/ru/install/migrating-hermes); сторонние плагины могут регистрировать дополнительных поставщиков.

<Tip>
  Пошаговые руководства для пользователей см. в разделах [Миграция с Claude](/ru/install/migrating-claude) и [Миграция с Hermes](/ru/install/migrating-hermes). [Центр миграции](/ru/install/migrating) перечисляет все пути.
</Tip>

## Команды

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
openclaw migrate list
openclaw migrate claude --dry-run
openclaw migrate codex --dry-run
openclaw migrate codex --skill gog-vault77-google-workspace
openclaw migrate codex --plugin google-calendar --dry-run
openclaw migrate codex --plugin google-calendar --verify-plugin-apps --dry-run
openclaw migrate hermes --dry-run
openclaw migrate hermes
openclaw migrate apply codex --yes --skill gog-vault77-google-workspace
openclaw migrate apply codex --yes --plugin google-calendar
openclaw migrate apply codex --yes
openclaw migrate apply claude --yes
openclaw migrate apply hermes --yes
openclaw migrate apply hermes --include-secrets --yes
openclaw onboard --flow import
openclaw onboard --import-from claude --import-source ~/.claude
openclaw onboard --import-from hermes --import-source ~/.hermes
```

<ParamField path="<provider>" type="string">
  Имя зарегистрированного поставщика миграции, например `hermes`. Выполните `openclaw migrate list`, чтобы увидеть установленных поставщиков.
</ParamField>

<ParamField path="--dry-run" type="boolean">
  Построить план и выйти без изменения состояния.
</ParamField>

<ParamField path="--from <path>" type="string">
  Переопределить исходный каталог состояния. Для Hermes по умолчанию используется `~/.hermes`.
</ParamField>

<ParamField path="--include-secrets" type="boolean">
  Импортировать поддерживаемые учетные данные без запроса. Интерактивное применение спрашивает перед импортом обнаруженных учетных данных аутентификации, при этом по умолчанию выбран ответ «да»; неинтерактивный `--yes` требует `--include-secrets` для их импорта.
</ParamField>

<ParamField path="--no-auth-credentials" type="boolean">
  Пропустить импорт учетных данных аутентификации, включая интерактивный запрос.
</ParamField>

<ParamField path="--overwrite" type="boolean">
  Разрешить применению заменять существующие цели, когда план сообщает о конфликтах.
</ParamField>

<ParamField path="--yes" type="boolean">
  Пропустить запрос подтверждения. Требуется в неинтерактивном режиме.
</ParamField>

<ParamField path="--skill <name>" type="string">
  Выбрать один элемент копирования Skills по имени Skills или идентификатору элемента. Повторите флаг, чтобы перенести несколько Skills. Если флаг не указан, интерактивные миграции Codex показывают селектор с флажками, а неинтерактивные миграции сохраняют все запланированные Skills.
</ParamField>

<ParamField path="--plugin <name>" type="string">
  Выбрать один элемент установки плагина Codex по имени плагина или идентификатору элемента. Повторите флаг, чтобы перенести несколько плагинов Codex. Если флаг не указан, интерактивные миграции Codex показывают нативный селектор плагинов Codex с флажками, а неинтерактивные миграции сохраняют все запланированные плагины. Это относится только к установленным в источнике плагинам Codex `openai-curated`, обнаруженным инвентаризацией app-server Codex.
</ParamField>

<ParamField path="--verify-plugin-apps" type="boolean">
  Только Codex. Принудительно выполнить свежий обход исходного app-server Codex `app/list` перед планированием активации нативного плагина. По умолчанию отключено, чтобы планирование миграции оставалось быстрым.
</ParamField>

<ParamField path="--no-backup" type="boolean">
  Пропустить резервное копирование перед применением. Требует `--force`, когда существует локальное состояние OpenClaw.
</ParamField>

<ParamField path="--force" type="boolean">
  Требуется вместе с `--no-backup`, когда применение иначе отказалось бы пропустить резервное копирование.
</ParamField>

<ParamField path="--json" type="boolean">
  Напечатать план или результат применения как JSON. С `--json` и без `--yes` применение печатает план и не изменяет состояние.
</ParamField>

## Модель безопасности

`openclaw migrate` сначала выполняет предварительный просмотр.

<AccordionGroup>
  <Accordion title="Предварительный просмотр перед применением">
    Поставщик возвращает детализированный план до любых изменений, включая конфликты, пропущенные элементы и чувствительные элементы. Планы JSON, вывод применения и отчеты миграции редактируют вложенные ключи, похожие на секреты, такие как ключи API, токены, заголовки авторизации, cookies и пароли.

    `openclaw migrate apply <provider>` предварительно показывает план и запрашивает подтверждение перед изменением состояния, если не установлен `--yes`. В неинтерактивном режиме применение требует `--yes`.
  </Accordion>

  <Accordion title="Резервные копии">
    Применение создает и проверяет резервную копию OpenClaw перед применением миграции. Если локального состояния OpenClaw еще нет, шаг резервного копирования пропускается, и миграция может продолжиться. Чтобы пропустить резервное копирование при существующем состоянии, передайте одновременно `--no-backup` и `--force`.
  </Accordion>

  <Accordion title="Конфликты">
    Применение отказывается продолжать, когда в плане есть конфликты. Проверьте план, затем повторно запустите с `--overwrite`, если замена существующих целей намеренная. Поставщики все еще могут записывать резервные копии на уровне элементов для перезаписанных файлов в каталог отчета миграции.
  </Accordion>

  <Accordion title="Секреты">
    Интерактивное применение спрашивает, импортировать ли обнаруженные учетные данные аутентификации, при этом по умолчанию выбран ответ «да». Используйте `--no-auth-credentials`, чтобы пропустить их, или `--include-secrets` для автоматического импорта учетных данных с `--yes`.
  </Accordion>
</AccordionGroup>

## Поставщик Claude

Встроенный поставщик Claude по умолчанию обнаруживает состояние Claude Code в `~/.claude`. Используйте `--from <path>`, чтобы импортировать конкретный домашний каталог Claude Code или корень проекта.

<Tip>
  Пошаговое руководство для пользователей см. в разделе [Миграция с Claude](/ru/install/migrating-claude).
</Tip>

### Что импортирует Claude

* Проектные `CLAUDE.md` и `.claude/CLAUDE.md` в рабочую область агента OpenClaw.
* Пользовательский `~/.claude/CLAUDE.md`, добавленный в рабочий `USER.md`.
* Определения серверов MCP из проектного `.mcp.json`, Claude Code `~/.claude.json` и Claude Desktop `claude_desktop_config.json`.
* Каталоги Skills Claude, которые включают `SKILL.md`.
* Markdown-файлы команд Claude, преобразованные в Skills OpenClaw только с ручным вызовом.

### Архив и состояние для ручной проверки

Хуки Claude, разрешения, значения среды по умолчанию, локальная память, правила, ограниченные путями, субагенты, кеши, планы и история проекта сохраняются в отчете миграции или сообщаются как элементы для ручной проверки. OpenClaw не выполняет хуки, не копирует широкие списки разрешений и не импортирует состояние учетных данных OAuth/Desktop автоматически.

## Поставщик Codex

Встроенный поставщик Codex по умолчанию обнаруживает состояние Codex CLI в `~/.codex` или
в `CODEX_HOME`, когда установлена эта переменная среды. Используйте `--from <path>`, чтобы
инвентаризировать конкретный домашний каталог Codex.

Используйте этого поставщика при переходе на обвязку OpenClaw Codex, если вы хотите
осознанно продвинуть полезные личные ресурсы Codex CLI. Локальные запуски app-server Codex
используют отдельный для агента `CODEX_HOME`, поэтому по умолчанию они не читают ваш личный
`~/.codex`. Обычный процесс `HOME` все еще наследуется, поэтому Codex
может видеть общие `$HOME/.agents/*` записи Skills/маркетплейса плагинов, а
подпроцессы могут находить конфигурацию и токены в домашнем каталоге пользователя.

Запуск `openclaw migrate codex` в интерактивном терминале предварительно показывает полный
план, затем открывает селекторы с флажками перед финальным подтверждением применения. Сначала
запрашиваются элементы копирования Skills. Используйте `Toggle all on` или `Toggle all off` для массового
выбора. Нажмите Space, чтобы переключать строки, или нажмите Enter, чтобы активировать выделенную
строку и продолжить. Запланированные Skills изначально отмечены, конфликтующие Skills изначально не отмечены, а
`Skip for now` пропускает копирование Skills для этого запуска, продолжая выбор плагинов.
Когда установленные в источнике курируемые плагины Codex можно перенести и
`--plugin` не был передан, миграция затем запрашивает активацию нативного плагина Codex
по имени плагина. Элементы плагинов
изначально отмечены, если целевая конфигурация плагина OpenClaw Codex еще не содержит этот
плагин. Существующие целевые плагины изначально не отмечены и показывают подсказку конфликта, такую как
`conflict: plugin exists`; выберите `Toggle all off`, чтобы не переносить нативные плагины Codex
в этом запуске, или `Skip for now`, чтобы остановиться перед применением. Для скриптовых или
точных запусков передайте `--skill <name>` один раз для каждого Skills, например:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
openclaw migrate codex --dry-run --skill gog-vault77-google-workspace
openclaw migrate apply codex --yes --skill gog-vault77-google-workspace
```

Используйте `--plugin <name>`, чтобы неинтерактивно ограничить миграцию нативных плагинов Codex
одним или несколькими установленными в источнике курируемыми плагинами:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
openclaw migrate codex --dry-run --plugin google-calendar
openclaw migrate apply codex --yes --plugin google-calendar
```

### Что импортирует Codex

* Каталоги Skills Codex CLI в `$CODEX_HOME/skills`, исключая кеш Codex
  `.system`.
* Личные AgentSkills в `$HOME/.agents/skills`, скопированные в текущую
  рабочую область агента OpenClaw, когда требуется владение на уровне агента.
* Установленные в источнике плагины Codex `openai-curated`, обнаруженные через Codex
  app-server `plugin/list`. Планирование читает `plugin/read` для каждого включенного
  установленного плагина. Плагины с привязкой к приложению требуют, чтобы ответ учетной записи исходного app-server Codex
  был учетной записью подписки ChatGPT; ответы с учетными записями не ChatGPT или отсутствующие
  ответы учетной записи пропускаются с `codex_subscription_required`. По умолчанию
  миграция не вызывает исходный `app/list`, поэтому плагины с привязкой к приложению, прошедшие
  проверку учетной записи, планируются без проверки доступности исходного приложения, а
  транспортные сбои поиска учетной записи пропускаются с `codex_account_unavailable`. Передайте
  `--verify-plugin-apps`, когда хотите, чтобы миграция принудительно получила свежий снимок исходного
  `app/list` и требовала, чтобы каждое принадлежащее приложение присутствовало, было включено и
  доступно перед планированием нативной активации. В этом режиме транспортные сбои
  поиска учетной записи переходят к проверке инвентаризации исходных приложений. Снимок
  инвентаризации исходных приложений хранится в памяти для текущего процесса; он
  не записывается в вывод миграции или целевую конфигурацию. Отключенные плагины,
  нечитаемые сведения о плагинах, исходные учетные записи с ограничением по подписке и, когда
  запрошена проверка, отсутствующие приложения, отключенные приложения, недоступные приложения или
  сбои инвентаризации исходных приложений становятся вручную пропущенными элементами с типизированными причинами
  вместо записей целевой конфигурации.
  Применение вызывает app-server `plugin/install` для каждого выбранного подходящего плагина,
  даже если целевой app-server уже сообщает, что этот плагин установлен и
  включен. Перенесенные плагины Codex можно использовать только в сеансах, которые выбирают
  нативную обвязку Codex; они не доступны запускам поставщика OpenClaw,
  привязкам бесед ACP или другим обвязкам.

### Состояние Codex для ручной проверки

Codex `config.toml`, нативные `hooks/hooks.json`, некурируемые маркетплейсы, кешированные
наборы плагинов, которые не являются установленными в источнике курируемыми плагинами, и установленные в источнике
плагины, не прошедшие проверку исходной подписки, не активируются автоматически.
Когда установлен `--verify-plugin-apps`, плагины, не прошедшие проверку инвентаризации исходных приложений,
также пропускаются. Они копируются или указываются в отчете миграции для
ручной проверки.

Для перенесенных установленных в источнике курируемых плагинов применение записывает:

* `plugins.entries.codex.enabled: true`
* `plugins.entries.codex.config.codexPlugins.enabled: true`
* `plugins.entries.codex.config.codexPlugins.allow_destructive_actions: true`
* одну явную запись плагина с `marketplaceName: "openai-curated"` и
  `pluginName` для каждого выбранного плагина

Миграция никогда не записывает `plugins["*"]` и никогда не сохраняет пути локального кэша маркетплейса. Сбои подписки на стороне источника сообщаются для ручных элементов с типизированными причинами, такими как `codex_subscription_required`, `codex_account_unavailable`, `plugin_disabled` или `plugin_read_unavailable`. С `--verify-plugin-apps` сбои инвентаря приложений источника также могут отображаться как `app_inaccessible`, `app_disabled`, `app_missing` или `app_inventory_unavailable`. Пропущенные плагины не записываются в целевую конфигурацию.
Установки на стороне цели, требующие авторизации, сообщаются для затронутого элемента плагина с `status: "skipped"`, `reason: "auth_required"` и очищенными идентификаторами приложений. Их явные записи конфигурации записываются отключенными, пока вы повторно не авторизуете и не включите их. Остальные сбои установки являются результатами `error`, ограниченными конкретным элементом.

Если инвентарь плагинов сервера приложений Codex недоступен во время планирования, миграция возвращается к кэшированным рекомендательным элементам пакета вместо сбоя всей миграции.

## Провайдер Hermes

Встроенный провайдер Hermes по умолчанию обнаруживает состояние в `~/.hermes`. Используйте `--from <path>`, если Hermes находится в другом месте.

### Что импортирует Hermes

* Конфигурацию модели по умолчанию из `config.yaml`.
* Настроенных провайдеров моделей и пользовательские OpenAI-совместимые конечные точки из `providers` и `custom_providers`.
* Определения серверов MCP из `mcp_servers` или `mcp.servers`.
* `SOUL.md` и `AGENTS.md` в рабочую область агента OpenClaw.
* `memories/MEMORY.md` и `memories/USER.md`, добавленные в файлы памяти рабочей области.
* Значения памяти по умолчанию для файловой памяти OpenClaw, а также архивные элементы или элементы ручной проверки для внешних провайдеров памяти, таких как Honcho.
* Skills, которые включают файл `SKILL.md` в `skills/<name>/`.
* Значения конфигурации для отдельных Skills из `skills.config`.
* Учетные данные OpenCode OpenAI OAuth из OpenCode `auth.json`, когда принята интерактивная миграция учетных данных или задан `--include-secrets`. Записи OAuth в Hermes `auth.json` являются устаревшим состоянием, сообщаемым для ручной повторной авторизации OpenAI или исправления через doctor.
* Поддерживаемые ключи API и токены из Hermes `.env` и OpenCode `auth.json`, когда принята интерактивная миграция учетных данных или задан `--include-secrets`.

### Поддерживаемые ключи `.env`

* `AI_GATEWAY_API_KEY`
* `ALIBABA_API_KEY`
* `ANTHROPIC_API_KEY`
* `ARCEEAI_API_KEY`
* `CEREBRAS_API_KEY`
* `CHUTES_API_KEY`
* `CLOUDFLARE_AI_GATEWAY_API_KEY`
* `COPILOT_GITHUB_TOKEN`
* `DASHSCOPE_API_KEY`
* `DEEPINFRA_API_KEY`
* `DEEPSEEK_API_KEY`
* `FIREWORKS_API_KEY`
* `GEMINI_API_KEY`
* `GH_TOKEN`
* `GITHUB_TOKEN`
* `GLM_API_KEY`
* `GOOGLE_API_KEY`
* `GROQ_API_KEY`
* `HF_TOKEN`
* `HUGGINGFACE_HUB_TOKEN`
* `KILOCODE_API_KEY`
* `KIMICODE_API_KEY`
* `KIMI_API_KEY`
* `MINIMAX_API_KEY`
* `MINIMAX_CODING_API_KEY`
* `MISTRAL_API_KEY`
* `MODELSTUDIO_API_KEY`
* `MOONSHOT_API_KEY`
* `NVIDIA_API_KEY`
* `OPENAI_API_KEY`
* `OPENCODE_API_KEY`
* `OPENCODE_GO_API_KEY`
* `OPENCODE_ZEN_API_KEY`
* `OPENROUTER_API_KEY`
* `QIANFAN_API_KEY`
* `QWEN_API_KEY`
* `TOGETHER_API_KEY`
* `VENICE_API_KEY`
* `XAI_API_KEY`
* `XIAOMI_API_KEY`
* `ZAI_API_KEY`
* `Z_AI_API_KEY`

### Состояние только для архива

Состояние Hermes, которое OpenClaw не может безопасно интерпретировать, копируется в отчет о миграции для ручной проверки, но не загружается в действующую конфигурацию или учетные данные OpenClaw. Это сохраняет непрозрачное или небезопасное состояние, не создавая ложного впечатления, что OpenClaw может автоматически выполнять его или доверять ему:

* `plugins/`
* `sessions/`
* `logs/`
* `cron/`
* `mcp-tokens/`
* `state.db`

### После применения

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
openclaw doctor
```

## Контракт Plugin

Источниками миграции являются плагины. Плагин объявляет свои идентификаторы провайдеров в `openclaw.plugin.json`:

```json theme={"theme":{"light":"min-light","dark":"min-dark"}}
{
  "contracts": {
    "migrationProviders": ["hermes"]
  }
}
```

Во время выполнения плагин вызывает `api.registerMigrationProvider(...)`. Провайдер реализует `detect`, `plan` и `apply`. Ядро отвечает за оркестрацию CLI, политику резервного копирования, запросы, вывод JSON и предварительную проверку конфликтов. Ядро передает проверенный план в `apply(ctx, plan)`, а провайдеры могут пересобирать план только тогда, когда этот аргумент отсутствует для совместимости.

Плагины-провайдеры могут использовать `openclaw/plugin-sdk/migration` для создания элементов и подсчета сводных данных, а также `openclaw/plugin-sdk/migration-runtime` для учитывающего конфликты копирования файлов, копий отчетов только для архива, кэшированных оберток конфигурации времени выполнения и отчетов о миграции.

## Интеграция с онбордингом

Онбординг может предложить миграцию, когда провайдер обнаруживает известный источник. И `openclaw onboard --flow import`, и `openclaw setup --wizard --import-from hermes` используют одного и того же провайдера миграции плагина и по-прежнему показывают предварительный просмотр перед применением.

<Note>
  Для импортов при онбординге требуется новая настройка OpenClaw. Сначала сбросьте конфигурацию, учетные данные, сессии и рабочую область, если у вас уже есть локальное состояние. Импорты с резервным копированием и перезаписью или слиянием для существующих настроек доступны только через feature gate.
</Note>

## См. также

* [Миграция из Hermes](/ru/install/migrating-hermes): пользовательское пошаговое руководство.
* [Миграция из Claude](/ru/install/migrating-claude): пользовательское пошаговое руководство.
* [Миграция](/ru/install/migrating): перенос OpenClaw на новый компьютер.
* [Doctor](/ru/gateway/doctor): проверка состояния после применения миграции.
* [Плагины](/ru/tools/plugin): установка и регистрация плагинов.
