CLI commands
Perbarui
openclaw update
Perbarui OpenClaw dan beralih antara saluran stable/extended-stable/beta/dev.
Jika Anda menginstal melalui npm/pnpm/bun (instalasi global, tanpa metadata git), pembaruan dilakukan melalui alur pengelola paket yang dijelaskan dalam Memperbarui.
Penggunaan
openclaw updateopenclaw update statusopenclaw update repairopenclaw update wizardopenclaw update --channel extended-stableopenclaw update --channel betaopenclaw update --channel devopenclaw update --tag betaopenclaw update --tag mainopenclaw update --dry-runopenclaw update --no-restartopenclaw update --yesopenclaw update --acknowledge-clawhub-riskopenclaw update --jsonopenclaw --updateopenclaw --update ditulis ulang menjadi openclaw update (berguna untuk shell dan
skrip peluncur).
Opsi
| Flag | Deskripsi |
|---|---|
--no-restart |
Lewati memulai ulang layanan Gateway setelah pembaruan berhasil. Pembaruan pengelola paket yang memulai ulang akan memverifikasi bahwa layanan yang dimulai ulang melaporkan versi yang diharapkan sebelum perintah dinyatakan berhasil. |
--channel <stable|extended-stable|beta|dev> |
Tetapkan saluran pembaruan dan pertahankan setelah pembaruan inti berhasil. Extended-stable hanya tersedia untuk paket. |
--tag <dist-tag|version|spec> |
Ganti target paket hanya untuk pembaruan ini. Opsi ini tidak dapat digabungkan dengan saluran extended-stable yang berlaku, karena target persis yang telah diverifikasi bersifat wajib. Untuk instalasi paket lainnya, main dipetakan ke github:openclaw/openclaw#main; spesifikasi sumber GitHub/git dikemas ke dalam tarball sementara sebelum instalasi npm global bertahap. |
--dry-run |
Pratinjau tindakan yang direncanakan (alur saluran/tag/target/mulai ulang) tanpa menulis konfigurasi, menginstal, menyinkronkan plugin, atau memulai ulang. |
--json |
Cetak JSON UpdateRunResult yang dapat dibaca mesin. Mencakup postUpdate.plugins.warnings saat plugin terkelola memerlukan perbaikan, detail fallback plugin saluran beta, dan postUpdate.plugins.integrityDrifts saat penyimpangan artefak plugin npm terdeteksi selama sinkronisasi pascapembaruan. |
--timeout <seconds> |
Batas waktu per langkah. Default 1800. |
--yes |
Lewati prompt konfirmasi (misalnya konfirmasi penurunan versi). |
--acknowledge-clawhub-risk |
Izinkan sinkronisasi plugin pascapembaruan tetap berlanjut meskipun ada peringatan kepercayaan ClawHub komunitas tanpa prompt interaktif. Tanpa opsi ini, rilis komunitas berisiko dilewati dan dibiarkan tidak berubah ketika OpenClaw tidak dapat meminta konfirmasi. Paket ClawHub resmi dan sumber plugin bawaan melewati prompt ini. |
Tidak ada flag --verbose. Gunakan --dry-run untuk melihat pratinjau tindakan yang direncanakan,
--json untuk hasil yang dapat dibaca mesin, dan openclaw update status --json
hanya untuk saluran/ketersediaan. Verbositas konsol Gateway (--verbose) dan
tingkat log berkas (logging.level: "debug"/"trace") merupakan pengaturan terpisah; lihat
Pencatatan log Gateway.
update status
Tampilkan saluran pembaruan aktif, tag/cabang/SHA git (hanya checkout sumber), dan ketersediaan pembaruan.
openclaw update statusopenclaw update status --jsonopenclaw update status --timeout 10| Flag | Default | Deskripsi |
|---|---|---|
--json |
false |
Cetak JSON status yang dapat dibaca mesin. |
--timeout <seconds> |
3 |
Batas waktu pemeriksaan. |
Untuk instalasi paket extended-stable, status menjalankan pemilih publik
dan verifikasi paket persis yang sama seperti pembaruan latar depan. Status dapat melaporkan
ahead of extended-stable ketika versi yang terinstal lebih baru. Kegagalan JSON
mencakup registry.reason (selector_missing, selector_query_failed,
exact_package_mismatch, atau unsupported_git_channel).
update repair
Jalankan kembali finalisasi pembaruan setelah paket inti berubah tetapi pekerjaan
perbaikan berikutnya tidak selesai dengan baik. Ini adalah jalur pemulihan yang didukung ketika
openclaw update menginstal paket inti baru, tetapi sinkronisasi plugin pascainti,
metadata plugin npm terkelola, penyegaran registri, atau perbaikan Doctor tidak
mencapai kondisi konvergen.
openclaw update repairopenclaw update repair --channel betaopenclaw update repair --acknowledge-clawhub-riskopenclaw update repair --json| Flag | Deskripsi |
|---|---|
--channel <stable|extended-stable|beta|dev> |
Pertahankan saluran pembaruan inti sebelum perbaikan. Untuk extended-stable, plugin npm resmi yang memenuhi syarat dan mengikuti maksud bare/default atau latest akan menargetkan versi inti persis yang terinstal. Perbaikan extended-stable ditolak pada checkout Git tanpa mengubah konfigurasi. |
--json |
Cetak JSON finalisasi yang dapat dibaca mesin. |
--timeout <seconds> |
Batas waktu untuk langkah perbaikan. Default 1800. |
--yes |
Lewati prompt konfirmasi. |
--acknowledge-clawhub-risk |
Perilaku sama seperti pada openclaw update. |
--no-restart |
Diterima demi kesetaraan; perbaikan tidak pernah memulai ulang Gateway. |
update repair menjalankan openclaw doctor --fix, memuat ulang konfigurasi yang diperbaiki dan
catatan instalasi, menyinkronkan plugin terlacak untuk saluran pembaruan aktif, memperbarui
instalasi plugin npm terkelola, memperbaiki payload plugin terkonfigurasi yang hilang,
menyegarkan registri plugin, dan menulis metadata catatan instalasi yang telah konvergen.
Proses ini tidak menginstal paket inti baru dan tidak memulai ulang Gateway.
update wizard
Alur interaktif untuk memilih saluran pembaruan dan mengonfirmasi apakah Gateway
akan dimulai ulang setelahnya (default-nya memulai ulang). Memilih dev tanpa checkout
git menawarkan pembuatan checkout.
| Flag | Default | Deskripsi |
|---|---|---|
--timeout <seconds> |
1800 |
Batas waktu untuk setiap langkah pembaruan. |
Cara kerjanya
Beralih saluran secara eksplisit (--channel ...) juga menjaga metode instalasi
tetap selaras:
dev-> memastikan adanya checkout git (default~/openclaw, atau$OPENCLAW_HOME/openclawketikaOPENCLAW_HOMEditetapkan; ganti denganOPENCLAW_GIT_DIR), memperbaruinya, dan menginstal CLI global dari checkout tersebut.stable-> menginstal dari npm menggunakanlatest.extended-stable-> menyelesaikan pemilih npm publikextended-stable, memverifikasi paket persis yang dipilih, dan menginstal versi persis tersebut. Proses ini tidak beralih ke pemilih lain sebagai fallback dan ditolak untuk checkout Git.beta-> mengutamakan dist-tag npmbeta, dengan fallback kelatestketika beta tidak tersedia atau lebih lama daripada rilis stable saat ini.
Serah terima mulai ulang
Pembaruan otomatis inti Gateway (ketika diaktifkan melalui konfigurasi) meluncurkan jalur
pembaruan CLI di luar penangan permintaan Gateway yang aktif. Pembaruan pengelola paket
bidang kontrol update.run dan pembaruan checkout git yang diawasi menggunakan
serah terima layanan terkelola yang sama, alih-alih mengganti pohon paket atau
membangun ulang dist/ di dalam proses Gateway yang aktif: Gateway memulai
pembantu terpisah lalu keluar, dan pembantu tersebut menjalankan openclaw update --yes --json
dari luar pohon proses Gateway. Jika serah terima tidak tersedia,
update.run mengembalikan respons terstruktur berisi perintah shell aman untuk dijalankan
secara manual.
Pilihan extended-stable yang tersimpan menerima petunjuk startup hanya-baca dan pembaruan 24 jam
ketika update.checkOnStart diaktifkan. Pemeriksaan ini tidak pernah menerapkan pembaruan,
memulai handoff, memulai ulang Gateway, menggunakan penundaan/jitter stable, atau menggunakan
frekuensi polling beta. Pembaruan foreground eksplisit, pembaruan foreground tanpa argumen dengan
update.channel: "extended-stable" tersimpan, status sesuai permintaan, dan handoff Gateway
terkelolanya tetap didukung.
Ketika layanan Gateway terkelola lokal terpasang dan mulai ulang diaktifkan,
pembaruan pengelola paket dan checkout git menghentikan layanan yang berjalan sebelum
mengganti pohon paket atau memodifikasi keluaran checkout/build. Pembaru
kemudian menyegarkan metadata layanan, memulai ulang layanan, dan memverifikasi
Gateway yang dimulai ulang sebelum melaporkan Gateway: restarted and verified..
Pembaruan pengelola paket juga memverifikasi bahwa Gateway yang dimulai ulang melaporkan
versi paket yang diharapkan; pembaruan checkout git memverifikasi kesehatan gateway dan
kesiapan layanan setelah build ulang.
Pembaruan pengelola paket biasanya tetap menggunakan biner Node yang tercatat dalam
layanan terkelola. Jika Node tersebut tidak dapat menjalankan rilis target, tetapi Node
CLI saat ini dapat melakukannya dan layanan terbukti milik paket yang sedang diperbarui,
pembaruan dengan mulai ulang diaktifkan menggunakan Node saat ini untuk finalisasi dan menulis ulang
metadata layanan ke runtime tersebut. --no-restart tidak dapat memperbaiki metadata
layanan, sehingga ketidakcocokan runtime yang sama menghentikan proses sebelum modifikasi paket.
Di macOS, pemeriksaan pascapembaruan juga memverifikasi bahwa LaunchAgent
dimuat/berjalan untuk profil aktif dan port loopback yang dikonfigurasi
dalam keadaan sehat. Jika plist terpasang tetapi launchd tidak mengawasinya, OpenClaw
melakukan bootstrap ulang LaunchAgent secara otomatis dan menjalankan ulang pemeriksaan kesehatan/versi/
kesiapan channel (bootstrap baru memuat job RunAtLoad secara langsung,
sehingga pemulihan tidak langsung kickstart -k Gateway yang baru dimunculkan). Jika
Gateway masih tidak menjadi sehat, perintah keluar dengan nilai bukan nol dan
mencetak jalur log mulai ulang beserta petunjuk mulai ulang, instal ulang, dan rollback
paket.
Jika mulai ulang tidak dapat dijalankan, perintah mencetak Gateway: restart skipped (...) atau
Gateway: restart failed: ... dengan petunjuk manual openclaw gateway restart.
Dengan --no-restart, penggantian paket atau build ulang git tetap berjalan, tetapi
layanan terkelola tidak dihentikan atau dimulai ulang, sehingga Gateway yang berjalan tetap
menggunakan kode lama hingga Anda memulai ulang secara manual.
Bentuk respons bidang kontrol
Ketika update.run berjalan melalui bidang kontrol Gateway pada instalasi
pengelola paket atau checkout git yang diawasi, handler melaporkan inisiasi handoff
secara terpisah dari pembaruan CLI yang berlanjut setelah Gateway berhenti:
ok: true,result.status: "skipped",result.reason: "managed-service-handoff-started", danhandoff.status: "started": Gateway membuat handoff layanan terkelola dan menjadwalkan mulai ulangnya sendiri agar helper terlepas dapat menjalankanopenclaw update --yes --jsondi luar proses layanan aktif.ok: false,result.reason: "managed-service-handoff-unavailable", danhandoff.status: "unavailable": OpenClaw tidak dapat menemukan batas layanan pengawas dan identitas layanan persisten untuk handoff yang aman (misalnya, handoff systemd memerlukan identitas unitOPENCLAW_SYSTEMD_UNIT, bukan hanya penanda proses systemd sekitar). Respons menyertakanhandoff.command, perintah shell yang harus dijalankan dari luar Gateway.ok: false,result.reason: "managed-service-handoff-failed": Gateway mencoba membuat handoff tetapi tidak dapat memunculkan helper terlepas.
Payload sentinel ditulis sebelum Gateway berhenti, dan handoff CLI
memperbarui sentinel mulai ulang yang sama setelah pemeriksaan kesehatan mulai ulang
layanan terkelola selesai. Selama handoff, sentinel dapat membawa
stats.reason: "restart-health-pending" tanpa kelanjutan sukses;
Gateway yang dimulai ulang melakukan polling terhadapnya dan memicu kelanjutan hanya setelah CLI
memverifikasi kesehatan layanan dan menulis ulang sentinel dengan hasil akhir ok.
openclaw status dan openclaw status --all menampilkan baris Update restart
saat sentinel tersebut tertunda atau gagal, dan update.status menyegarkan serta
mengembalikan sentinel terbaru.
Alur checkout Git
Pemilihan channel
stable: checkout tag non-beta terbaru, lalu build dan jalankan doctor.beta: prioritaskan tag-betaterbaru, dengan fallback ke tag stable terbaru ketika beta tidak tersedia atau lebih lama.dev: checkoutmain, lalu fetch dan rebase.extended-stable: tidak didukung untuk checkout Git; tidak ada modifikasi checkout yang dilakukan.
Langkah pembaruan
Verifikasi worktree bersih
Mengharuskan tidak ada perubahan yang belum di-commit.
Ganti channel
Beralih ke channel yang dipilih (tag atau branch).
Fetch upstream
Hanya dev.
Build preflight (hanya dev)
Menjalankan build TypeScript dalam worktree sementara. Jika tip gagal, menelusuri mundur hingga 10 commit untuk menemukan commit terbaru yang dapat di-build. Atur OPENCLAW_UPDATE_PREFLIGHT_LINT=1 agar lint juga dijalankan selama preflight ini; lint berjalan dalam mode serial terbatas karena host pembaruan pengguna sering kali lebih kecil daripada runner CI.
Rebase
Melakukan rebase ke commit yang dipilih (hanya dev).
Instal dependensi
Menggunakan pengelola paket repo. Untuk checkout pnpm, pembaru melakukan bootstrap pnpm sesuai permintaan (melalui corepack terlebih dahulu, kemudian fallback sementara npm install pnpm@11) alih-alih menjalankan npm run build di dalam workspace pnpm. Jika bootstrap pnpm tetap gagal, pembaru berhenti lebih awal dengan galat khusus pengelola paket alih-alih mencoba npm run build di dalam checkout.
Build Control UI
Melakukan build gateway dan Control UI.
Jalankan doctor
openclaw doctor berjalan sebagai pemeriksaan akhir pembaruan aman.
Sinkronkan plugin
Menyinkronkan plugin ke channel aktif. Dev menggunakan plugin bawaan; stable dan beta menggunakan npm. Memperbarui instalasi plugin yang dilacak.
Detail sinkronisasi plugin
Pada channel beta, instalasi plugin npm dan ClawHub terlacak yang mengikuti
jalur default/latest mencoba rilis @beta plugin terlebih dahulu. Jika plugin tidak memiliki
rilis beta, OpenClaw menggunakan fallback ke spesifikasi default/latest yang tercatat dan
melaporkan peringatan. Untuk plugin npm, OpenClaw juga menggunakan fallback ketika paket
beta tersedia tetapi gagal dalam validasi instalasi. Peringatan fallback ini tidak
menggagalkan pembaruan inti. Versi persis dan tag eksplisit tidak pernah ditulis ulang.
Setelah pembaruan inti extended-stable berhasil, integritas dan konvergensi plugin
pasca-inti menargetkan plugin npm resmi yang memenuhi syarat pada versi inti
terpasang yang persis sama. Untuk intent default/latest, OpenClaw tidak mengueri
@extended-stable plugin atau menggunakan fallback ke latest npm; OpenClaw memperoleh versi paket
dari inti yang terpasang. Pin versi eksplisit, tag eksplisit selain latest,
paket pihak ketiga, dan sumber non-npm mempertahankan intent yang ada.
Untuk instalasi pengelola paket, openclaw update menentukan versi paket
target sebelum memanggil pengelola paket. Instalasi global npm menggunakan instalasi
bertahap: OpenClaw menginstal paket baru ke prefix npm sementara,
memungkinkan paket kandidat memvalidasi versi Node host selama preinstall,
dan memverifikasi inventaris dist yang dikemas di sana. Penjaga penyelesaian terkemas
tetap berada di luar inventaris tersebut hingga preinstall berhasil, sehingga pengelola paket
yang melewati skrip siklus hidup juga berhenti sebelum aktivasi. Pada npm 12 dan yang lebih baru,
pembaru hanya menyetujui siklus hidup OpenClaw kandidat; skrip
dependensi transitif tetap diblokir. OpenClaw kemudian menukar pohon paket yang bersih
ke prefix global sebenarnya. Jika verifikasi gagal, doctor pascapembaruan, sinkronisasi plugin,
dan pekerjaan mulai ulang tidak dijalankan dari pohon yang mencurigakan. Bahkan ketika
versi terpasang sudah cocok dengan target, perintah menyegarkan
instalasi paket global, lalu menjalankan sinkronisasi plugin, penyegaran penyelesaian
perintah inti, dan pekerjaan mulai ulang. Hal ini menjaga sidecar terkemas dan catatan
plugin milik channel tetap selaras dengan build OpenClaw yang terpasang, sekaligus menyerahkan
build ulang penyelesaian perintah plugin secara penuh kepada eksekusi
openclaw completion --write-state eksplisit.
Terkait
openclaw doctor(menawarkan untuk menjalankan pembaruan terlebih dahulu pada checkout git)- Channel pengembangan
- Memperbarui
- Referensi CLI