Install OpenClaw on Windows
The practical Windows path for OpenClaw: use WSL2, enable systemd, install the Gateway inside Linux, and avoid the common Windows-first mistakes.
The recommended Windows route is WSL2
OpenClaw on Windows is currently best treated as a Linux install running inside Windows.
That is not a workaround. It is the recommended path in the official platform docs because it keeps the runtime, tooling, and service model consistent with the rest of the project.
The practical rule is simple:
- use WSL2
- use Ubuntu unless you already know you need another distro
- run the CLI and Gateway inside Linux
If you fight that model, you usually create problems that are not really OpenClaw problems.
Why WSL2 is the right default
WSL2 solves the parts that are awkward in native Windows-first setups:
- Node, pnpm, Bun, and Linux tooling behave normally
- systemd user services work the way the docs expect
- browser, skills, and gateway operations match the main docs better
- future debugging is much easier because you are closer to the standard install path
If your goal is “get OpenClaw working reliably,” WSL2 is the shortest route.
Before you start
Confirm these assumptions first:
- your Windows machine supports WSL2
- you are willing to use Ubuntu or another Linux distro inside WSL
- Node 22 or newer will be installed inside WSL, not only on Windows
- you want the Gateway to run inside WSL
If you are still at the very beginning, read the root install guide first:
Step 1: Install WSL2 and a Linux distro
From PowerShell as Administrator:
wsl --installIf you want to choose a distro explicitly:
wsl --list --online
wsl --install -d Ubuntu-24.04After setup, open the Linux terminal and continue the rest of the install there.
Step 2: Enable systemd inside WSL
OpenClaw’s service install on Linux and WSL2 depends on systemd user services. If systemd is disabled, the daemon experience will feel broken even when the binary itself works.
Inside WSL:
sudo tee /etc/wsl.conf >/dev/null <<'EOF'
[boot]
systemd=true
EOFThen from PowerShell:
wsl --shutdownOpen WSL again and verify:
systemctl --user statusStep 3: Install OpenClaw inside WSL
Once you are inside Linux, follow the normal supported setup flow:
curl -fsSL https://openclaw.ai/install.sh | bash
openclaw onboard --install-daemonThat matters because the onboarding wizard is the real setup path. It handles:
- auth and model setup
- workspace creation
- Gateway install
- health checks
- optional channel setup
If you prefer the slower but more explicit route, the official docs also describe from-source setup inside WSL. For most users, start with the normal install flow first.
Step 4: Verify the Gateway from inside WSL
Before you touch channels or remote exposure, make sure the base install is healthy:
openclaw gateway status
openclaw status
openclaw doctor
openclaw dashboardWhat you want to confirm:
- the Gateway is running
- the service install succeeded
- the Control UI works
- diagnostics do not show an obvious config problem
If this stage is unstable, keep debugging inside WSL first. Do not jump ahead to Windows networking.
How service install works on Windows
Inside WSL2, OpenClaw uses the Linux service model, not a native Windows service model.
That means:
- the Gateway service is a systemd user unit
openclaw onboard --install-daemonoropenclaw gateway installis the right path- the service health should be checked from inside WSL
That is normal. Think “Linux service hosted by Windows,” not “Windows app with Linux attached.”
Auto-start before Windows login
If you want a more headless setup, the official platform docs describe a boot chain that works before user login.
Inside WSL:
sudo loginctl enable-linger "$(whoami)"
openclaw gateway installThen in PowerShell as Administrator:
schtasks /create /tn "WSL Boot" /tr "wsl.exe -d Ubuntu --exec /bin/true" /sc onstart /ru SYSTEMAfter reboot, verify again inside WSL:
systemctl --user is-enabled openclaw-gateway
systemctl --user status openclaw-gateway --no-pagerOnly do this if you really need the service before interactive login. For many users, normal WSL startup is enough.
Exposing WSL services over your LAN
WSL uses its own virtual network. If another machine needs to reach a service running inside WSL, you cannot rely on 127.0.0.1 from the other machine.
The official docs recommend using Windows port forwarding when necessary.
The operational lesson is simple:
- use loopback when access should stay local
- use Windows port proxy only when another machine truly needs access
- point remote nodes at a reachable host, not
127.0.0.1
If you are not sure you need LAN access yet, do not add it during the first install.
Common Windows mistakes
Installing only on Windows and not inside WSL
That leaves you with a mismatch between the supported runtime model and the machine you are actually operating.
Forgetting systemd
Without systemd, service install and restart behavior will not match the docs.
Treating the first install like a networking project
First make the Gateway work inside WSL. Only then think about port proxy, remote access, or public exposure.
Using 127.0.0.1 where another device needs a reachable host
This is one of the most common WSL networking mistakes.
FAQ
Is Windows supported?
Yes, through WSL2. That is the recommended path today.
Do I need to run OpenClaw natively on Windows?
No. The preferred model is to run the CLI and Gateway inside Linux under WSL2.
Should I use the onboarding wizard on Windows?
Yes. Use it inside WSL after the CLI is installed. It is still the recommended setup path.
Is there a native Windows companion app?
Not as the main supported route today. The current docs frame Windows primarily through WSL2.