https://github.com/sqmw/lan-clipboard
LAN clipboard sync for macOS and Windows with shared-domain discovery, text/image/file transfer, and encrypted local network sync
https://github.com/sqmw/lan-clipboard
clipboard cross-platform lan local-network macos rust sharing sync tauri typescritp udp vite windows
Last synced: 16 days ago
JSON representation
LAN clipboard sync for macOS and Windows with shared-domain discovery, text/image/file transfer, and encrypted local network sync
- Host: GitHub
- URL: https://github.com/sqmw/lan-clipboard
- Owner: sqmw
- License: mit
- Created: 2026-05-19T02:23:02.000Z (21 days ago)
- Default Branch: main
- Last Pushed: 2026-05-19T04:21:27.000Z (21 days ago)
- Last Synced: 2026-05-19T06:53:05.022Z (21 days ago)
- Topics: clipboard, cross-platform, lan, local-network, macos, rust, sharing, sync, tauri, typescritp, udp, vite, windows
- Language: Rust
- Homepage:
- Size: 2.15 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.en.md
- License: LICENSE
- Security: docs/security.md
Awesome Lists containing this project
README
lan-clipboard
Share clipboard across macOS / Windows on the same LAN.
Tauri UI · Rust Core · Shared-domain auto discovery
📖 Docs ·
🧰 Dev Guide ·
🐛 Issues ·
⭐ Star
🇨🇳 中文 | 🇬🇧 English
---
## 🖼️ UI Screenshot
Built around shared-domain status, transfer visibility, and only the configuration users actually need.
## 🎯 Design Principles
- **Minimal first**: the UI keeps only the pieces that matter in daily use, such as domain members, network selection, size limit, and transfer progress
- **Efficiency first**: the app is designed around “open, join by shared code, copy, sync” instead of exposing a complex connection flow
- **Debuggable without clutter**: logs, progress, and member state stay available, but the main screen remains quiet and focused
## ✨ Features
- **Shared-domain model**: devices with the same 6-digit shared code on the same LAN join one domain automatically
- **Shared-domain debounce**: the same content is allowed only one effective send in the domain; duplicates are dropped both while the first send is still in flight and after it has already synced successfully
- **Auto discovery**: `mDNS + UDP heartbeat` maintain a live member cache; click “Refresh” for an instant scan
- **Event-driven sync**: clipboard changes are queued and pushed to peers via TCP binary frames
- **Common payloads**: plain text / PNG image / files & folders / basic rich text (HTML/RTF)
- **Encrypted transfer**: toggleable, derived from the shared code by default
- **Multi-NIC support**: pick the correct local IP to avoid virtual adapters on Windows
- **Debug friendly**: transfer progress, type, and previews; logs live under “Advanced / Logs”
## 🚀 Quick Start (Windows + macOS)
1. Connect both devices to the same LAN and open the app.
2. Set the same 6-digit shared code on both sides and click “Save”.
3. If you have multiple NICs/virtual adapters, pick the correct local IP in “Network”, then save.
4. Click “Refresh” and confirm the peer shows up in the members list.
5. Copy text/images/files(or folders)/rich text on one device, then paste on the other.
Additional note:
If the same file or clipboard content is copied repeatedly in a short burst, the app guarantees only the first effective sync. Later duplicate copies are dropped before send to reduce loop risk and avoid wasting bandwidth.
## 📚 Docs
- `docs/README.md`: docs index
- `docs/status.md`: supported scope, limits, and key parameters (including throughput notes)
- `docs/dev.md`: development / debugging guide
- `docs/todo.md`: milestones and TODOs
## ⚠️ Current Limits
- “Any type” does not mean perfect parity for app-private clipboard formats; we only promise a cross-platform supported set (see `docs/protocol.md`)
- Throughput is not yet tuned to consistently saturate LAN bandwidth for large files/images; more data-plane optimizations are planned (see “Throughput” in `docs/status.md`)