A desktop overlay app for secure workspace sharing between two devices over Tailscale. Chat, share files, and capture screenshots - all protected by your tailnet.
This is an Electron Desktop App
TailOverlay runs as a native desktop application. Download the project files and follow the setup instructions below to run it locally.
Workspace is only accessible over your Tailscale tailnet. No public internet exposure.
Instant messaging with your teammate via WebSocket over the secure tailnet.
One-click screenshot sharing with optional captions. Shows up instantly in the feed.
Upload and download files directly through the workspace interface.
Demonstrate Tailscale ACL-based access control for the hackathon demo.
Download the project ZIP from the three-dot menu above, then run:
cd electron npm install
Start in development mode (two terminals):
# Terminal 1: Start Vite + TypeScript watch npm run dev # Terminal 2: Start Electron npm start
Host: Click "Host Workspace" to start. Share the 6-digit code and Tailnet URL.
Join: Click "Join Workspace" and enter the host's URL and code.
electron/ ├── src/ │ ├── main/ # Electron main process │ │ ├── index.ts # Window management, IPC handlers │ │ ├── preload.ts # Context bridge │ │ ├── host-service.ts # Express + WebSocket server │ │ └── tailscale-manager.ts # CLI integration │ ├── renderer/ # React UI │ │ ├── App.tsx # Main component │ │ └── components/ # UI components │ └── shared/ # TypeScript types └── package.json