Windows (WSL2)
OpenClaw on Windows is recommended via WSL2 (Ubuntu recommended). The CLI + Gateway run inside Linux, which keeps the runtime consistent and makes tooling far more compatible (Node/Bun/pnpm, Linux binaries, skills). Native Windows might be trickier. WSL2 gives you the full Linux experience — one command to install:wsl --install.
Native Windows companion apps are planned.
Install (WSL2)
- Getting Started (use inside WSL)
- Install & updates
- Official WSL2 guide (Microsoft): https://learn.microsoft.com/windows/wsl/install
Native Windows status
Native Windows CLI flows are improving, but WSL2 is still the recommended path. What works well on native Windows today:- website installer via
install.ps1 - local CLI use such as
openclaw --version,openclaw doctor, andopenclaw plugins list --json - embedded local-agent/provider smoke such as:
openclaw onboard --non-interactivestill expects a reachable local gateway unless you pass--skip-healthopenclaw onboard --non-interactive --install-daemonandopenclaw gateway installtry Windows Scheduled Tasks first- if Scheduled Task creation is denied, OpenClaw falls back to a per-user Startup-folder login item and starts the gateway immediately
- if
schtasksitself wedges or stops responding, OpenClaw now aborts that path quickly and falls back instead of hanging forever - Scheduled Tasks are still preferred when available because they provide better supervisor status
Gateway
Gateway service install (CLI)
Inside WSL2:Gateway auto-start before Windows login
For headless setups, ensure the full boot chain runs even when no one logs into Windows.1) Keep user services running without login
Inside WSL:2) Install the OpenClaw gateway user service
Inside WSL:3) Start WSL automatically at Windows boot
In PowerShell as Administrator:Ubuntu with your distro name from:
Verify startup chain
After a reboot (before Windows sign-in), check from WSL:Advanced: expose WSL services over LAN (portproxy)
WSL has its own virtual network. If another machine needs to reach a service running inside WSL (SSH, a local TTS server, or the Gateway), you must forward a Windows port to the current WSL IP. The WSL IP changes after restarts, so you may need to refresh the forwarding rule. Example (PowerShell as Administrator):- SSH from another machine targets the Windows host IP (example:
ssh user@windows-host -p 2222). - Remote nodes must point at a reachable Gateway URL (not
127.0.0.1); useopenclaw status --allto confirm. - Use
listenaddress=0.0.0.0for LAN access;127.0.0.1keeps it local only. - If you want this automatic, register a Scheduled Task to run the refresh step at login.