Universal Clipboard for Every Device — A cross-platform clipboard sharing app that works like Apple's Universal Clipboard, but for all platforms.
DecentPaste lets you seamlessly share your clipboard between all your devices over your local network. Copy on your laptop, paste on your phone. No cloud servers, no accounts, no subscriptions — just secure, peer-to-peer clipboard sync.
- Cross-Platform — Works on Windows, macOS, Linux, Android, and iOS
- Decentralized — No central server; devices connect directly via P2P
- Auto-Discovery — Devices find each other automatically on your local network
- End-to-End Encrypted — AES-256-GCM encryption; only paired devices can read your clipboard
- Secure Pairing — 6-digit PIN verification with X25519 key exchange
- Lightweight — Small binary size (~15MB) thanks to Tauri
- Open Source — Apache 2.0 licensed
┌──────────────┐ ┌──────────────┐
│ Device A │ │ Device B │
│ │ Local Network (mDNS) │ │
│ 1. Copy │ ──────────────────────────► │ │
│ text │ Auto-discovery │ │
│ │ │ │
│ 2. Encrypt │ Encrypted via │ 3. Decrypt │
│ with │ ──────────────────────────► │ with │
│ shared │ gossipsub (P2P) │ shared │
│ secret │ │ secret │
│ │ │ │
│ │ │ 4. Paste! │
└──────────────┘ └──────────────┘
- Discovery: Devices find each other using mDNS (like AirDrop/Chromecast)
- Pairing: One-time secure pairing with PIN verification establishes a shared secret
- Sync: Clipboard changes are encrypted and broadcast to paired devices
- Receive: Paired devices decrypt and update their clipboard automatically
Download the latest release for your platform:
| Platform | Download |
|---|---|
| Windows | DecentPaste-x.x.x-windows.msi |
| macOS | DecentPaste-x.x.x-macos.dmg |
| Linux (AppImage) | DecentPaste-x.x.x-linux.AppImage |
| Linux (deb) | DecentPaste-x.x.x-linux.deb |
| Android | DecentPaste-x.x.x-android.apk |
| iOS | Coming soon |
Prerequisites:
# Clone the repository
git clone https://github.com/decentpaste/decentpaste.git
cd decentpaste/decentpaste-app
# Install dependencies
yarn install
# Run in development mode
yarn tauri dev
# Build for production
yarn tauri build- Install DecentPaste on two or more devices
- Ensure devices are on the same local network (Wi-Fi/LAN)
- Open the app — devices will discover each other automatically
- Pair devices using the 6-digit PIN
- Copy on one device, paste on another!
- On Device A: Go to Peers → Click Pair next to the discovered device
- On Device B: Accept the pairing request
- Both devices display a 6-digit PIN — verify they match
- Confirm on Device A
- Done! Devices are now paired and will sync automatically
On Android and iOS, automatic clipboard monitoring is disabled due to platform restrictions. Use the "Share Clipboard" button on the Dashboard to manually send clipboard content to paired devices.
DecentPaste is designed with security as a priority:
| Layer | Technology | Purpose |
|---|---|---|
| Key Exchange | X25519 ECDH | Secure key derivation without transmitting secrets |
| Encryption | AES-256-GCM | Authenticated encryption for clipboard content |
| Hashing | SHA-256 | Content deduplication and integrity verification |
| Transport | libp2p Noise | Encrypted peer-to-peer connections |
- Devices exchange public keys (X25519)
- Each device independently derives the same shared secret using ECDH
- The shared secret is never transmitted — only public keys are exchanged
- 6-digit PIN provides visual verification against MITM attacks
- Each device pair has a unique encryption key
- Shared secrets: Stored locally in
~/.local/share/com.decentpaste.app/peers.json - Private key: Stored in
~/.local/share/com.decentpaste.app/private_key.bin - No cloud: All data stays on your devices
Note: Secrets are currently stored in plaintext. OS keychain integration is planned for future releases.
| Component | Technology |
|---|---|
| App Framework | Tauri v2 |
| Backend | Rust |
| Frontend | TypeScript + Tailwind CSS v4 |
| Networking | libp2p (mDNS, gossipsub, request-response) |
| Encryption | aes-gcm, x25519-dalek |
decentpaste/
├── decentpaste-app/ # Main Tauri application
│ ├── src/ # Frontend (TypeScript)
│ │ ├── app.ts # Main UI
│ │ ├── api/ # Tauri command wrappers
│ │ └── state/ # Reactive state management
│ └── src-tauri/ # Backend (Rust)
│ ├── src/
│ │ ├── network/ # libp2p networking
│ │ ├── clipboard/ # Clipboard monitoring
│ │ ├── security/ # Encryption & pairing
│ │ └── storage/ # Settings & persistence
│ └── Cargo.toml
├── website/ # Landing page
├── LICENSE # Apache 2.0
├── TRADEMARK.md # Trademark policy
└── NOTICE # Third-party attributions
# Terminal 1
cd decentpaste-app
yarn tauri dev
# Terminal 2 (different port)
TAURI_DEV_PORT=1421 yarn tauri devSee ARCHITECTURE.md for detailed technical documentation.
- Image and file clipboard support
- Internet relay for cross-network sync
- OS keychain integration for secret storage
- Persistent clipboard history
- Browser extension
- System tray improvements
Contributions are welcome! Please read our contributing guidelines before submitting PRs.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the Apache License 2.0 — see the LICENSE file for details.
"DecentPaste" and the DecentPaste logo are trademarks. See TRADEMARK.md for usage guidelines.
Note: The Apache 2.0 license grants rights to the code, but does not grant rights to use the DecentPaste trademarks or logos.
- Tauri — For the amazing cross-platform framework
- libp2p — For decentralized networking
- RustCrypto — For cryptographic primitives
DecentPaste — Your clipboard, everywhere.
GitHub ·
Issues ·
Releases
