Windows (WSL2)

OpenClaw unter Windows wird über WSL2 empfohlen (Ubuntu empfohlen). Die CLI + das Gateway laufen innerhalb von Linux, was die Runtime konsistent hält und Tooling weitaus kompatibler macht (Node/Bun/pnpm, Linux-Binaries, Skills). Natives Windows kann umständlicher sein. WSL2 gibt dir die volle Linux-Erfahrung — ein Befehl zur Installation: wsl --install.

Native Windows-Companion-Apps sind geplant.

Installation (WSL2)

Nativer Windows-Status

Native Windows-CLI-Flows werden verbessert, aber WSL2 bleibt der empfohlene Weg.

Was heute auf nativem Windows gut funktioniert:

  • Website-Installer über install.ps1
  • Lokale CLI-Nutzung wie openclaw --version, openclaw doctor und openclaw plugins list --json
  • Eingebettete Local-Agent/Provider-Smoke-Tests wie:
openclaw agent --local --agent main --thinking low -m "Reply with exactly WINDOWS-HATCH-OK."

Aktuelle Einschränkungen:

  • openclaw onboard --non-interactive erwartet weiterhin ein erreichbares lokales Gateway, es sei denn du übergibst --skip-health
  • openclaw onboard --non-interactive --install-daemon und openclaw gateway install versuchen zuerst Windows Scheduled Tasks
  • Falls die Scheduled-Task-Erstellung verweigert wird, fällt OpenClaw auf ein benutzerspezifisches Startup-Ordner-Login-Item zurück und startet das Gateway sofort
  • Falls schtasks selbst hängt oder nicht mehr reagiert, bricht OpenClaw diesen Pfad jetzt schnell ab und fällt stattdessen zurück
  • Scheduled Tasks werden weiterhin bevorzugt, wenn verfügbar, da sie besseren Supervisor-Status bieten

Wenn du nur die native CLI möchtest, ohne Gateway-Service-Installation, verwende eine dieser Optionen:

openclaw onboard --non-interactive --skip-health
openclaw gateway run

Wenn du verwalteten Startup auf nativem Windows möchtest:

openclaw gateway install
openclaw gateway status --json

Falls die Scheduled-Task-Erstellung blockiert wird, startet der Fallback-Service-Modus trotzdem automatisch nach dem Login über den Startup-Ordner des aktuellen Benutzers.

Gateway

Gateway-Service installieren (CLI)

Innerhalb von WSL2:

openclaw onboard --install-daemon

Oder:

openclaw gateway install

Oder:

openclaw configure

Wähle Gateway service wenn aufgefordert.

Reparatur/Migration:

openclaw doctor

Gateway-Autostart vor dem Windows-Login

Für Headless-Setups stelle sicher, dass die gesamte Boot-Kette auch ohne Windows-Anmeldung läuft.

1) User-Services ohne Login am Laufen halten

Innerhalb von WSL:

sudo loginctl enable-linger "$(whoami)"

2) OpenClaw-Gateway-User-Service installieren

Innerhalb von WSL:

openclaw gateway install

3) WSL beim Windows-Boot automatisch starten

In PowerShell als Administrator:

schtasks /create /tn "WSL Boot" /tr "wsl.exe -d Ubuntu --exec /bin/true" /sc onstart /ru SYSTEM

Ersetze Ubuntu mit deinem Distro-Namen aus:

wsl --list --verbose

Startup-Kette prüfen

Nach einem Neustart (vor der Windows-Anmeldung), prüfe in WSL:

systemctl --user is-enabled openclaw-gateway
systemctl --user status openclaw-gateway --no-pager

Fortgeschritten: WSL-Services über LAN bereitstellen (Portproxy)

WSL hat sein eigenes virtuelles Netzwerk. Wenn ein anderer Rechner einen Service erreichen muss, der innerhalb von WSL läuft (SSH, ein lokaler TTS-Server oder das Gateway), musst du einen Windows-Port an die aktuelle WSL-IP weiterleiten. Die WSL-IP ändert sich nach Neustarts, daher musst du die Weiterleitungsregel ggf. aktualisieren.

Beispiel (PowerShell als 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

Den Port durch die Windows-Firewall erlauben (einmalig):

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

Portproxy nach WSL-Neustart aktualisieren:

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

Hinweise:

  • SSH von einem anderen Rechner zielt auf die Windows-Host-IP (Beispiel: ssh user@windows-host -p 2222).
  • Remote-Nodes müssen auf eine erreichbare Gateway-URL zeigen (nicht 127.0.0.1); verwende openclaw status --all zur Bestätigung.
  • Verwende listenaddress=0.0.0.0 für LAN-Zugriff; 127.0.0.1 hält es lokal.
  • Wenn du das automatisieren möchtest, registriere einen Scheduled Task, der den Aktualisierungsschritt beim Login ausführt.

Schritt-für-Schritt WSL2-Installation

1) WSL2 + Ubuntu installieren

Öffne PowerShell (Admin):

wsl --install
# Oder wähle eine Distro explizit:
wsl --list --online
wsl --install -d Ubuntu-24.04

Starte neu, falls Windows das verlangt.

2) systemd aktivieren (erforderlich für Gateway-Installation)

In deinem WSL-Terminal:

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

Dann aus PowerShell:

wsl --shutdown

Öffne Ubuntu erneut und prüfe:

systemctl --user status

3) OpenClaw installieren (innerhalb von WSL)

Folge dem Linux-Erste-Schritte-Flow innerhalb von WSL:

git clone https://github.com/openclaw/openclaw.git
cd openclaw
pnpm install
pnpm ui:build # installiert UI-Deps beim ersten Lauf automatisch
pnpm build
openclaw onboard

Vollständiger Guide: Erste Schritte

Windows-Companion-App

Eine Windows-Companion-App gibt es noch nicht. Beiträge sind willkommen, wenn du dabei helfen möchtest, sie zu realisieren.