LAN clipboard synchronization for Windows — encrypted, instant, zero-config.
Copy on one machine, paste on another. No cloud, no accounts, no internet required.
- Instant clipboard sync — Sub-50ms latency over LAN
- AES-256-GCM encrypted transport — All traffic encrypted using a shared secret
- Auto-discovery via UDP broadcast — Peers find each other automatically
- System tray integration — Runs silently in the background
- Zero workflow changes — Ctrl+C and Ctrl+V work exactly as before
- Self-contained installer — No .NET or dependencies needed
- Dark aesthetic UI — Modern dark theme interface
- Challenge-response authentication — HMAC-SHA256 mutual auth
- Automatic reconnection — Exponential backoff with infinite retry
- Heartbeat monitoring — Detects dead connections proactively
Download the latest .msi installer from the Releases page. Just install and run — no additional downloads or setup required.
Windows Clipboard → ClipboardMonitor → SyncEngine → AES-256 Encrypt → TCP → Peer
- Install ClipSync on both machines (same LAN)
- Set the same shared secret on both
- Peers auto-discover each other via UDP broadcast
- Copy text on one machine → instantly available on the other
| Component | Responsibility |
|---|---|
| ClipboardMonitor | Win32 WM_CLIPBOARDUPDATE listener |
| SyncEngine | Orchestration, dedup, loop prevention, auth |
| TransportLayer | Persistent TCP + AES-256-GCM + length-prefixed framing |
| DiscoveryService | UDP broadcast auto-discovery |
| AuthenticationService | HMAC-SHA256 challenge-response |
- .NET 9 (Windows, self-contained)
- WPF (Dark theme)
- Raw TCP sockets
- AES-256-GCM encryption
- Serilog structured logging
- xUnit + FluentAssertions (127 tests)
- WiX Toolset (MSI installer)
- Windows 10/11
- .NET 9 SDK
dotnet build src/ClipSync.slndotnet run --project src/ClipSync.Appdotnet test src/ClipSync.slndotnet publish src/ClipSync.App -c Release -r win-x64 --self-contained true -p:PublishSingleFile=trueSettings stored at %LOCALAPPDATA%\ClipSync\settings.json:
| Setting | Default | Description |
|---|---|---|
listenPort |
5000 | TCP port for clipboard sync |
discoveryPort |
5001 | UDP port for auto-discovery |
sharedSecret |
(auto-generated) | Key for encryption & auth |
autoConnect |
true | Auto-connect to discovered peers |
startWithWindows |
false | Launch at Windows startup |
startMinimized |
false | Start minimized to tray |
Both peers must use the same sharedSecret to connect.
- AES-256-GCM encryption on all clipboard data
- Key derived via PBKDF2-SHA256 (100,000 iterations)
- HMAC-SHA256 challenge-response authentication
- Constant-time comparison (prevents timing attacks)
- Unique random nonce per message
- GCM auth tag prevents tampering
src/
├── ClipSync.Core/ # Domain models, interfaces, crypto, serialization
├── ClipSync.App/ # WPF application, services, dark UI
├── ClipSync.Tests/ # 127 unit, integration & performance tests
└── installer/ # WiX MSI installer definition
MIT License — Copyright © 2024-2026 Manas Choksi
Developed by Manas Choksi
- GitHub: @choksi2212
- Repository: clip-sync
