Problem
npm run dev starts the agent on 127.0.0.1:30141 but never opens a browser. The production pi-web launcher uses xdg-open on Linux, which in WSL does not open the Windows browser. The WSL workflow is “hope the operator types localhost in Edge”.
This is the browser surface, not Tauri and not a DeepSeek Harness --profile web port. Spec: docs/web-profile.md.
Goal
One command starts the in-process Pi agent on loopback, prints http://127.0.0.1:<port>, and opens that URL in the Windows desktop browser from a WSL shell.
In scope (v1)
npm run web → next dev -H 127.0.0.1 + handoff after Next Ready
- Production
pi-web uses the same helper
- Bind
127.0.0.1 only on the web path; default port 30141
--no-open / PI_WEB_NO_OPEN / SSH skip the handoff; still print the URL
- WSL:
powershell.exe Start-Process, never cmd.exe /C start, never xdg-open
- Handoff failure is a warning; the server stays up
- Existing Host/Origin fence unchanged; no new auth
Out of scope
- Native Windows as a supported product surface
- macOS as a validation / support target
- Linux desktop
xdg-open quality
- Binding
0.0.0.0 as a WSL trick
- Sharing
~/.pi/agent across Windows and WSL
- Pairing a Tauri window to this server
- Auto-open on
npm run dev
Acceptance
Problem
npm run devstarts the agent on127.0.0.1:30141but never opens a browser. The productionpi-weblauncher usesxdg-openon Linux, which in WSL does not open the Windows browser. The WSL workflow is “hope the operator types localhost in Edge”.This is the browser surface, not Tauri and not a DeepSeek Harness
--profile webport. Spec:docs/web-profile.md.Goal
One command starts the in-process Pi agent on loopback, prints
http://127.0.0.1:<port>, and opens that URL in the Windows desktop browser from a WSL shell.In scope (v1)
npm run web→next dev -H 127.0.0.1+ handoff after NextReadypi-webuses the same helper127.0.0.1only on thewebpath; default port30141--no-open/PI_WEB_NO_OPEN/ SSH skip the handoff; still print the URLpowershell.exe Start-Process, nevercmd.exe /C start, neverxdg-openOut of scope
xdg-openquality0.0.0.0as a WSL trick~/.pi/agentacross Windows and WSLnpm run devAcceptance
npm run webfrom an ext4 WSL checkout opens the Windows browser athttp://127.0.0.1:30141npm run web -- --no-openprints the URL and does not open a windowwrite EPIPEnpm run devstill does not auto-opennpm testandtsc --noEmitstay green; nonext buildon this path