Skip to content

Repository files navigation

CrossSync

Status Kotlin Compose macOS Android

CrossSync is a Kotlin Multiplatform project for clipboard synchronization between macOS and Android devices over a local network, without cloud services.

Current Features

  • macOS desktop app (Compose Desktop + system tray + quick-access window).
  • Android client (Compose) with QR-based pairing to Mac.
  • Local clipboard history with categories.
  • Support for text, formatted text (HTML/RTF), images, and files in local clipboard history.
  • LAN synchronization with encryption (text and formatted text).
  • Settings: desktop auto-start, history auto-cleanup, quick history size, excluded applications.

Tech Stack

  • Kotlin Multiplatform, Compose Multiplatform
  • Ktor (server/client, WebSocket)
  • Koin
  • Room + SQLite
  • Gradle Wrapper 9.1.0

Module Structure

  • desktopApp - macOS desktop client.
  • androidApp - Android client.
  • landing - Kobweb landing page (GitHub Pages ready).
  • shared - shared business logic and feature/data/domain modules.
  • docs - screenshots and supporting materials.

Project Checklist

  • macOS desktop app
  • Android client (MVP)
  • QR pairing Android -> Mac
  • Local clipboard history and categories
  • Text/formatted-text synchronization over LAN
  • macOS quick-access window hotkey (Meta + Shift + V)
  • Basic sync and history cleanup settings
  • Image and file synchronization across devices
  • Windows/Linux desktop support
  • Public release artifacts (.dmg/.apk) and release docs

Build Instructions

Requirements

  • JDK 17
  • Android SDK installed (local.properties with sdk.dir=...)
  • macOS for running the desktop target

Build and Run for macOS

  1. Run desktop app:
    ./gradlew :desktopApp:run
  2. Run in detached mode (Gradle process exits immediately):
    ./gradlew :desktopApp:runDetached
  3. Build DMG:
    ./gradlew :desktopApp:packageDmg
    Output: desktopApp/build/compose/binaries/main/dmg/.

Build for Android

  1. Debug APK:
    ./gradlew :androidApp:assembleDebug
  2. Install debug build to a connected device:
    ./gradlew :androidApp:installDebug
  3. Release APK:
    ./gradlew :androidApp:assembleRelease
  4. Release AAB:
    ./gradlew :androidApp:bundleRelease
    Artifacts: androidApp/build/outputs/.

Screenshot

CrossSync macOS window

Status

The project is actively developed and currently in WIP stage.

Author

Developed by Maxim
License: MIT

About

Cross-platform clipboard sync app built with Kotlin Multiplatform — seamlessly share and synchronize clipboard data between devices with an offline-first, scalable architecture.

Topics

Resources

Stars

Watchers

Forks

Releases

Contributors

Languages