Go to file
Yejun Su ad08d297a5
fix(server): prevent shutdown hang by forcefully terminating connections
Use client.terminate() instead of client.close() to avoid waiting for
unresponsive clients to acknowledge the WebSocket close handshake.

Add a 2-second safety timeout that closes the HTTP listener, destroys
lingering sockets, and resolves the promise so session_shutdown does not
block pi from exiting.
2026-03-19 14:37:31 +08:00
extensions/pi-remote-control fix(server): prevent shutdown hang by forcefully terminating connections 2026-03-19 14:37:31 +08:00
.gitignore chore: initial commit 2026-03-19 10:41:11 +08:00
LICENSE chore: initial commit 2026-03-19 10:41:11 +08:00
README.md feat(ui): replace subcommands with interactive menu 2026-03-19 12:32:26 +08:00
package-lock.json fix: replace qrencode system dependency with pure-JS qrcode package 2026-03-19 12:59:05 +08:00
package.json fix: replace qrencode system dependency with pure-JS qrcode package 2026-03-19 12:59:05 +08:00

README.md

pi-remote-control

Install

pi install https://github.com/goofansu/pi-remote-control

Usage

Run /remote-control to open the menu:

  • Turn on / Turn off — start or stop the server
  • Configure URL — set the public base URL your proxy/tunnel exposes (saved to ~/.pi/agent/remote-control.json)
  • Status — show the QR code and connection URL (only when server is running)

On first use, you'll be prompted to configure the URL before the server starts.