Windows (WSL2)

OpenClaw trên Windows được khuyên dùng qua WSL2 (mình khuyên dùng Ubuntu). CLI + Gateway sẽ chạy bên trong Linux, giúp runtime nhất quán và các công cụ tương thích tốt hơn nhiều (Node/Bun/pnpm, Linux binaries, skills). Windows thuần có thể phức tạp hơn. WSL2 cho các bạn trải nghiệm Linux đầy đủ — chỉ cần một lệnh để cài: wsl --install.

Ứng dụng companion cho Windows thuần đang được lên kế hoạch.

Cài đặt (WSL2)

Gateway

Cài đặt Gateway service (CLI)

Bên trong WSL2:

openclaw onboard --install-daemon

Hoặc:

openclaw gateway install

Hoặc:

openclaw configure

Chọn Gateway service khi được hỏi.

Sửa chữa/migrate:

openclaw doctor

Nâng cao: expose các service WSL qua LAN (portproxy)

WSL có mạng ảo riêng. Nếu máy khác cần truy cập service đang chạy bên trong WSL (SSH, local TTS server, hoặc Gateway), các bạn phải forward một port Windows tới IP WSL hiện tại. IP WSL thay đổi sau khi khởi động lại, nên các bạn có thể cần refresh lại rule forwarding.

Ví dụ (PowerShell với quyền Administrator):

$Distro = "Ubuntu-24.04"
$ListenPort = 2222
$TargetPort = 22

$WslIp = (wsl -d $Distro -- hostname -I).Trim().Split(" ")[0]
if (-not $WslIp) { throw "WSL IP not found." }

netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=$ListenPort `
  connectaddress=$WslIp connectport=$TargetPort

Cho phép port qua Windows Firewall (chỉ cần làm một lần):

New-NetFirewallRule -DisplayName "WSL SSH $ListenPort" -Direction Inbound `
  -Protocol TCP -LocalPort $ListenPort -Action Allow

Refresh portproxy sau khi WSL khởi động lại:

netsh interface portproxy delete v4tov4 listenport=$ListenPort listenaddress=0.0.0.0 | Out-Null
netsh interface portproxy add v4tov4 listenport=$ListenPort listenaddress=0.0.0.0 `
  connectaddress=$WslIp connectport=$TargetPort | Out-Null

Lưu ý:

  • SSH từ máy khác sẽ trỏ tới IP của Windows host (ví dụ: ssh user@windows-host -p 2222).
  • Các node từ xa phải trỏ tới Gateway URL có thể truy cập được (không phải 127.0.0.1); dùng openclaw status --all để kiểm tra.
  • Dùng listenaddress=0.0.0.0 để truy cập qua LAN; 127.0.0.1 chỉ giữ local thôi.
  • Nếu muốn tự động, các bạn đăng ký Scheduled Task để chạy bước refresh khi đăng nhập.

Hướng dẫn cài WSL2 từng bước

1) Cài WSL2 + Ubuntu

Mở PowerShell (Admin):

wsl --install
# Hoặc chọn distro cụ thể:
wsl --list --online
wsl --install -d Ubuntu-24.04

Khởi động lại nếu Windows yêu cầu.

2) Bật systemd (bắt buộc để cài gateway)

Trong terminal WSL của các bạn:

sudo tee /etc/wsl.conf >/dev/null <<'EOF'
[boot]
systemd=true
EOF

Sau đó từ PowerShell:

wsl --shutdown

Mở lại Ubuntu, rồi kiểm tra:

systemctl --user status

3) Cài OpenClaw (bên trong WSL)

Làm theo flow Getting Started của Linux bên trong WSL:

git clone https://github.com/openclaw/openclaw.git
cd openclaw
pnpm install
pnpm ui:build # tự động cài UI deps lần đầu chạy
pnpm build
openclaw onboard

Hướng dẫn đầy đủ: Getting Started

Ứng dụng companion cho Windows

Hiện tại mình chưa có ứng dụng companion cho Windows. Rất hoan nghênh các contributions nếu các bạn muốn giúp thực hiện điều này.