OpenClawを新しいマシンに移行する

このガイドは、OpenClaw Gatewayをあるマシンから別のマシンにオンボーディングをやり直さずに移行します。

移行は概念的にシンプルです:

  • ステートディレクトリ$OPENCLAW_STATE_DIR、デフォルト: ~/.openclaw/)をコピー — これには設定、認証、セッション、チャネルステートが含まれます。
  • ワークスペース(デフォルトで~/.openclaw/workspace/)をコピー — これにはエージェントファイル(メモリ、プロンプトなど)が含まれます。

しかし、プロファイルパーミッション部分コピーに関する一般的な落とし穴があります。

開始前に(何を移行するか)

1) ステートディレクトリの特定

ほとんどのインストールはデフォルトを使用します:

  • ステートディレクトリ: ~/.openclaw/

ただし、以下を使用する場合は異なる可能性があります:

  • --profile <name>(多くの場合~/.openclaw-<profile>/になります)
  • OPENCLAW_STATE_DIR=/some/path

不明な場合は、古いマシンで実行してください:

openclaw status

出力内のOPENCLAW_STATE_DIR / プロファイルの言及を探してください。複数のGatewayを実行している場合は、各プロファイルで繰り返してください。

2) ワークスペースの特定

一般的なデフォルト:

  • ~/.openclaw/workspace/(推奨ワークスペース)
  • 作成したカスタムフォルダ

ワークスペースは、MEMORY.mdUSER.mdmemory/*.mdなどのファイルが存在する場所です。

3) 保持される内容を理解する

ステートディレクトリワークスペースの両方をコピーすると、以下が保持されます:

  • Gateway設定(openclaw.json
  • 認証プロファイル / APIキー / OAuthトークン
  • セッション履歴 + エージェントステート
  • チャネルステート(例: WhatsAppログイン/セッション)
  • ワークスペースファイル(メモリ、スキルメモなど)

ワークスペースのみをコピーする場合(例: Git経由)、以下は保持されません:

  • セッション
  • 資格情報
  • チャネルログイン

これらは$OPENCLAW_STATE_DIRの下にあります。

移行手順(推奨)

ステップ0 — バックアップを作成(古いマシン)

古いマシンで、まずGatewayを停止してファイルがコピー中に変更されないようにします:

openclaw gateway stop

(オプションですが推奨)ステートディレクトリとワークスペースをアーカイブ:

# プロファイルまたはカスタムロケーションを使用する場合はパスを調整
cd ~
tar -czf openclaw-state.tgz .openclaw

tar -czf openclaw-workspace.tgz .openclaw/workspace

複数のプロファイル/ステートディレクトリ(例: ~/.openclaw-main~/.openclaw-work)がある場合は、それぞれをアーカイブしてください。

ステップ1 — 新しいマシンにOpenClawをインストール

新しいマシンで、CLIをインストールします(必要に応じてNode):

この段階で、オンボーディングが新しい~/.openclaw/を作成しても問題ありません — 次のステップで上書きします。

ステップ2 — ステートディレクトリ + ワークスペースを新しいマシンにコピー

両方をコピー:

  • $OPENCLAW_STATE_DIR(デフォルト~/.openclaw/
  • ワークスペース(デフォルト~/.openclaw/workspace/

一般的なアプローチ:

  • tarballをscpで転送して展開
  • SSH経由でrsync -a
  • 外部ドライブ

コピー後、以下を確認してください:

  • 隠しディレクトリが含まれている(例: .openclaw/
  • Gatewayを実行するユーザーに対してファイル所有権が正しい

ステップ3 — Doctorを実行(移行 + サービス修復)

新しいマシンで:

openclaw doctor

Doctorは「安全で退屈な」コマンドです。サービスを修復し、設定の移行を適用し、不一致を警告します。

次に:

openclaw gateway restart
openclaw status

一般的な落とし穴(および回避方法)

落とし穴: プロファイル / state-dirの不一致

プロファイル(またはOPENCLAW_STATE_DIR)を使用して古いGatewayを実行し、新しいGatewayが別のものを使用する場合、以下のような症状が見られます:

  • 設定変更が反映されない
  • チャネルが見つからない / ログアウトしている
  • セッション履歴が空

修正: 移行した同じプロファイル/ステートディレクトリを使用してGateway/サービスを実行し、次を再実行:

openclaw doctor

落とし穴: openclaw.jsonのみをコピー

openclaw.jsonだけでは不十分です。多くのプロバイダーは以下の下にステートを保存します:

  • $OPENCLAW_STATE_DIR/credentials/
  • $OPENCLAW_STATE_DIR/agents/<agentId>/...

常に$OPENCLAW_STATE_DIRフォルダ全体を移行してください。

落とし穴: パーミッション / 所有権

rootとしてコピーした場合、またはユーザーを変更した場合、Gatewayは資格情報/セッションの読み取りに失敗する可能性があります。

修正: ステートディレクトリ + ワークスペースがGatewayを実行するユーザーによって所有されていることを確認してください。

落とし穴: リモート/ローカルモード間の移行

  • UI(WebUI/TUI)がリモートGatewayを指している場合、リモートホストがセッションストア + ワークスペースを所有します。
  • ラップトップを移行してもリモートGatewayのステートは移動しません。

リモートモードの場合は、Gatewayホストを移行してください。

落とし穴: バックアップ内のシークレット

$OPENCLAW_STATE_DIRにはシークレット(APIキー、OAuthトークン、WhatsApp資格情報)が含まれています。バックアップを本番シークレットのように扱ってください:

  • 暗号化して保存
  • 安全でないチャネル経由での共有を避ける
  • 漏洩の疑いがある場合はキーをローテーション

検証チェックリスト

新しいマシンで、以下を確認してください:

  • openclaw statusがGatewayが実行中であることを表示
  • チャネルがまだ接続されている(例: WhatsAppが再ペアリングを要求しない)
  • ダッシュボードが開いて既存のセッションを表示
  • ワークスペースファイル(メモリ、設定)が存在

関連項目