Platforms overview
Windows
OpenClaw รองรับทั้ง Windows แบบเนทีฟ และ WSL2 WSL2 เป็นเส้นทางที่เสถียรกว่าและแนะนำสำหรับประสบการณ์เต็มรูปแบบ — CLI, Gateway และเครื่องมือต่าง ๆ ทำงานภายใน Linux พร้อมความเข้ากันได้เต็มรูปแบบ Windows แบบเนทีฟใช้งานได้สำหรับ CLI หลักและการใช้งาน Gateway โดยมีข้อควรระวังบางอย่างที่ระบุไว้ด้านล่าง
มีแผนสำหรับแอปคู่หูบน Windows แบบเนทีฟ
WSL2 (แนะนำ)
- เริ่มต้นใช้งาน (ใช้ภายใน WSL)
- การติดตั้งและอัปเดต
- คู่มือ WSL2 อย่างเป็นทางการ (Microsoft): https://learn.microsoft.com/windows/wsl/install
สถานะ Windows แบบเนทีฟ
โฟลว์ CLI บน Windows แบบเนทีฟกำลังปรับปรุงอยู่ แต่ WSL2 ยังคงเป็นเส้นทางที่แนะนำ
สิ่งที่ทำงานได้ดีบน Windows แบบเนทีฟในปัจจุบัน:
- ตัวติดตั้งผ่านเว็บไซต์ด้วย
install.ps1 - การใช้งาน CLI แบบ local เช่น
openclaw --version,openclaw doctorและopenclaw plugins list --json - การทดสอบ smoke ของ local-agent/provider แบบฝังตัว เช่น:
openclaw agent --local --agent main --thinking low -m "Reply with exactly WINDOWS-HATCH-OK."ข้อควรระวังปัจจุบัน:
openclaw onboard --non-interactiveยังคงคาดหวัง Gateway แบบ local ที่เข้าถึงได้ เว้นแต่คุณจะส่ง--skip-healthopenclaw onboard --non-interactive --install-daemonและopenclaw gateway installจะลองใช้ Windows Scheduled Tasks ก่อน- หากการสร้าง Scheduled Task ถูกปฏิเสธ OpenClaw จะถอยกลับไปใช้รายการเข้าสู่ระบบในโฟลเดอร์ Startup ต่อผู้ใช้ และเริ่ม Gateway ทันที
- หาก
schtasksค้างหรือหยุดตอบสนอง OpenClaw จะยกเลิกเส้นทางนั้นอย่างรวดเร็วและถอยกลับแทนที่จะค้างตลอดไป - Scheduled Tasks ยังคงเป็นตัวเลือกที่ต้องการเมื่อใช้งานได้ เพราะให้สถานะตัวควบคุมบริการที่ดีกว่า
หากคุณต้องการเฉพาะ CLI แบบเนทีฟ โดยไม่ติดตั้งบริการ Gateway ให้ใช้หนึ่งในคำสั่งเหล่านี้:
openclaw onboard --non-interactive --skip-healthopenclaw gateway runหากคุณต้องการการเริ่มต้นแบบจัดการบน Windows แบบเนทีฟ:
openclaw gateway installopenclaw gateway status --jsonหากการสร้าง Scheduled Task ถูกบล็อก โหมดบริการสำรองจะยังคงเริ่มอัตโนมัติหลังเข้าสู่ระบบผ่านโฟลเดอร์ Startup ของผู้ใช้ปัจจุบัน
Gateway
การติดตั้งบริการ Gateway (CLI)
ภายใน WSL2:
openclaw onboard --install-daemonหรือ:
openclaw gateway installหรือ:
openclaw configureเลือก บริการ Gateway เมื่อระบบถาม
ซ่อมแซม/ย้ายข้อมูล:
openclaw doctorการเริ่ม Gateway อัตโนมัติก่อนเข้าสู่ระบบ Windows
สำหรับการตั้งค่าแบบไม่มีหน้าจอ ให้ตรวจสอบว่าห่วงโซ่การบูตทั้งหมดทำงานแม้ไม่มีใครเข้าสู่ระบบ Windows
1) ให้บริการผู้ใช้ทำงานต่อโดยไม่ต้องเข้าสู่ระบบ
ภายใน WSL:
sudo loginctl enable-linger "$(whoami)"2) ติดตั้งบริการผู้ใช้ OpenClaw gateway
ภายใน WSL:
openclaw gateway install3) เริ่ม WSL อัตโนมัติเมื่อ Windows บูต
ใน PowerShell ในฐานะผู้ดูแลระบบ:
schtasks /create /tn "WSL Boot" /tr "wsl.exe -d Ubuntu --exec /bin/true" /sc onstart /ru SYSTEMแทนที่ Ubuntu ด้วยชื่อดิสโทรของคุณจาก:
wsl --list --verboseตรวจสอบห่วงโซ่การเริ่มต้น
หลังรีบูต (ก่อนลงชื่อเข้าใช้ Windows) ให้ตรวจสอบจาก WSL:
systemctl --user is-enabled openclaw-gateway.servicesystemctl --user status openclaw-gateway.service --no-pagerขั้นสูง: เปิดบริการ WSL ให้เข้าถึงผ่าน LAN (portproxy)
WSL มีเครือข่ายเสมือนของตัวเอง หากเครื่องอื่นจำเป็นต้องเข้าถึงบริการที่ทำงาน ภายใน WSL (SSH, เซิร์ฟเวอร์ TTS แบบ local หรือ Gateway) คุณต้องส่งต่อพอร์ตของ Windows ไปยัง IP ของ WSL ปัจจุบัน IP ของ WSL จะเปลี่ยนหลังรีสตาร์ต ดังนั้นคุณอาจต้องรีเฟรชกฎการส่งต่อ
ตัวอย่าง (PowerShell ในฐานะผู้ดูแลระบบ):
$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อนุญาตพอร์ตผ่าน Windows Firewall (ครั้งเดียว):
New-NetFirewallRule -DisplayName "WSL SSH $ListenPort" -Direction Inbound ` -Protocol TCP -LocalPort $ListenPort -Action Allowรีเฟรช portproxy หลัง WSL รีสตาร์ต:
netsh interface portproxy delete v4tov4 listenport=$ListenPort listenaddress=0.0.0.0 | Out-Nullnetsh interface portproxy add v4tov4 listenport=$ListenPort listenaddress=0.0.0.0 ` connectaddress=$WslIp connectport=$TargetPort | Out-Nullหมายเหตุ:
- SSH จากเครื่องอื่นจะชี้ไปที่ IP ของโฮสต์ Windows (ตัวอย่าง:
ssh user@windows-host -p 2222) - โหนดระยะไกลต้องชี้ไปยัง URL ของ Gateway ที่ เข้าถึงได้ (ไม่ใช่
127.0.0.1); ใช้openclaw status --allเพื่อยืนยัน - ใช้
listenaddress=0.0.0.0สำหรับการเข้าถึงผ่าน LAN;127.0.0.1จะทำให้เป็น local เท่านั้น - หากคุณต้องการให้ทำงานอัตโนมัติ ให้ลงทะเบียน Scheduled Task เพื่อรันขั้นตอนรีเฟรชเมื่อเข้าสู่ระบบ
การติดตั้ง WSL2 แบบทีละขั้นตอน
1) ติดตั้ง WSL2 + Ubuntu
เปิด PowerShell (ผู้ดูแลระบบ):
wsl --install# Or pick a distro explicitly:wsl --list --onlinewsl --install -d Ubuntu-24.04รีบูตหาก Windows แจ้งให้ทำ
2) เปิดใช้งาน systemd (จำเป็นสำหรับการติดตั้ง Gateway)
ในเทอร์มินัล WSL ของคุณ:
sudo tee /etc/wsl.conf >/dev/null <<'EOF'[boot]systemd=trueEOFจากนั้นจาก PowerShell:
wsl --shutdownเปิด Ubuntu อีกครั้ง แล้วตรวจสอบ:
systemctl --user status3) ติดตั้ง OpenClaw (ภายใน WSL)
สำหรับการตั้งค่าครั้งแรกตามปกติภายใน WSL ให้ทำตามโฟลว์เริ่มต้นใช้งาน Linux:
git clone https://github.com/openclaw/openclaw.gitcd openclawpnpm installpnpm buildpnpm ui:buildpnpm openclaw onboard --install-daemonหากคุณกำลังพัฒนาจากซอร์สแทนการเริ่ม onboarding ครั้งแรก ให้ใช้ local dev loop จาก การตั้งค่า:
pnpm install# First run only (or after resetting local OpenClaw config/workspace)pnpm openclaw setuppnpm gateway:watchคู่มือฉบับเต็ม: เริ่มต้นใช้งาน
แอปคู่หู Windows
เรายังไม่มีแอปคู่หู Windows ในตอนนี้ ยินดีรับการมีส่วนร่วมหากคุณต้องการช่วยทำให้เกิดขึ้น
การเชื่อมต่อ Git และ GitHub (ผู้มีส่วนร่วม)
บางเครือข่ายบล็อกหรือจำกัด HTTPS ไปยัง GitHub หาก git clone ล้มเหลวด้วย timeout หรือการรีเซ็ตการเชื่อมต่อ ให้ลองใช้เครือข่ายอื่น, VPN หรือพร็อกซี HTTP/HTTPS ที่องค์กรของคุณจัดเตรียมไว้
หาก gh auth login ล้มเหลวระหว่างโฟลว์อุปกรณ์ผ่านเบราว์เซอร์ (เช่น timeout ขณะเข้าถึง github.com:443) ให้ตรวจสอบสิทธิ์ด้วย personal access token แทน:
- สร้าง token ที่มี scope อย่างน้อย
repo(classic PAT) หรือสิทธิ์แบบ fine-grained ที่เทียบเท่า - ใน PowerShell สำหรับเซสชันปัจจุบัน:
$env:GH_TOKEN="<your-token>"gh auth statusgh auth setup-git- หาก
gh auth statusเตือนว่าไม่มีread:orgให้สร้าง token ที่มี scope นั้นและกำหนดตัวแปรใหม่:
$env:GH_TOKEN="<your-token-with-repo-and-read:org>"gh auth statusgh auth refresh -s read:org ใช้ได้เฉพาะเมื่อคุณตรวจสอบสิทธิ์ผ่าน gh auth login และมี credentials ที่จัดเก็บไว้ให้รีเฟรช (ไม่ใช่เมื่อใช้ GH_TOKEN)
อย่า commit token หรือวาง token ลงใน issues หรือ pull requests