推奨: openclaw update
インストール種別 (npm または git) を検出し、最新バージョンを取得し、openclaw doctor を実行して、gateway を再起動します。
openclaw update には --verbose フラグはありません (インストーラーにはあります)。診断には、予定されている操作をプレビューする --dry-run、構造化された結果を得る --json、またはチャネルと利用可能状態を調べる openclaw update status --json を使用します。
--channel beta は beta npm dist-tag を優先しますが、beta タグがない場合や、そのバージョンが最新の安定版リリースより古い場合は、stable/latest にフォールバックします。代わりに、生の npm beta dist-tag に固定した一回限りのパッケージ更新には --tag beta を使用します。
--channel extended-stable はパッケージ専用かつフォアグラウンド専用です。OpenClaw は公開 npm の extended-stable セレクターを読み取り、選択された正確なパッケージを検証し、その正確なバージョンをインストールします。レジストリーデータがない、または一貫性がない場合は安全側で失敗します。latest へフォールバックすることはありません。選択されたバージョンがインストール済みバージョンより古い場合は、通常のダウングレード確認が引き続き適用されます。コアの差し替え後、bare/default または latest の意図を持つ対象の公式 npm Plugins は、その正確なコアバージョンに収束します。正確な固定、明示的な非 latest タグ、サードパーティ Plugins、非 npm ソースは変更されません。現在の OpenClaw バージョンで作成されたカタログインストールは、そのデフォルトの意図を保持します。正確なバージョンのみを含む古い記録は固定されたままです。OpenClaw は古い自動固定とユーザーによる固定を安全に区別できないためです。その Plugin を正確なコア追跡に戻すには、extended-stable チャネルで openclaw plugins update @openclaw/name を一度実行します。
--channel dev は、永続的に移動する GitHub main チェックアウトを提供します。一回限りのパッケージ更新では、--tag main は github:openclaw/openclaw#main パッケージ仕様に対応し、対象のパッケージマネージャー (npm/pnpm/bun) を通じて直接インストールします。
管理対象 Plugins では、beta リリースがないことは警告であり、失敗ではありません。Plugin が記録済みの default/latest リリースへフォールバックしても、コア更新は成功できます。
チャネルの意味については、リリースチャネル を参照してください。
npm インストールと git インストールを切り替える
インストール種別を変更するにはチャネルを使用します。アップデーターは~/.openclaw 内の状態、設定、認証情報、ワークスペースを保持します。変更するのは、CLI と gateway が使用する OpenClaw コードのインストールだけです。
dev は git チェックアウトを確保し、それをビルドして、そのチェックアウトからグローバル CLI をインストールします。stable、extended-stable、beta チャネルはパッケージインストールを使用します。Extended-stable は git チェックアウト上では、変更や変換を行わずに拒否されます。gateway がすでにインストールされている場合、openclaw update は --no-restart を渡さない限り、サービスメタデータを更新して再起動します。
管理対象 Gateway サービスを伴うパッケージインストールでは、openclaw update はそのサービスが使用するパッケージルートを対象にします。シェルの openclaw コマンドが別のインストールから来ている場合、アップデーターは両方のルートと管理対象サービスの Node パスを表示し、パッケージを置き換える前に、その Node バージョンを対象リリースの engines.node 要件と照合します。
代替: インストーラーを再実行する
--no-onboard を追加します。特定のインストール種別を強制するには、--install-method git --no-onboard または --install-method npm --no-onboard を渡します。
npm パッケージインストール段階の後に openclaw update が失敗した場合は、代わりにインストーラーを再実行します。これはアップデーターを呼び出しません。グローバルパッケージインストールを直接実行し、部分的に更新された npm インストールを復旧できます。
--version で復旧を特定のバージョンまたは dist-tag に固定します。
代替: 手動の npm、pnpm、または bun
openclaw update を推奨します。実行中の Gateway サービスとパッケージ差し替えを調整できるためです。管理下のインストールで手動更新する場合は、先に管理対象 Gateway を停止してください。パッケージマネージャーはファイルをその場で置き換えるため、実行中の Gateway が差し替え中にコアまたは Plugin ファイルを読み込もうとする可能性があります。パッケージマネージャーの完了後に Gateway を再起動し、新しいインストールを反映させます。
root 所有の Linux システムグローバルインストールで、openclaw update が EACCES により失敗する場合は、手動置き換えの間 Gateway を停止したまま、システム npm で復旧します。その Gateway に通常使用しているものと同じプロファイルフラグ/環境を使用してください。/usr/bin/npm は、ホスト上で root 所有のグローバルプレフィックスを所有しているシステム npm に置き換えてください。
openclaw update がグローバル npm インストールを管理する場合、まず対象を一時 npm プレフィックスにインストールし、パッケージ化された dist インベントリを検証してから、クリーンなパッケージツリーを実際のグローバルプレフィックスへ差し替えます。これにより、npm が古いパッケージの残存ファイル上に新しいパッケージを重ねることを避けます。インストールコマンドが失敗した場合、OpenClaw は --omit=optional を付けて一度だけ再試行します。これはネイティブの任意依存関係をコンパイルできないホストで役立ちます。
OpenClaw 管理の npm update および plugin-update コマンドは、子 npm プロセスに対して npm の min-release-age サプライチェーン隔離 (または古い before 設定キー) もクリアします。このポリシーは一般的な保護のために存在しますが、明示的な OpenClaw 更新は「選択されたリリースを今インストールする」ことを意味します。
高度な npm インストールのトピック
読み取り専用パッケージツリー
読み取り専用パッケージツリー
OpenClaw は、グローバルパッケージディレクトリが現在のユーザーにより書き込み可能であっても、パッケージ化されたグローバルインストールを実行時には読み取り専用として扱います。Plugin パッケージインストールは、ユーザー設定ディレクトリ配下の OpenClaw 所有の npm/git ルートに配置され、Gateway 起動時に OpenClaw パッケージツリーを変更することはありません。一部の Linux npm セットアップでは、グローバルパッケージを
/usr/lib/node_modules/openclaw など root 所有のディレクトリ配下にインストールします。OpenClaw はそのレイアウトをサポートします。Plugin のインストール/更新コマンドは、そのグローバルパッケージディレクトリの外側に書き込むためです。強化された systemd ユニット
強化された systemd ユニット
OpenClaw に設定/状態ルートへの書き込みアクセスを付与し、明示的な Plugin インストール、Plugin 更新、doctor クリーンアップが変更を永続化できるようにします。
ディスク容量の事前確認
ディスク容量の事前確認
パッケージ更新と明示的な Plugin インストールの前に、OpenClaw は対象ボリュームに対してベストエフォートのディスク容量チェックを試みます。空き容量が少ない場合は、確認したパスを含む警告が出ますが、更新はブロックされません。ファイルシステムのクォータ、スナップショット、ネットワークボリュームはチェック後に変わる可能性があるためです。実際のパッケージマネージャーによるインストールとインストール後の検証が、引き続き信頼できる判断基準です。
自動アップデーター
デフォルトではオフです。~/.openclaw/openclaw.json で有効化します。
| チャネル | 動作 |
|---|---|
stable | stableDelayHours (デフォルト: 6) 待機してから、分散ロールアウトのために stableJitterHours (デフォルト: 12) にわたる決定論的ジッターで適用します。 |
extended-stable | 起動時チェックや自動適用はありません。openclaw update または openclaw update status を手動で使用します。 |
beta | betaCheckIntervalHours (デフォルト: 1) ごとに確認し、即座に適用します。 |
dev | 自動適用はありません。openclaw update を手動で使用します。 |
update.checkOnStart: false で無効化できます)。保存済みの extended-stable 選択は、起動時解決とバックグラウンド解決を完全にスキップします。ダウングレードまたはインシデント復旧では、gateway 環境に OPENCLAW_NO_AUTO_UPDATE=1 を設定すると、update.auto.enabled が設定されていても自動適用をブロックできます。update.checkOnStart も無効化されていない限り、起動時の更新ヒントは引き続き実行される場合があります。
ライブ Gateway コントロールプレーン (update.run) を通じて要求されたパッケージマネージャー更新は、実行中の Gateway プロセス内のパッケージツリーを置き換えません。管理対象サービスのインストールでは、Gateway は切り離された引き継ぎを開始して終了し、通常の openclaw update --yes --json CLI パスに、サービス停止、パッケージ置き換え、サービスメタデータ更新、再起動、Gateway バージョンと到達性の検証、可能な場合はインストール済みだが未ロードの macOS LaunchAgent の復旧を任せます。Gateway がその引き継ぎを安全に行えない場合、update.run はパッケージマネージャーをプロセス内で実行する代わりに、安全なシェルコマンドを報告します。
更新後
設定を移行し、DM ポリシーを監査し、gateway の健全性を確認します。詳細: Doctor
ロールバック
バージョンを固定する (npm)
コミットを固定する (ソース)
git checkout main && git pull。
行き詰まった場合
openclaw doctorを再度実行し、出力を注意深く読んでください。- ソースチェックアウト上の
openclaw update --channel devでは、必要に応じてアップデーターがpnpmを自動でブートストラップします。pnpm/corepack のブートストラップエラーが表示された場合は、pnpmを手動でインストールする (またはcorepackを再度有効化する) してから、更新を再実行してください。 - 確認: トラブルシューティング
- Discord で質問する: https://discord.gg/clawd