Windows
Pllan supports both native Windows and WSL2. WSL2 is the more stable path and recommended for the full experience — the CLI, Gateway, and tooling run inside Linux with full compatibility. Native Windows works for core CLI and Gateway use, with some caveats noted below. Native Windows companion apps are planned.WSL2 (recommended)
- 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
pllan --version,pllan doctor, andpllan plugins list --json - embedded local-agent/provider smoke such as:
pllan onboard --non-interactivestill expects a reachable local gateway unless you pass--skip-healthpllan onboard --non-interactive --install-daemonandpllan gateway installtry Windows Scheduled Tasks first- if Scheduled Task creation is denied, Pllan falls back to a per-user Startup-folder login item and starts the gateway immediately
- if
schtasksitself wedges or stops responding, Pllan 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 Pllan 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); usepllan 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.