A secure desktop wrapper for localhost development servers. LocalWrap gives you a small, retro Windows‑95‑styled desktop app to start, stop, and open multiple local dev servers — no terminal juggling required.
- Multi‑server management — start/stop/restart servers on any port (1000–65535) from a single window.
- One‑click open — launch any running server in your browser.
- System tray integration — minimize to the tray and keep servers running in the background.
- Secure by default — Content‑Security‑Policy headers (Helmet), rate limiting, input validation, and Electron context isolation with no Node integration in the renderer.
- Cross‑platform — Windows, macOS, and Linux.
Grab a prebuilt installer for your platform from the Releases page:
| Platform | File |
|---|---|
| Windows | .exe installer (NSIS) |
| macOS | .dmg |
| Linux | .AppImage |
Note: the installers are not code‑signed yet, so Windows SmartScreen and macOS Gatekeeper will warn about an "unknown developer." On Windows choose More info → Run anyway; on macOS right‑click the app and choose Open the first time.
- Node.js 18 or newer
- npm 9 or newer
git clone https://github.com/tcballard/LocalWrap.git
cd LocalWrap
npm installnpm start # launch the app
npm run dev # launch with dev flag
# launch bound to a specific default port
npm run start:3000
npm run start:8080
npm run dev:3001Packaged with electron-builder:
npm run dist # current platform, no publish
npm run dist:mac # macOS .dmg
npm run dist:win # Windows NSIS installer
npm run dist:linux # Linux AppImageOutput is written to dist/.
npm test # run the Jest suite
npm run test:watch # watch mode
npm run test:coverageLocalWrap is built defensively:
- Helmet sets a strict Content‑Security‑Policy and other hardening headers.
- express-rate-limit caps requests (100 per 15 minutes) to the local control API.
- validator sanitizes and validates user‑supplied ports and URLs.
- The Electron renderer runs with
contextIsolationenabled andnodeIntegrationdisabled; the preload script exposes no privileged IPC.
Found a vulnerability? Please see SECURITY.md.
Contributions are welcome — see CONTRIBUTING.md.
MIT © Tom Ballard