Mode
- Lokal (Mac ini): semuanya berjalan di laptop; tidak melibatkan SSH.
- Jarak jauh melalui SSH (default): perintah OpenClaw berjalan di host jarak jauh. Aplikasi membuka koneksi SSH dengan
-o BatchMode, identitas/kunci pilihan Anda, dan penerusan port lokal. - Jarak jauh langsung (ws/wss): tanpa terowongan SSH; aplikasi terhubung langsung ke URL Gateway (LAN, Tailscale, Tailscale Serve, atau proksi balik HTTPS publik).
Transportasi jarak jauh
- Terowongan SSH (default): menggunakan
ssh -N -L ...untuk meneruskan port Gateway ke localhost. Gateway melihat IP Node sebagai127.0.0.1karena terowongan menggunakan loopback. - Langsung (ws/wss): terhubung langsung ke URL Gateway. Gateway melihat IP klien yang sebenarnya.
ControlMaster atau ForkAfterAuthentication.
Verifikasi kunci host SSH bersifat ketat secara default karena kredensial Gateway melewati terowongan ini. Untuk menggunakan perilaku kepercayaan milik alias SSH terkelola, tetapkan --ssh-host-key-policy openssh melalui openclaw-mac configure-remote, atau tetapkan gateway.remote.sshHostKeyPolicy langsung ke "openssh". Tinjau alias tersebut serta setiap Host * yang cocok atau konfigurasi sistem sebelum mengaktifkannya. Mengubah target SSH (di aplikasi atau melalui configure-remote) mereset kebijakan kembali ke strict, kecuali Anda mengaktifkannya kembali secara eksplisit untuk target baru.
Dalam mode terowongan SSH, nama host LAN/tailnet yang ditemukan disimpan sebagai gateway.remote.sshTarget. Aplikasi mempertahankan gateway.remote.url pada titik akhir terowongan lokal (misalnya ws://127.0.0.1:18789) agar CLI, Web Chat, dan layanan host Node lokal semuanya menggunakan transportasi loopback yang sama. Saat penemuan menghasilkan IP Tailnet mentah dan nama host stabil, aplikasi lebih memilih nama Tailscale MagicDNS atau LAN agar koneksi lebih mampu bertahan terhadap perubahan alamat. Jika port terowongan lokal berbeda dari port Gateway jarak jauh, tetapkan gateway.remote.remotePort ke port pada host jarak jauh.
Automasi browser dalam mode jarak jauh dimiliki oleh host Node CLI, bukan Node aplikasi macOS native. Aplikasi memulai layanan host Node yang terpasang jika memungkinkan; untuk mengaktifkan kendali browser dari Mac tersebut, pasang/mulai layanan itu dengan openclaw node install ... dan openclaw node start (atau jalankan openclaw node run ... di latar depan), lalu targetkan Node yang mendukung browser tersebut.
Prasyarat pada host jarak jauh
- Pasang Node + pnpm dan bangun/pasang CLI OpenClaw (
pnpm install && pnpm build && pnpm link --global). - Pastikan
openclawtersedia di PATH untuk shell noninteraktif (buat symlink ke/usr/local/binatau/opt/homebrew/binjika diperlukan). - Untuk transportasi SSH: siapkan autentikasi SSH berbasis kunci. IP Tailscale direkomendasikan untuk keterjangkauan yang stabil dari luar LAN.
Penyiapan aplikasi macOS
Untuk melakukan prakonfigurasi aplikasi tanpa alur sambutan, melalui SSH:openclaw-mac connect, wizard, dan configure-remote menentukan konfigurasi aktif dalam urutan berikut: OPENCLAW_CONFIG_PATH, lalu $OPENCLAW_STATE_DIR/openclaw.json, kemudian ~/.openclaw/openclaw.json. Kedua bentuk konfigurasi menulis ke berkas aktif tersebut, menandai onboarding sebagai selesai, dan memungkinkan aplikasi mengelola transportasi yang dipilih pada saat dimulai berikutnya. --local-port/--remote-port menggunakan 18789 secara default. Flag lainnya: --password, --identity <path>, --ssh-host-key-policy <strict|openssh>, --project-root <path>, --cli-path <path>, --json. Jalankan openclaw-mac configure-remote --help untuk referensi lengkap.
Untuk mengonfigurasi dari UI:
- Buka Settings -> General.
- Di bawah OpenClaw berjalan, pilih Jarak Jauh dan tetapkan:
- Transportasi: Terowongan SSH atau Langsung (ws/wss).
- Target SSH:
user@host(:portopsional). Jika Gateway berada di LAN yang sama dan mengiklankan Bonjour, pilih dari daftar yang ditemukan untuk mengisi kolom ini secara otomatis. - URL Gateway (khusus Langsung):
wss://gateway.example.ts.net(atauws://...untuk lokal/LAN). - Berkas identitas (lanjutan): jalur ke kunci Anda.
- Root proyek (lanjutan): jalur checkout jarak jauh yang digunakan untuk perintah.
- Jalur CLI (lanjutan): jalur opsional ke titik masuk/biner
openclawyang dapat dijalankan (diisi otomatis saat diiklankan).
- Tekan Uji jarak jauh. Keberhasilan berarti
openclaw status --jsonjarak jauh berjalan dengan benar. Kegagalan biasanya berarti masalah PATH/CLI; kode keluar 127 berarti CLI tidak ditemukan dari jarak jauh. - Pemeriksaan kesehatan dan Web Chat kini berjalan secara otomatis melalui transportasi yang dipilih.
Web Chat
- Terowongan SSH: terhubung ke Gateway melalui port kendali WebSocket yang diteruskan (default 18789).
- Langsung (ws/wss): terhubung langsung ke URL Gateway yang dikonfigurasi.
- Tidak ada server HTTP Web Chat terpisah.
Izin
- Host jarak jauh memerlukan persetujuan TCC yang sama seperti host lokal (Automation, Accessibility, Screen Recording, Microphone, Speech Recognition, Notifications). Jalankan onboarding satu kali pada mesin tersebut untuk memberikannya.
- Node mengiklankan status izinnya melalui
node.list/node.describeagar agen mengetahui apa yang tersedia.
Catatan keamanan
- Utamakan binding loopback pada host jarak jauh dan hubungkan melalui SSH, Tailscale Serve, atau URL langsung Tailnet/LAN tepercaya.
- Terowongan SSH memerlukan kunci host yang sudah dipercaya secara default. Percayai kunci host terlebih dahulu (tambahkan ke berkas known-hosts yang dikonfigurasi), atau tetapkan
gateway.remote.sshHostKeyPolicy: "openssh"secara eksplisit untuk alias terkelola yang kebijakan kepercayaan OpenSSH-nya Anda terima. - Jika Anda mengikat Gateway ke antarmuka non-loopback, wajibkan autentikasi Gateway yang valid: token, kata sandi, atau proksi balik berbasis identitas dengan
gateway.auth.mode: "trusted-proxy". - Lihat Keamanan dan Tailscale.
Alur masuk WhatsApp (jarak jauh)
- Jalankan
openclaw channels login --channel whatsapp --verbosepada host jarak jauh. Pindai kode QR dengan WhatsApp di ponsel Anda. - Jalankan kembali proses masuk pada host tersebut jika autentikasi kedaluwarsa. Pemeriksaan kesehatan menampilkan masalah penautan.
Pemecahan masalah
Suara notifikasi
Pilih suara untuk setiap notifikasi dari skrip denganopenclaw nodes notify, misalnya: