Windows (WSL2)
Mayros 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
Gateway
Gateway service install (CLI)
Inside WSL2:
mayros onboard --install-daemon
Or:
mayros gateway install
Or:
mayros configure
Select Gateway service when prompted.
Repair/migrate:
mayros doctor
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):
powershell$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
Allow the port through Windows Firewall (one-time):
powershellNew-NetFirewallRule -DisplayName "WSL SSH $ListenPort" -Direction Inbound ` -Protocol TCP -LocalPort $ListenPort -Action Allow
Refresh the portproxy after WSL restarts:
powershellnetsh 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
Notes:
- 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); usemayros 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.
Step-by-step WSL2 install
1) Install WSL2 + Ubuntu
Open PowerShell (Admin):
powershellwsl --install # Or pick a distro explicitly: wsl --list --online wsl --install -d Ubuntu-24.04
Reboot if Windows asks.
2) Enable systemd (required for gateway install)
In your WSL terminal:
bashsudo tee /etc/wsl.conf >/dev/null <<'EOF' [boot] systemd=true EOF
Then from PowerShell:
powershellwsl --shutdown
Re-open Ubuntu, then verify:
bashsystemctl --user status
3) Install Mayros (inside WSL)
Follow the Linux Getting Started flow inside WSL:
bashgit clone https://github.com/ApiliumCode/mayros.git cd mayros pnpm install pnpm ui:build # auto-installs UI deps on first run pnpm build mayros onboard
Full guide: Getting Started
Windows companion app
We do not have a Windows companion app yet. Contributions are welcome if you want contributions to make it happen.