openclaw migrate
Plugin が所有する移行プロバイダーを通じて、別のエージェントシステムから状態をインポートします。バンドルされたプロバイダーは Claude、Codex CLI、Hermes に対応し、Plugin は追加のプロバイダーを登録できます。
コマンド
openclaw migrate <provider> を実行すると、計画、プレビューを行い、(TTY では) 適用前に確認を求めます。openclaw migrate plan <provider> と openclaw migrate apply <provider> は、同じフラグでプレビューと適用を別々のサブコマンドに分けます。
登録済みの移行プロバイダー名。例:
hermes。インストール済みのプロバイダーを確認するには openclaw migrate list を実行します。計画を作成し、状態を変更せずに終了します。
ソース状態ディレクトリを上書きします。Hermes のデフォルトは
~/.hermes、Codex のデフォルトは ~/.codex (または $CODEX_HOME)、Claude のデフォルトは ~/.claude です。対応している認証情報を確認なしでインポートします。対話的な適用では、検出された認証情報をインポートする前に確認し、デフォルトでは yes が選択されます。非対話の
--yes でこれらをインポートするには --include-secrets が必要です。対話プロンプトを含め、認証情報のインポートをスキップします。
計画で競合が報告された場合に、適用で既存のターゲットを置き換えられるようにします。
確認プロンプトをスキップします。非対話モードでは必須です。
Skills 名または項目 ID で、コピーする Skills 項目を 1 つ選択します。複数の Skills を移行するには、このフラグを繰り返します。省略した場合、対話的な Codex 移行ではチェックボックスセレクターが表示され、非対話の移行では計画されたすべての Skills が保持されます。
Plugin 名または項目 ID で、インストールする Codex Plugin 項目を 1 つ選択します。複数の Codex Plugin を移行するには、このフラグを繰り返します。省略した場合、対話的な Codex 移行ではネイティブ Codex Plugin のチェックボックスセレクターが表示され、非対話の移行では計画されたすべての Plugin が保持されます。Codex アプリサーバーインベントリで検出された、ソースにインストール済みの
openai-curated Codex Plugin にのみ適用されます。Codex のみ。ネイティブ Plugin の有効化を計画する前に、ソース Codex アプリサーバーの
app/list トラバーサルを新たに強制します。移行計画を高速に保つため、デフォルトではオフです。移行前バックアップアーカイブのパスまたはディレクトリ。
openclaw backup create にそのまま渡されます。適用前バックアップをスキップします。ローカルの OpenClaw 状態が存在する場合は
--force が必要です。適用がバックアップのスキップを拒否する状況で、
--no-backup と併用する必要があります。計画または適用結果を JSON として出力します。
--json があり --yes がない場合、apply は計画を出力し、状態を変更しません。安全性モデル
openclaw migrate はプレビュー優先です。
バックアップ
バックアップ
Apply は移行を適用する前に OpenClaw バックアップを作成して検証します。ローカルの OpenClaw 状態がまだ存在しない場合、バックアップ手順はスキップされ、移行は続行されます。状態が存在する場合にバックアップをスキップするには、
--no-backup と --force の両方を渡します。競合
競合
計画に競合がある場合、apply は続行を拒否します。計画を確認し、既存のターゲットを置き換える意図がある場合は
--overwrite を付けて再実行します。プロバイダーは、移行レポートディレクトリに上書きされたファイルの項目レベルのバックアップを引き続き書き込むことがあります。シークレット
シークレット
対話的な apply は、検出された認証情報をインポートするかどうかを確認し、デフォルトでは yes が選択されます。スキップするには
--no-auth-credentials を使用し、--yes とともに無人で認証情報をインポートするには --include-secrets を使用します。Claude プロバイダー
バンドルされた Claude プロバイダーは、デフォルトで~/.claude にある Claude Code 状態を検出します。特定の Claude Code ホームまたはプロジェクトルートをインポートするには --from <path> を使用します。
Claude がインポートするもの
- プロジェクトの
CLAUDE.mdと.claude/CLAUDE.mdを OpenClaw エージェントワークスペース (AGENTS.md) にインポートします。 - ユーザーの
~/.claude/CLAUDE.mdをワークスペースのUSER.mdに追記します。 - プロジェクトの
.mcp.json、Claude Code の~/.claude.json(プロジェクトごとのエントリを含む)、Claude Desktop のclaude_desktop_config.jsonから MCP サーバー定義をインポートします。 SKILL.mdを含む Claude Skills ディレクトリ (ユーザーの~/.claude/skillsとプロジェクトの.claude/skills)。- Claude コマンド Markdown ファイル (ユーザーの
~/.claude/commandsとプロジェクトの.claude/commands) を、手動呼び出し専用の OpenClaw Skills に変換します。
アーカイブと手動レビュー状態
Claude hooks、権限、環境デフォルト、プロジェクトのCLAUDE.local.md、.claude/rules、ユーザーおよびプロジェクトの agents/ ディレクトリ、プロジェクト履歴 (~/.claude 配下の projects、cache、plans) は、移行レポートに保存されるか、手動レビュー項目として報告されます。OpenClaw は hook の実行、広範な許可リストのコピー、OAuth/Desktop 認証情報状態の自動インポートは行いません。
Codex プロバイダー
バンドルされた Codex プロバイダーは、デフォルトで~/.codex にある Codex CLI 状態を検出します。環境変数 CODEX_HOME が設定されている場合は、その場所を使用します。特定の Codex ホームをインベントリするには --from <path> を使用します。
OpenClaw Codex ハーネスへ移行し、有用な個人用 Codex CLI アセットを意図的に昇格したい場合に、このプロバイダーを使用します。ローカルの Codex アプリサーバー起動では、エージェントごとの CODEX_HOME が使用されるため、デフォルトでは個人用の ~/.codex を読み取りません。通常のプロセス HOME は引き続き継承されるため、Codex は共有の $HOME/.agents/* Skills/Plugin マーケットプレイスエントリを参照でき、サブプロセスはユーザーホームの設定とトークンを見つけられます。
対話型ターミナルで openclaw migrate codex を実行すると、完全な計画をプレビューした後、最終的な適用確認の前にチェックボックスセレクターが開きます。Skills コピー項目が最初に確認されます。一括選択には Toggle all on または Toggle all off を使用します。行を切り替えるには Space を押し、強調表示された行を有効化して続行するには Enter を押します。計画された Skills はチェック済みで開始し、競合する Skills は未チェックで開始します。Skip for now は、この実行での Skills コピーをスキップしつつ、Plugin 選択へ進みます。ソースにインストール済みのキュレート済み Codex Plugin が移行可能で、--plugin が指定されていない場合、移行は次に Plugin 名でネイティブ Codex Plugin の有効化を確認します。ターゲットの OpenClaw Codex Plugin 設定にその Plugin がすでにある場合を除き、Plugin 項目はチェック済みで開始します。既存のターゲット Plugin は未チェックで開始し、conflict: plugin exists のような競合ヒントを表示します。その実行でネイティブ Codex Plugin を移行しない場合は Toggle all off を選び、適用前に停止するには Skip for now を選びます。
スクリプト化された実行または厳密な実行では、1 つ以上の Skills または Plugin を明示的に選択します。
Codex がインポートするもの
- Codex の
.systemキャッシュを除く、$CODEX_HOME/skills配下の Codex CLI Skills ディレクトリ。 $HOME/.agents/skills配下の個人用 AgentSkills。エージェントごとの所有権のため、現在の OpenClaw エージェントワークスペースにコピーされます。- Codex アプリサーバーの
plugin/listを通じて検出された、ソースにインストール済みのopenai-curatedCodex Plugin。計画では、有効化されインストール済みの各 Plugin に対してplugin/readを読み取ります。
- アプリ連携 Plugin では、ソース Codex アプリサーバーアカウントが ChatGPT サブスクリプションアカウントである必要があります。ChatGPT 以外、またはアカウント応答がない場合は、
codex_subscription_requiredでスキップされます。 - デフォルトでは、移行はソース
app/listを呼び出さないため、アカウントゲートを通過したアプリ連携 Plugin は、ソースアプリのアクセシビリティ検証なしで計画されます。また、アカウント検索のトランスポート失敗はcodex_account_unavailableでスキップされます。 --verify-plugin-appsを渡すと、新しいソースapp/listスナップショットを強制し、ネイティブ有効化を計画する前に、所有するすべてのアプリが存在し、有効で、アクセス可能であることを要求します。このモードでは、アカウント検索のトランスポート失敗はソースアプリインベントリ検証にフォールスルーします。スナップショットは現在のプロセスのメモリにのみ保持され、移行出力やターゲット設定に書き込まれることはありません。
--verify-plugin-apps が設定されている場合) 存在しない、有効でない、またはアクセスできないアプリは、ターゲット設定エントリではなく、型付き理由を持つ手動スキップ項目になります。Apply は、ターゲットアプリサーバーがその Plugin をインストール済みかつ有効としてすでに報告している場合でも、選択された対象 Plugin ごとにアプリサーバー plugin/install を呼び出します。移行された Codex Plugin は、ネイティブ Codex ハーネスを選択するセッションでのみ使用できます。OpenClaw プロバイダー実行、ACP 会話バインディング、その他のハーネスには公開されません。
手動レビューの Codex 状態
Codex のconfig.toml、ネイティブ hooks/hooks.json、キュレートされていないマーケットプレイス、ソースにインストール済みのキュレート済み Plugin ではないキャッシュ済み Plugin バンドル、ソースサブスクリプションゲートに失敗したソースインストール済み Plugin は、自動的に有効化されません。--verify-plugin-apps が設定されている場合、ソースアプリインベントリゲートに失敗した Plugin もスキップされます。これらはすべて、手動レビューのために移行レポートにコピーまたは報告されます。
移行された、ソースにインストール済みのキュレート済み Plugin について、apply は次を書き込みます。
plugins.entries.codex.enabled: trueplugins.entries.codex.config.codexPlugins.enabled: trueplugins.entries.codex.config.codexPlugins.allow_destructive_actions: true- 選択された Plugin ごとに、
marketplaceName: "openai-curated"とpluginNameを持つ明示的な Plugin エントリ 1 つ
plugins["*"] は決して書き込まず、ローカルマーケットプレイスキャッシュパスも保存しません。
スキップされたPluginはターゲット設定に書き込まれません。ソース側のサブスクリプション失敗は、手動項目で型付き理由として報告されます: codex_subscription_required、codex_account_unavailable、plugin_disabled、または plugin_read_unavailable。--verify-plugin-apps を指定すると、ソースのアプリインベントリ失敗も app_inaccessible、app_disabled、app_missing、または app_inventory_unavailable として表示される場合があります。ターゲット側で認証が必要なインストールは、影響を受けるPlugin項目に status: "skipped"、reason: "auth_required"、およびサニタイズされたアプリ識別子付きで報告されます。それらの明示的な設定エントリは、再認証して有効化するまで無効として書き込まれます。その他のインストール失敗は、項目スコープの error 結果です。
計画中に Codex アプリサーバーのPluginインベントリを利用できない場合、移行全体を失敗させるのではなく、キャッシュ済みバンドルの助言項目にフォールバックします。
Hermes プロバイダー
バンドルされた Hermes プロバイダーは、デフォルトで~/.hermes の状態を検出します。Hermes が別の場所にある場合は --from <path> を使用します。
Hermes がインポートするもの
config.yamlからのデフォルトモデル設定。providersとcustom_providersからの設定済みモデルプロバイダーとカスタム OpenAI 互換エンドポイント。mcp_serversまたはmcp.serversからの MCP サーバー定義。SOUL.mdとAGENTS.mdを OpenClaw エージェントワークスペースへ。memories/MEMORY.mdとmemories/USER.mdをワークスペースメモリファイルに追記。- OpenClaw ファイルメモリ用のメモリ設定デフォルト、および Honcho などの外部メモリプロバイダー向けのアーカイブ項目または手動レビュー項目。
skills/<name>/配下にSKILL.mdファイルを含む Skills。skills.configからのSkillsごとの設定値。- 対話型の認証情報移行が承認された場合、または
--include-secretsが設定されている場合は、OpenCodeauth.jsonからの OpenCode OpenAI OAuth 認証情報。Hermesauth.jsonの OAuth エントリは、手動の OpenAI 再認証または doctor 修復のために報告されるレガシー状態です。 - 対話型の認証情報移行が承認された場合、または
--include-secretsが設定されている場合は、Hermes.envと OpenCodeauth.jsonからのサポート対象 API キーとトークン。
サポート対象の .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.
アーカイブ専用状態
OpenClaw が安全に解釈できない Hermes の状態は、手動レビュー用に移行レポートへコピーされますが、ライブの OpenClaw 設定や認証情報には読み込まれません。これにより、不透明または安全でない状態を保持しつつ、OpenClaw がそれを自動的に実行または信頼できるかのように扱うことを避けます:plugins/、sessions/、logs/、cron/、mcp-tokens/、state.db。
適用後
Plugin コントラクト
移行ソースはPluginです。Pluginはopenclaw.plugin.json で自身のプロバイダー ID を宣言します:
api.registerMigrationProvider(...) を呼び出します。プロバイダーは detect、plan、apply を実装します。コアは CLI オーケストレーション、バックアップポリシー、プロンプト、JSON 出力、競合の事前確認を所有します。コアはレビュー済みの計画を apply(ctx, plan) に渡し、プロバイダーは互換性のためにその引数がない場合に限り計画を再構築できます。
プロバイダーPluginは、項目構築とサマリー件数に openclaw/plugin-sdk/migration を使用でき、競合を考慮したファイルコピー、アーカイブ専用レポートコピー、キャッシュ済み設定ランタイムラッパー、移行レポートには openclaw/plugin-sdk/migration-runtime を使用できます。
オンボーディング統合
プロバイダーが既知のソースを検出した場合、オンボーディングは移行を提示できます。openclaw onboard --flow import と openclaw setup --wizard --import-from hermes はどちらも同じPlugin移行プロバイダーを使用し、適用前に引き続きプレビューを表示します。
オンボーディングインポートには、新規の OpenClaw セットアップが必要です。すでにローカル状態がある場合は、先に設定、認証情報、セッション、ワークスペースをリセットしてください。既存セットアップ向けのバックアップ付き上書きまたはマージインポートは、機能ゲートされています。
関連
- Hermes からの移行: ユーザー向けウォークスルー。
- Claude からの移行: ユーザー向けウォークスルー。
- 移行: OpenClaw を新しいマシンへ移動する。
- Doctor: 移行適用後のヘルスチェック。
- Plugins: Pluginのインストールと登録。