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.md、USER.md、memory/*.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):
- 参照: Install
この段階で、オンボーディングが新しい~/.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が再ペアリングを要求しない)
- ダッシュボードが開いて既存のセッションを表示
- ワークスペースファイル(メモリ、設定)が存在