Gateway adalah server WebSocket OpenClaw (saluran, node, sesi, hook). Subperintah di halaman ini berada di bawahDocumentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
openclaw gateway ….
Bonjour discovery
Penyiapan mDNS lokal + DNS-SD area luas.
Discovery overview
Cara OpenClaw mengiklankan dan menemukan Gateway.
Configuration
Kunci konfigurasi Gateway tingkat atas.
Jalankan Gateway
Jalankan proses Gateway lokal:Startup behavior
Startup behavior
- Secara default, Gateway menolak untuk dimulai kecuali
gateway.mode=localdiatur di~/.openclaw/openclaw.json. Gunakan--allow-unconfigureduntuk eksekusi ad-hoc/pengembangan. openclaw onboard --mode localdanopenclaw setupdiharapkan menulisgateway.mode=local. Jika file ada tetapigateway.modetidak ada, perlakukan itu sebagai konfigurasi yang rusak atau tertimpa dan perbaiki, alih-alih mengasumsikan mode lokal secara implisit.- Jika file ada dan
gateway.modetidak ada, Gateway memperlakukan itu sebagai kerusakan konfigurasi yang mencurigakan dan menolak untuk “menebak lokal” untuk Anda. - Binding di luar loopback tanpa autentikasi diblokir (batas pengaman keselamatan).
SIGUSR1memicu mulai ulang dalam proses saat diotorisasi (commands.restartdiaktifkan secara default; aturcommands.restart: falseuntuk memblokir mulai ulang manual, sementara penerapan/pembaruan alat/konfigurasi Gateway tetap diizinkan).- Handler
SIGINT/SIGTERMmenghentikan proses Gateway, tetapi tidak memulihkan status terminal khusus apa pun. Jika Anda membungkus CLI dengan TUI atau input raw-mode, pulihkan terminal sebelum keluar.
Opsi
Port WebSocket (default berasal dari konfigurasi/env; biasanya
18789).Mode bind listener.
Override mode autentikasi.
Override token (juga mengatur
OPENCLAW_GATEWAY_TOKEN untuk proses).Override kata sandi.
Baca kata sandi Gateway dari file.
Ekspos Gateway melalui Tailscale.
Reset konfigurasi serve/funnel Tailscale saat dimatikan.
Izinkan Gateway dimulai tanpa
gateway.mode=local dalam konfigurasi. Hanya melewati pengaman startup untuk bootstrap ad-hoc/pengembangan; tidak menulis atau memperbaiki file konfigurasi.Buat konfigurasi pengembangan + workspace jika tidak ada (melewati BOOTSTRAP.md).
Reset konfigurasi pengembangan + kredensial + sesi + workspace (memerlukan
--dev).Matikan listener yang sudah ada pada port yang dipilih sebelum memulai.
Log verbose.
Hanya tampilkan log backend CLI di konsol (dan aktifkan stdout/stderr).
Gaya log WebSocket.
Alias untuk
--ws-log compact.Catat event stream model mentah ke jsonl.
Path jsonl stream mentah.
Mulai Ulang Gateway
openclaw gateway restart --safe meminta Gateway yang berjalan melakukan preflight pekerjaan OpenClaw aktif sebelum memulai ulang. Jika operasi antrean, pengiriman balasan, eksekusi tertanam, atau eksekusi tugas sedang aktif, Gateway melaporkan pemblokirnya, menggabungkan permintaan mulai ulang aman yang duplikat, dan memulai ulang setelah pekerjaan aktif selesai. restart biasa mempertahankan perilaku service-manager yang sudah ada untuk kompatibilitas. Gunakan --force hanya saat Anda secara eksplisit menginginkan jalur override langsung.
openclaw gateway restart --safe --skip-deferral menjalankan mulai ulang terkoordinasi yang sama dan sadar OpenClaw seperti --safe, tetapi melewati gerbang penundaan pekerjaan aktif sehingga Gateway langsung memancarkan mulai ulang meskipun pemblokir dilaporkan. Gunakan ini sebagai pintu keluar operator saat penundaan tertahan oleh eksekusi tugas yang macet dan --safe saja akan menunggu tanpa batas. --skip-deferral memerlukan --safe.
Profiling startup
- Atur
OPENCLAW_GATEWAY_STARTUP_TRACE=1untuk mencatat timing fase selama startup Gateway, termasuk penundaaneventLoopMaxper fase dan timing tabel lookup plugin untuk indeks terinstal, registry manifest, perencanaan startup, dan pekerjaan owner-map. - Atur
OPENCLAW_DIAGNOSTICS=timelinedenganOPENCLAW_DIAGNOSTICS_TIMELINE_PATH=<path>untuk menulis timeline diagnostik startup JSONL best-effort bagi harness QA eksternal. Anda juga dapat mengaktifkan flag dengandiagnostics.flags: ["timeline"]dalam konfigurasi; path tetap disediakan env. TambahkanOPENCLAW_DIAGNOSTICS_EVENT_LOOP=1untuk menyertakan sampel event-loop. - Jalankan
pnpm test:startup:gateway -- --runs 5 --warmup 1untuk mengukur startup Gateway. Benchmark mencatat output proses pertama,/healthz,/readyz, timing trace startup, penundaan event-loop, dan detail timing tabel lookup plugin.
Kueri Gateway yang berjalan
Semua perintah kueri menggunakan RPC WebSocket.- Output modes
- Default: mudah dibaca manusia (berwarna di TTY).
--json: JSON yang dapat dibaca mesin (tanpa styling/spinner).--no-color(atauNO_COLOR=1): nonaktifkan ANSI sambil mempertahankan tata letak manusia.
Saat Anda mengatur
--url, CLI tidak fallback ke kredensial konfigurasi atau lingkungan. Teruskan --token atau --password secara eksplisit. Kredensial eksplisit yang tidak ada adalah error.gateway health
/healthz adalah probe liveness: ia mengembalikan respons setelah server dapat menjawab HTTP. Endpoint HTTP /readyz lebih ketat dan tetap merah saat sidecar plugin startup, saluran, atau hook yang dikonfigurasi masih dalam proses stabil. Respons readiness detail yang lokal atau terautentikasi menyertakan blok diagnostik eventLoop dengan penundaan event-loop, utilisasi event-loop, rasio inti CPU, dan flag degraded.
gateway usage-cost
Ambil ringkasan biaya penggunaan dari log sesi.
Jumlah hari yang akan disertakan.
gateway stability
Ambil perekam stabilitas diagnostik terbaru dari Gateway yang berjalan.
Jumlah maksimum event terbaru yang akan disertakan (maks
1000).Filter menurut jenis event diagnostik, seperti
payload.large atau diagnostic.memory.pressure.Hanya sertakan event setelah nomor urut diagnostik.
Baca bundle stabilitas yang dipersistenkan alih-alih memanggil Gateway yang berjalan. Gunakan
--bundle latest (atau cukup --bundle) untuk bundle terbaru di bawah direktori state, atau teruskan langsung path JSON bundle.Tulis zip diagnostik dukungan yang dapat dibagikan alih-alih mencetak detail stabilitas.
Path output untuk
--export.Privacy and bundle behavior
Privacy and bundle behavior
- Rekaman menyimpan metadata operasional: nama event, jumlah, ukuran byte, pembacaan memori, status antrean/sesi, nama saluran/plugin, dan ringkasan sesi yang disunting. Rekaman tidak menyimpan teks chat, body webhook, output alat, body request atau respons mentah, token, cookie, nilai rahasia, hostname, atau id sesi mentah. Atur
diagnostics.enabled: falseuntuk menonaktifkan perekam sepenuhnya. - Pada keluarnya Gateway yang fatal, timeout shutdown, dan kegagalan startup restart, OpenClaw menulis snapshot diagnostik yang sama ke
~/.openclaw/logs/stability/openclaw-stability-*.jsonsaat perekam memiliki event. Periksa bundle terbaru denganopenclaw gateway stability --bundle latest;--limit,--type, dan--since-seqjuga berlaku untuk output bundle.
gateway diagnostics export
Tulis zip diagnostik lokal yang dirancang untuk dilampirkan ke laporan bug. Untuk model privasi dan isi bundle, lihat Ekspor Diagnostik.
Path zip output. Default ke ekspor dukungan di bawah direktori state.
Baris log tersanitasi maksimum yang akan disertakan.
Byte log maksimum yang akan diperiksa.
URL WebSocket Gateway untuk snapshot kesehatan.
Token Gateway untuk snapshot kesehatan.
Kata sandi Gateway untuk snapshot kesehatan.
Timeout snapshot status/kesehatan.
Lewati lookup bundle stabilitas yang dipersistenkan.
Cetak path yang ditulis, ukuran, dan manifest sebagai JSON.
gateway status
gateway status menampilkan layanan Gateway (launchd/systemd/schtasks) ditambah probe opsional untuk kemampuan konektivitas/autentikasi.
Tambahkan target probe eksplisit. Remote yang dikonfigurasi + localhost tetap diprobe.
Autentikasi token untuk probe.
Autentikasi kata sandi untuk probe.
Batas waktu probe.
Lewati probe konektivitas (tampilan layanan saja).
Pindai juga layanan tingkat sistem.
Tingkatkan probe konektivitas default menjadi probe baca dan keluar dengan non-zero ketika probe baca tersebut gagal. Tidak dapat digabungkan dengan
--no-probe.Semantik status
Semantik status
gateway statustetap tersedia untuk diagnostik bahkan ketika konfigurasi CLI lokal hilang atau tidak valid.gateway statusdefault membuktikan status layanan, koneksi WebSocket, dan kapabilitas autentikasi yang terlihat pada waktu handshake. Ini tidak membuktikan operasi baca/tulis/admin.- Probe diagnostik tidak melakukan mutasi untuk autentikasi perangkat pertama kali: probe menggunakan ulang token perangkat yang sudah ada di cache jika tersedia, tetapi tidak membuat identitas perangkat CLI baru atau catatan pemasangan perangkat read-only hanya untuk memeriksa status.
gateway statusmenyelesaikan SecretRefs autentikasi yang dikonfigurasi untuk autentikasi probe jika memungkinkan.- Jika SecretRef autentikasi wajib tidak terselesaikan dalam jalur perintah ini,
gateway status --jsonmelaporkanrpc.authWarningketika konektivitas/autentikasi probe gagal; teruskan--token/--passwordsecara eksplisit atau selesaikan sumber secret terlebih dahulu. - Jika probe berhasil, peringatan auth-ref yang tidak terselesaikan disembunyikan untuk menghindari positif palsu.
- Gunakan
--require-rpcdalam skrip dan otomatisasi ketika layanan yang mendengarkan saja tidak cukup dan Anda juga memerlukan panggilan RPC cakupan-baca yang sehat. --deepmenambahkan pemindaian best-effort untuk instalasi launchd/systemd/schtasks tambahan. Ketika beberapa layanan mirip gateway terdeteksi, keluaran manusia mencetak petunjuk pembersihan dan memperingatkan bahwa sebagian besar penyiapan sebaiknya menjalankan satu Gateway per mesin.--deepjuga melaporkan handoff restart supervisor Gateway terbaru ketika proses layanan keluar dengan bersih untuk restart supervisor eksternal.--deepmenjalankan validasi konfigurasi dalam mode sadar-plugin (pluginValidation: "full") dan menampilkan peringatan manifes plugin yang dikonfigurasi (misalnya metadata konfigurasi channel yang hilang) sehingga pemeriksaan smoke instalasi dan pembaruan menangkapnya.gateway statusdefault mempertahankan jalur read-only cepat yang melewati validasi plugin.- Keluaran manusia menyertakan path log file yang terselesaikan plus snapshot path/validitas konfigurasi CLI-vs-layanan untuk membantu mendiagnosis drift profil atau state-dir.
Pemeriksaan drift autentikasi systemd Linux
Pemeriksaan drift autentikasi systemd Linux
- Pada instalasi systemd Linux, pemeriksaan drift autentikasi layanan membaca nilai
Environment=danEnvironmentFile=dari unit (termasuk%h, path yang dikutip, beberapa file, dan file opsional-). - Pemeriksaan drift menyelesaikan SecretRefs
gateway.auth.tokenmenggunakan env runtime gabungan (env perintah layanan terlebih dahulu, lalu fallback env proses). - Jika autentikasi token tidak aktif secara efektif (
gateway.auth.modeeksplisit berupapassword/none/trusted-proxy, atau mode tidak disetel saat kata sandi dapat menang dan tidak ada kandidat token yang dapat menang), pemeriksaan token-drift melewati penyelesaian token konfigurasi.
gateway probe
gateway probe adalah perintah “debug semuanya”. Perintah ini selalu memprobe:
- gateway remote yang Anda konfigurasi (jika disetel), dan
- localhost (loopback) bahkan jika remote dikonfigurasi.
--url, target eksplisit tersebut ditambahkan sebelum keduanya. Keluaran manusia melabeli target sebagai:
URL (explicit)Remote (configured)atauRemote (configured, inactive)Local loopback
Jika beberapa gateway dapat dijangkau, perintah ini mencetak semuanya. Beberapa gateway didukung ketika Anda menggunakan profil/port terisolasi (misalnya, bot penyelamat), tetapi sebagian besar instalasi tetap menjalankan satu gateway.
Interpretasi
Interpretasi
Reachable: yesberarti setidaknya satu target menerima koneksi WebSocket.Capability: read-only|write-capable|admin-capable|pairing-pending|connect-onlymelaporkan apa yang dapat dibuktikan probe tentang autentikasi. Ini terpisah dari keterjangkauan.Read probe: okberarti panggilan RPC detail cakupan-baca (health/status/system-presence/config.get) juga berhasil.Read probe: limited - missing scope: operator.readberarti koneksi berhasil tetapi RPC cakupan-baca terbatas. Ini dilaporkan sebagai keterjangkauan terdegradasi, bukan kegagalan penuh.Read probe: failedsetelahConnect: okberarti Gateway menerima koneksi WebSocket, tetapi diagnostik baca lanjutan kehabisan waktu atau gagal. Ini juga merupakan keterjangkauan terdegradasi, bukan Gateway yang tidak dapat dijangkau.- Seperti
gateway status, probe menggunakan ulang autentikasi perangkat yang sudah ada di cache tetapi tidak membuat identitas perangkat pertama kali atau status pemasangan. - Exit code bernilai non-zero hanya ketika tidak ada target yang diprobe yang dapat dijangkau.
Keluaran JSON
Keluaran JSON
Tingkat atas:
ok: setidaknya satu target dapat dijangkau.degraded: setidaknya satu target menerima koneksi tetapi tidak menyelesaikan diagnostik RPC detail penuh.capability: kapabilitas terbaik yang terlihat di seluruh target yang dapat dijangkau (read_only,write_capable,admin_capable,pairing_pending,connected_no_operator_scope, atauunknown).primaryTargetId: target terbaik untuk diperlakukan sebagai pemenang aktif dalam urutan ini: URL eksplisit, tunnel SSH, remote yang dikonfigurasi, lalu local loopback.warnings[]: catatan peringatan best-effort dengancode,message, dantargetIdsopsional.network: petunjuk URL local loopback/tailnet yang diturunkan dari konfigurasi saat ini dan jaringan host.discovery.timeoutMsdandiscovery.count: anggaran/jumlah hasil discovery aktual yang digunakan untuk lintasan probe ini.
targets[].connect):ok: keterjangkauan setelah koneksi + klasifikasi terdegradasi.rpcOk: keberhasilan RPC detail penuh.scopeLimited: RPC detail gagal karena cakupan operator yang hilang.
targets[].auth):role: peran autentikasi yang dilaporkan dalamhello-okjika tersedia.scopes: cakupan yang diberikan yang dilaporkan dalamhello-okjika tersedia.capability: klasifikasi kapabilitas autentikasi yang ditampilkan untuk target tersebut.
Kode peringatan umum
Kode peringatan umum
ssh_tunnel_failed: penyiapan tunnel SSH gagal; perintah beralih kembali ke probe langsung.multiple_gateways: lebih dari satu target dapat dijangkau; ini tidak biasa kecuali Anda sengaja menjalankan profil terisolasi, seperti bot penyelamat.auth_secretref_unresolved: SecretRef autentikasi yang dikonfigurasi tidak dapat diselesaikan untuk target yang gagal.probe_scope_limited: koneksi WebSocket berhasil, tetapi probe baca dibatasi olehoperator.readyang hilang.
Remote lewat SSH (paritas app Mac)
Mode “Remote over SSH” app macOS menggunakan port-forward lokal sehingga gateway remote (yang mungkin hanya terikat ke loopback) menjadi dapat dijangkau diws://127.0.0.1:<port>.
Padanan CLI:
user@host atau user@host:port (port default ke 22).File identitas.
Pilih host gateway pertama yang ditemukan sebagai target SSH dari endpoint discovery yang terselesaikan (
local. plus domain wide-area yang dikonfigurasi, jika ada). Petunjuk TXT-only diabaikan.gateway.remote.sshTargetgateway.remote.sshIdentity
gateway call <method>
Helper RPC tingkat rendah.
String objek JSON untuk params.
URL WebSocket Gateway.
Token Gateway.
Kata sandi Gateway.
Anggaran batas waktu.
Terutama untuk RPC bergaya agen yang men-stream event perantara sebelum payload final.
Keluaran JSON yang dapat dibaca mesin.
--params harus berupa JSON yang valid.Kelola layanan Gateway
Instal dengan wrapper
Gunakan--wrapper ketika layanan terkelola harus dimulai melalui executable lain, misalnya shim
pengelola secret atau helper run-as. Wrapper menerima argumen Gateway normal dan
bertanggung jawab untuk pada akhirnya mengeksekusi openclaw atau Node dengan argumen tersebut.
gateway install memvalidasi bahwa path adalah
file executable, menulis wrapper ke ProgramArguments layanan, dan menyimpan
OPENCLAW_WRAPPER di environment layanan untuk reinstall paksa, pembaruan, dan perbaikan doctor
berikutnya.
OPENCLAW_WRAPPER saat menginstal ulang:
Opsi perintah
Opsi perintah
gateway status:--url,--token,--password,--timeout,--no-probe,--require-rpc,--deep,--jsongateway install:--port,--runtime <node|bun>,--token,--wrapper <path>,--force,--jsongateway restart:--safe,--skip-deferral,--force,--wait <duration>,--jsongateway uninstall|start:--jsongateway stop:--disable,--json
Perilaku siklus hidup
Perilaku siklus hidup
- Gunakan
gateway restartuntuk memulai ulang layanan terkelola. Jangan merangkaigateway stopdangateway startsebagai pengganti mulai ulang. - Di macOS,
gateway stopmenggunakanlaunchctl bootoutsecara default, yang menghapus LaunchAgent dari sesi boot saat ini tanpa menyimpan penonaktifan — pemulihan otomatis KeepAlive tetap aktif untuk crash berikutnya dangateway startmengaktifkan ulang dengan bersih tanpalaunchctl enablemanual. Berikan--disableuntuk menekan KeepAlive dan RunAtLoad secara persisten agar gateway tidak muncul kembali sampaigateway starteksplisit berikutnya; gunakan ini saat penghentian manual harus bertahan melewati reboot atau mulai ulang sistem. gateway restart --safememinta Gateway yang berjalan untuk melakukan preflight pekerjaan OpenClaw aktif dan menunda mulai ulang sampai pengiriman balasan, run tertanam, dan run tugas selesai dikosongkan.--safetidak dapat digabungkan dengan--forceatau--wait.gateway restart --wait 30smenimpa anggaran drain mulai ulang yang dikonfigurasi untuk mulai ulang tersebut. Angka polos adalah milidetik; unit sepertis,m, danhditerima.--wait 0menunggu tanpa batas.gateway restart --safe --skip-deferralmenjalankan mulai ulang aman yang sadar OpenClaw tetapi melewati gerbang penundaan sehingga Gateway memancarkan mulai ulang segera meskipun pemblokir dilaporkan. Pintu keluar operator untuk penundaan run tugas yang macet; memerlukan--safe.gateway restart --forcemelewati drain pekerjaan aktif dan memulai ulang segera. Gunakan saat operator sudah memeriksa pemblokir tugas yang tercantum dan ingin gateway kembali sekarang.- Perintah siklus hidup menerima
--jsonuntuk scripting.
Autentikasi dan SecretRefs pada waktu instalasi
Autentikasi dan SecretRefs pada waktu instalasi
- Saat autentikasi token memerlukan token dan
gateway.auth.tokendikelola SecretRef,gateway installmemvalidasi bahwa SecretRef dapat di-resolve tetapi tidak menyimpan token yang di-resolve ke metadata lingkungan layanan. - Jika autentikasi token memerlukan token dan SecretRef token yang dikonfigurasi tidak ter-resolve, instalasi gagal tertutup alih-alih menyimpan plaintext fallback.
- Untuk autentikasi kata sandi pada
gateway run, pilihOPENCLAW_GATEWAY_PASSWORD,--password-file, ataugateway.auth.passwordyang didukung SecretRef daripada--passwordinline. - Dalam mode autentikasi tersimpul,
OPENCLAW_GATEWAY_PASSWORDyang hanya ada di shell tidak melonggarkan persyaratan token instalasi; gunakan konfigurasi tahan lama (gateway.auth.passwordatau configenv) saat menginstal layanan terkelola. - Jika
gateway.auth.tokendangateway.auth.passwordsama-sama dikonfigurasi dangateway.auth.modebelum diatur, instalasi diblokir sampai mode diatur secara eksplisit.
Temukan gateway (Bonjour)
gateway discover memindai beacon Gateway (_openclaw-gw._tcp).
- Multicast DNS-SD:
local. - Unicast DNS-SD (Wide-Area Bonjour): pilih domain (contoh:
openclaw.internal.) dan siapkan split DNS + server DNS; lihat Bonjour.
role(petunjuk peran gateway)transport(petunjuk transport, mis.gateway)gatewayPort(port WebSocket, biasanya18789)sshPort(hanya mode penemuan penuh; klien menetapkan default target SSH ke22saat ini tidak ada)tailnetDns(hostname MagicDNS, bila tersedia)gatewayTls/gatewayTlsSha256(TLS diaktifkan + fingerprint sertifikat)cliPath(hanya mode penemuan penuh)
gateway discover
Timeout per perintah (browse/resolve).
Output yang dapat dibaca mesin (juga menonaktifkan gaya/spinner).
- CLI memindai
local.ditambah domain wide-area yang dikonfigurasi saat ada yang diaktifkan. wsUrldalam output JSON diturunkan dari endpoint layanan yang di-resolve, bukan dari petunjuk khusus TXT sepertilanHostatautailnetDns.- Pada mDNS
local.dan DNS-SD wide-area,sshPortdancliPathhanya dipublikasikan saatdiscovery.mdns.modeadalahfull.