Langsung ke konten
Panduan

Control UI OpenClaw

Apa yang disajikan port 18789, dan apa yang dimintanya dari Anda

7 menit baca

Anda sudah menginstal OpenClaw, menjalankan Gateway, dan membaca di suatu tempat bahwa ada dasbor di browser. Membukanya cukup dengan satu URL, tetapi halaman yang dimuat meminta Gateway secret yang tidak pernah diberikan siapa pun kepada Anda, dan alamat LAN yang dicetak di terminal mungkin sama sekali tidak merespons dari laptop Anda. Berikut penjelasan tentang apa sebenarnya Control UI itu, apa yang diterima oleh satu kolom tersebut, dan apa fungsi daftar agen di baliknya.

Apa yang disajikan Gateway di port 18789

  • Control UI adalah aplikasi satu halaman kecil berbasis Vite dan Lit yang disajikan oleh Gateway itu sendiri, secara default di http://your-host:18789/, dengan prefiks opsional jika Anda mengatur gateway.controlUi.basePath, misalnya /openclaw. Aplikasi ini berkomunikasi langsung dengan WebSocket Gateway di port yang sama, jadi tidak ada layanan kedua yang perlu dijalankan dan tidak ada host API terpisah yang perlu ditunjuk.
  • Di host Gateway, buka http://127.0.0.1:18789/ atau http://localhost:18789/. Jika halaman sama sekali gagal dimuat, jalankan Gateway terlebih dahulu dengan openclaw gateway.
  • gateway.controlUi.enabled diterapkan secara langsung tanpa restart. Matikan, dan Gateway berhenti menyajikan halaman dan aset dasbor sementara bot dan koneksi Gateway yang sudah ada tetap berjalan; nyalakan kembali, dan penyajian dilanjutkan, dengan aset yang hilang disiapkan di latar belakang. Mengubah base path penyajian atau root aset tetap mengharuskan Gateway dimulai ulang.
  • Jika URL LAN berfungsi di host tetapi tidak dari mesin lain, curigai host sebelum jaringan. Pada bind LAN Windows native, Windows Firewall atau Group Policy yang dikelola organisasi dapat memblokir URL LAN yang diumumkan meskipun 127.0.0.1 berfungsi di host Gateway, dan openclaw gateway status --deep, yang dijalankan di host Windows tersebut, melaporkan port yang kemungkinan diblokir, ketidakcocokan profil, dan aturan firewall lokal yang mungkin diabaikan oleh kebijakan.
Koneksi loopback langsung tidak melewati autentikasi token atau kata sandi.

Mengapa halaman di mesin Anda sendiri tetap meminta rahasia

Autentikasi terjadi selama handshake WebSocket, bukan di formulir login yang bisa diam-diam dilewati aplikasi untuk pengunjung lokal. Gateway menerima rahasia bersama yang dikonfigurasi di connect.params.auth.token atau connect.params.auth.password, dengan gateway.auth.mode yang menentukan nilai terkonfigurasi mana yang berlaku; Gateway juga menerima header identitas Tailscale Serve saat gateway.auth.allowTailscale bernilai true, dan header identitas proxy tepercaya saat gateway.auth.mode bernilai trusted-proxy. Autentikasi Gateway berjalan sebelum penyandingan perangkat, jadi browser membuktikan dirinya dengan rahasia bersama sebelum bahkan dapat mengajukan permintaan penyandingan. Browser loopback langsung tidak memerlukan rahasia bersama hanya jika gateway.auth.mode secara eksplisit diatur ke none, yang menonaktifkan autentikasi gateway sepenuhnya dan bukan pengaturan Control UI yang direkomendasikan.

Satu kolom, dua jenis nilai

  • Layar login dan Settings, lalu Gateway, menggunakan satu kolom Gateway secret yang sama: tempel token atau ketik kata sandi. Browser tidak memilih mode; gateway.auth.mode sudah memilihnya di host.
  • Setelah koneksi berhasil, UI menyimpan rahasia itu di session storage, terbatas pada tab browser saat ini dan origin Gateway, dan hanya jika Gateway melaporkan autentikasi token. Kata sandi tetap di memori dan tidak pernah disimpan permanen, dan setelah perangkat disandingkan, browser dapat menggunakan token per perangkat yang tersimpan pada koneksi berikutnya.
  • Kode penyiapan yang disalin dari Devices, Pair device, Copy setup code adalah kredensial yang berbeda. Tempelkan kode itu ke Gateway secret dan UI menampilkan petunjuk inline sebelum Anda terhubung: kode itu seharusnya dimasukkan di Settings, lalu Gateway, di aplikasi seluler OpenClaw, sedangkan Control UI membutuhkan token bersama dari openclaw gateway auth-token --show, yang dijalankan di terminal interaktif pada host Gateway.

Ada satu kondisi yang terlihat seperti bug padahal bukan. Onboarding lokal secara default membuat Gateway secret dalam mode token, tanpa pilihan antara token atau kata sandi, dan mempertahankan mode kata sandi yang sudah ada; penyiapan kata sandi secara eksplisit dilakukan dengan --gateway-auth password atau --gateway-password beserta nilai yang Anda pilih, dan Tailscale Funnel mewajibkan mode kata sandi. Namun, jika Gateway dimulai dalam mode token tanpa token yang dikonfigurasi, Gateway justru membuat token runtime sementara untuk proses tersebut. Token itu tidak ditulis ke konfigurasi, sehingga tidak dapat dipulihkan, dan browser loopback yang tidak memilikinya akan ditolak: kolom di depan Anda meminta nilai yang tidak ada di tempat mana pun yang bisa Anda baca. Jalan keluarnya adalah menjalankan openclaw doctor --generate-gateway-token, memulai ulang Gateway, lalu menjalankan openclaw gateway auth-token --show di terminal interaktif dan menempelkan hasilnya ke Gateway secret; panduan doctor OpenClaw membahas apa lagi yang mungkin diubah oleh alat perbaikan itu, dan penjelasan tentang Gateway membahas proses yang sejak awal memiliki port tersebut.

Daftar agen dan mode tim

Buka Agents di sidebar, pilih All agents di pengalih agen, atau kunjungi /agents, dan Anda akan mendapatkan daftar agen, bukan chat: satu kartu per agen yang dikonfigurasi, yang menampilkan identitas, model, status kerja saat ini, aktivitas terakhir, dan pratinjau dari chat utamanya, dengan agen yang sedang bekerja di urutan pertama dan yang paling baru aktif di belakangnya. Open chat membuka sesi utama agen tersebut, Manage agents membuka /settings/agents, dan New agent membuka chat custodian, yang merekomendasikan kepala staf, peneliti, penulis, peninjau, atau tim kecil berisi keempatnya, menggunakan templat peran yang sama dengan CLI dan menunggu persetujuan operator sebelum apa pun dibuat. Memilih Show all agents mengaktifkan mode tim: sesi dikelompokkan ulang di bawah header agen yang dapat diciutkan sesuai urutan daftar yang dikonfigurasi, baris teratas menjadi header ruang kerja dengan nama tampilan Gateway yang dikonfigurasi, dan cakupan halaman bersama secara default menjadi All agents, sehingga Automations, Dashboards, Sessions, Tasks, dan Usage menampilkan baris campuran dari berbagai agen beserta identitas agennya. Mode tim adalah preferensi browser, nonaktif secara default dan diingat per gateway di browser tersebut, sehingga Gateway yang sama yang diakses dari profil lain atau melalui akses jarak jauh ke OpenClaw dimulai dalam mode agen tunggal sampai Anda mengaktifkannya di sana. Bagaimana beberapa agen yang terisolasi bisa berada dalam satu proses Gateway adalah topik tersendiri, yang dibahas dalam artikel tentang beberapa agen dalam satu Gateway.

Di Diali

Diali meng-hosting OpenClaw, jadi port, token, dan sertifikat tidak lagi menjadi urusan Anda: setiap pelanggan menjalankan asistennya sendiri di instansnya sendiri, dan kami menyajikan Control UI melalui HTTPS di alamat sungguhan, bukan melalui URL LAN tanpa enkripsi. Konfigurasi runtime dibuat dari dasbor Diali Anda dan ditulis ulang pada setiap rilis, sehingga yang berjalan selalu sesuai dengan yang Anda pilih, dan status agen disimpan di volume persisten, dengan snapshot harian dan pemulihan sekali klik yang tersedia melalui add-on Cadangan (sudah termasuk di Max). OpenClaw yang di-hosting di Diali menjelaskan apa saja yang disertakan dalam asisten yang di-hosting, dan halaman harga Diali mencantumkan paket-paketnya.

  • Dasbor adalah Gateway itu sendiri, di satu port.
  • Browser loopback tetap membutuhkan rahasia yang dikonfigurasi.
  • Token runtime sementara tidak pernah bisa dibaca kembali.
Mulai sekarang

Berhenti membaca, buat agen Anda sendiri

Siapkan agen, pilih saluran, dan biarkan ia bekerja di dalam aplikasi yang sudah selalu Anda buka.