ClipShare is a modern application for managing and sharing clipboard content between devices. It supports clipboard history and allows sharing clipboard items of different types directly between devices, including TEXT, FILES, IMAGE, HTML, and RTF.
| Mobile | Desktop | 
|---|---|
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | Not supported on desktop | 
|  | Not supported on desktop | 
composeApp/ – Main Compose Multiplatform application entry point
core/ – Core modules for app functionality
- data/– Data sources and repositories
- database/– Local database access
- design-system/– UI components and theming
- di/– Dependency injection setup
- domain/– Business logic
- navigation/– Navigation graph and routing
- process/– Background services (connectivity, clipboard, storage)
- resources/– Static resources
- ui-models/– UI data models
features/ – Feature modules (Screens)
- devices/– Device discovery and management UI
- history/– Clipboard history UI
- qrcode/– QR code generation and scanning
- scanner/– Scanner UI for QR codes
shared/ – Shared modules
- 
clipboard/– Clipboard management
- 
common/– Shared utilities and Compose helpers- app/– App-level utilities
- compose/– Compose UI helpers
 
- 
connectivity/– Signaling, UDP, WebRTC management
- 
network/– Ktor configuration
- 
storage/– Local storage handling
- 
Device Discovery ClipShare discovers nearby devices using UDP sockets. Each device broadcasts its presence and listens for others. 
- 
Signaling Server 
 To establish a connection for sharing clipboard items, ClipShare uses a lightweight signaling server to exchange SDP information and ICE candidates. The server implementation can be found here: ClipShare Signaling Server
- 
Peer-to-Peer Connection After SDP exchange, a direct P2P WebRTC connection is established for sharing clipboard content of supported types. 
- 
Background Processes The processmodule handles background tasks, binding services like connectivity and clipboard monitoring to ensure smooth operation.
- Clipboard history management
- Sharing clipboard content between devices
- Supported types: TEXT, FILES, IMAGE, HTML, RTF
- Device discovery using UDP
- Lightweight signaling server for connection setup
- Background service management for clipboard and connectivity
We welcome contributions! Here’s how you can help:
- 
Fork the repository 
- 
Create a new branch: git checkout -b feature/my-feature 
- 
Make your changes 
- 
Commit your changes: git commit -m "Add my feature"
- 
Push to your branch: git push origin feature/my-feature 
- 
Open a Pull Request on the main repository 
Please follow existing styles and include documentation where needed.
This project is licensed under the MIT License. See the LICENSE file for details.
