How iamakashtechie/clipsync works
ClipSync is a local-network clipboard synchronization app for desktop and Android. The user configures pairing and sync in the UI; devices discover one another, establish pairing-code-authenticated transport, exchange text or image payloads, and apply received text to the local clipboard. Diagnostics, runtime health, conflict handling, and background capture support the main workflow. The excerpts show the UI-to-command boundary, startup wiring, and transport behavior; some command, discovery, and persistence internals are unsampled, so uncertain links are omitted.
Main entry points: commands Tauri commands · state.rs Shared runtime state · AppShell.tsx App shell · useClipSyncController.ts Sync controller
Components 22
User interface
- App shell
src/app/AppShell.tsx - Dashboard
src/features/dashboard/DashboardView.tsx - Settings view
src/features/settings/SettingsView.tsx - Validation view
src/features/validation/ValidationView.tsx - Sync controller
src/features/clipsync/hooks/useClipSyncController.ts - Tauri API client
src/shared/api/clipsyncApi.ts
Sync runtime
- Tauri commands
src-tauri/src/commands - Shared runtime state
src-tauri/src/domain/state.rs - Sync messages
src-tauri/src/domain/models.rs - Settings service
src-tauri/src/services/settings.rs - Diagnostics and logs
src-tauri/src/services/logging.rs
Peer networking
- Peer discovery
src-tauri/src/network/discovery - Handshake loop
src-tauri/src/network/transport/handshake_loop.rs - WebSocket client
src-tauri/src/network/transport/client.rs - WebSocket server
src-tauri/src/network/transport/server.rs
Platform support
- Android activity bridge
src-tauri/gen/android/app/src/main/java/com/iamakashtechie/clipsync/MainActivity.kt - Clipboard service
src-tauri/gen/android/app/src/main/java/com/iamakashtechie/clipsync/ClipSyncForegroundService.kt - Accessibility capture
src-tauri/gen/android/app/src/main/java/com/iamakashtechie/clipsync/ClipSyncAccessibilityService.kt - Desktop tray
src-tauri/src/services/tray.rs
Other components
- User
- Peer device
- System clipboard
Connections 28
- User → App shell: uses
- App shell → Dashboard: renders
- App shell → Settings view: renders
- App shell → Validation view: renders
- App shell → Sync controller: connects
- Sync controller → Tauri API client: invokes commands
- Tauri API client → Tauri commands: calls
- Tauri commands → Shared runtime state: reads and updates
- Tauri commands → Settings service: loads and saves
- Tauri commands → WebSocket client: sends payloads
- Tauri commands → Diagnostics and logs: records events
- Shared runtime state → Sync messages: holds messages
- Sync controller → System clipboard: reads and writes
- Peer device → Peer discovery: announces
- Peer discovery → Shared runtime state: updates peers
- Shared runtime state → Handshake loop: supplies peers
- Handshake loop → WebSocket client: dispatches connections
- Peer device → WebSocket server: connects
- WebSocket server → Shared runtime state: authenticates and stores
- WebSocket client → Peer device: sends authenticated payloads
- Peer device → WebSocket client: returns payloads
- WebSocket server → Diagnostics and logs: records outcomes
- Sync controller → Android activity bridge: reports policy
- Clipboard service → Android activity bridge: broadcasts clipboard events
- Accessibility capture → Android activity bridge: publishes text events
- Android activity bridge → Sync controller: dispatches native events
- Desktop tray → Shared runtime state: reads runtime status
- Desktop tray → Tauri commands: toggles sync