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

よくあるハマりどころ(と回避方法)

ハマりどころ:プロファイル / 状態ディレクトリの不一致

旧 Gateway をプロファイル付き(または OPENCLAW_STATE_DIR)で実行しており、新 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 の再ペアリングが不要)
  • ダッシュボードが開き、既存のセッションが表示される
  • ワークスペースファイル(メモリ、設定)が存在する

関連情報