Windows (WSL2)
OpenClaw en Windows se recomienda vía WSL2 (se recomienda Ubuntu). El
CLI + Gateway se ejecutan dentro de Linux, lo que mantiene el runtime consistente y hace que
las herramientas sean mucho más compatibles (Node/Bun/pnpm, binarios de Linux, skills). Windows
nativo puede ser más complicado. WSL2 te da la experiencia completa de Linux — un solo comando
para instalar: wsl --install.
Las apps complementarias nativas para Windows están planificadas.
Instalación (WSL2)
- Primeros pasos (usa dentro de WSL)
- Instalación y actualizaciones
- Guía oficial de WSL2 (Microsoft): https://learn.microsoft.com/windows/wsl/install
Estado de Windows nativo
Los flujos nativos del CLI en Windows están mejorando, pero WSL2 sigue siendo la ruta recomendada.
Lo que funciona bien en Windows nativo hoy:
- Instalador web vía
install.ps1 - Uso local del CLI como
openclaw --version,openclaw doctoryopenclaw plugins list --json - Pruebas básicas de agente local/proveedor como:
openclaw agent --local --agent main --thinking low -m "Reply with exactly WINDOWS-HATCH-OK."
Advertencias actuales:
openclaw onboard --non-interactiveaún espera un Gateway local alcanzable a menos que pases--skip-healthopenclaw onboard --non-interactive --install-daemonyopenclaw gateway installintentan primero con Tareas Programadas de Windows- Si la creación de la Tarea Programada es denegada, OpenClaw recurre a un elemento de inicio por usuario en la carpeta Startup y arranca el Gateway inmediatamente
- Si
schtasksse cuelga o deja de responder, OpenClaw ahora aborta esa ruta rápidamente y recurre a la alternativa en lugar de quedarse colgado para siempre - Las Tareas Programadas siguen siendo preferidas cuando están disponibles porque proporcionan mejor supervisión del estado
Si solo quieres el CLI nativo, sin instalación del servicio Gateway, usa una de estas opciones:
openclaw onboard --non-interactive --skip-health
openclaw gateway run
Si quieres inicio gestionado en Windows nativo:
openclaw gateway install
openclaw gateway status --json
Si la creación de la Tarea Programada está bloqueada, el modo de servicio alternativo igual se inicia automáticamente después del login a través de la carpeta Startup del usuario actual.
Gateway
Instalación del servicio Gateway (CLI)
Dentro de WSL2:
openclaw onboard --install-daemon
O:
openclaw gateway install
O:
openclaw configure
Selecciona Gateway service cuando se te solicite.
Reparar/migrar:
openclaw doctor
Inicio automático del Gateway antes del login de Windows
Para configuraciones headless, asegura que toda la cadena de arranque se ejecute incluso cuando nadie inicia sesión en Windows.
1) Mantener servicios de usuario ejecutándose sin login
Dentro de WSL:
sudo loginctl enable-linger "$(whoami)"
2) Instalar el servicio Gateway de usuario de OpenClaw
Dentro de WSL:
openclaw gateway install
3) Iniciar WSL automáticamente en el arranque de Windows
En PowerShell como Administrador:
schtasks /create /tn "WSL Boot" /tr "wsl.exe -d Ubuntu --exec /bin/true" /sc onstart /ru SYSTEM
Reemplaza Ubuntu con el nombre de tu distribución de:
wsl --list --verbose
Verificar la cadena de inicio
Después de un reinicio (antes del inicio de sesión de Windows), verifica desde WSL:
systemctl --user is-enabled openclaw-gateway
systemctl --user status openclaw-gateway --no-pager
Avanzado: exponer servicios WSL sobre LAN (portproxy)
WSL tiene su propia red virtual. Si otra máquina necesita alcanzar un servicio ejecutándose dentro de WSL (SSH, un servidor TTS local o el Gateway), debes reenviar un puerto de Windows a la IP actual de WSL. La IP de WSL cambia después de reinicios, así que puede que necesites actualizar la regla de reenvío.
Ejemplo (PowerShell como Administrador):
$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
Permitir el puerto a través del Firewall de Windows (una sola vez):
New-NetFirewallRule -DisplayName "WSL SSH $ListenPort" -Direction Inbound `
-Protocol TCP -LocalPort $ListenPort -Action Allow
Actualizar el portproxy después de que WSL se reinicie:
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
Notas:
- SSH desde otra máquina apunta a la IP del host Windows (ejemplo:
ssh user@windows-host -p 2222). - Los nodos remotos deben apuntar a una URL de Gateway alcanzable (no
127.0.0.1); usaopenclaw status --allpara confirmar. - Usa
listenaddress=0.0.0.0para acceso LAN;127.0.0.1lo mantiene solo local. - Si quieres que sea automático, registra una Tarea Programada para ejecutar el paso de actualización al iniciar sesión.
Instalación paso a paso de WSL2
1) Instalar WSL2 + Ubuntu
Abre PowerShell (Admin):
wsl --install
# O elige una distribución explícitamente:
wsl --list --online
wsl --install -d Ubuntu-24.04
Reinicia si Windows lo solicita.
2) Habilitar systemd (requerido para la instalación del Gateway)
En tu terminal WSL:
sudo tee /etc/wsl.conf >/dev/null <<'EOF'
[boot]
systemd=true
EOF
Luego desde PowerShell:
wsl --shutdown
Reabre Ubuntu, luego verifica:
systemctl --user status
3) Instalar OpenClaw (dentro de WSL)
Sigue el flujo de Primeros pasos de Linux dentro de WSL:
git clone https://github.com/openclaw/openclaw.git
cd openclaw
pnpm install
pnpm ui:build # auto-instala las dependencias de UI en la primera ejecución
pnpm build
openclaw onboard
Guía completa: Primeros pasos
App complementaria para Windows
Todavía no tenemos una app complementaria para Windows. Las contribuciones son bienvenidas si quieres ayudar a que suceda.