Real-time, secure clipboard synchronization between Android/HyperOS and macOS
Hypo enables seamless clipboard synchronization between your Xiaomi/HyperOS device and macOS machine. Copy on one device, paste on anotherβinstantly.
- π Real-time Sync: Sub-second clipboard updates across devices
- π E2E Encrypted: AES-256-GCM encryption, your data never exposed
- π‘ Dual Transport: LAN-first for speed, cloud fallback for mobility
- π Multi-Format: Text, links, images (β€1MB), and files
- π Clipboard History: Search and restore past clipboard items (macOS)
- π Rich Notifications: Preview content before pasting
- π¨ Native UI: SwiftUI on macOS, Material 3 on Android
βββββββββββββββββββ LAN (mDNS) ββββββββββββββββββββ
β macOS Client βββββββββββββββββββββββββββββββΊβ Android Client β
β (Swift/SwiftUI)β β (Kotlin/Compose) β
ββββββββββ¬βββββββββ ββββββββββ¬ββββββββββ
β β
β Cloud Fallback (WebSocket) β
ββββββββββββββββββββββ¬ββββββββββββββββββββββββββ
β
βββββββββββΌβββββββββββ
β Backend Relay β
β (Rust/Actix-web) β
β + Redis β
ββββββββββββββββββββββ
See: docs/architecture.mermaid for detailed component diagram
- macOS: macOS 26+ with Xcode 15+
- Android: HyperOS 3+ (or Android 8+) device
- Backend (optional for cloud sync): Docker or Rust 1.75+
Coming soon - project in development
For now, see Development Setup to build from source.
| Document | Description |
|---|---|
docs/architecture.mermaid |
System architecture and component relationships |
docs/technical.md |
Technical specifications and implementation details |
tasks/tasks.md |
Development roadmap and task breakdown |
docs/status.md |
Current project status and progress tracking |
changelog.md |
Version history and release notes |
hypo/
βββ macos/ # Swift/SwiftUI macOS client
βββ android/ # Kotlin/Compose Android client
βββ backend/ # Rust backend relay server
βββ docs/ # Architecture and specifications
βββ tasks/ # Development tasks and planning
βββ tests/ # Cross-platform integration tests
# Navigate to macOS project
cd macos
# Open the Swift Package workspace in Xcode
xed HypoApp.xcworkspace # or: open HypoApp.xcworkspace
# Set your development team in Signing & Capabilities
# Build and run (βR)Requirements:
- macOS 26+ (Sequoia or later)
- Xcode 15+
- Swift 6
# Navigate to Android project
cd android
# Build debug APK
./gradlew assembleDebug
# Install on connected device
adb install app/build/outputs/apk/debug/app-debug.apkRequirements:
- Android Studio Hedgehog or later
- Android SDK 26+ (API 26)
- Kotlin 1.9.22 toolchain (Gradle wrapper 8.7; wrapper JAR is downloaded on demand)
Note: The repository omits the binary
gradle-wrapper.jarin favour of a base64-encoded copy. The providedgradlewscripts reconstruct the official Gradle 8.7 wrapper JAR automatically the first time you run them, keeping the tree free of binaries while preserving reproducible builds.
# Navigate to backend project
cd backend
# Install dependencies and build
cargo build --release
# Run with Redis (Docker)
docker-compose up -d redis
cargo run --release
# Or run everything with Docker
docker-compose upRequirements:
- Rust 1.75+
- Redis 7+ (or Docker)
The current toolchain compiles cleanly in this repository. To reproduce the latest verification run:
# macOS Swift package build (from repo root)
cd macos
swift build
# Backend relay (from repo root)
cd backend
cargo build
# Android unit tests (requires Android SDK + JDK 17)
./scripts/setup-android-sdk.sh # downloads command-line tools + platform 34 into .android-sdk/
export ANDROID_SDK_ROOT="$(pwd)/.android-sdk"
export JAVA_HOME="/usr/lib/jvm/java-17-openjdk-amd64" # adjust for your platform
cd android
./gradlew test --console=plainThe helper script scripts/setup-android-sdk.sh fetches the Android command-
line tools and installs platform 34 + Build Tools 34.0.0 in .android-sdk/. If
you already have an SDK installed, set ANDROID_SDK_ROOT to that location and
skip the script. Unit tests require JDK 17; set JAVA_HOME accordingly before
invoking Gradle.
Hypo takes security seriously:
- End-to-End Encryption: All clipboard data encrypted with AES-256-GCM
- Device Pairing: ECDH key exchange via QR code (LAN) or secure relay (cloud)
- Certificate Pinning: Prevents MITM attacks on cloud relay
- No Data Storage: Backend relay never stores clipboard content
- Key Rotation: Automatic 30-day key rotation with backward compatibility
Threat Model: See docs/technical.md#31-threat-model
| Sprint | Timeline | Milestone |
|---|---|---|
| Sprint 1 | Weeks 1-2 | Foundation & Architecture |
| Sprint 2 | Weeks 3-4 | Core Sync Engine β |
| Sprint 3 | Weeks 5-6 | Transport Layer (LAN + Cloud) β We are here |
| Sprint 4 | Weeks 7-8 | Content Type Handling (Text, Images, Files) |
| Sprint 5 | Weeks 9-10 | User Interface Polish |
| Sprint 6 | Weeks 11-12 | Device Pairing (QR + Remote) |
| Sprint 7 | Weeks 13-14 | Testing & Optimization |
| Sprint 8 | Weeks 15-16 | Beta Release |
Detailed Tasks: See tasks/tasks.md
Phase: Sprint 2 - Core Sync Engine β Progress: 25% Last Updated: October 6, 2025
Recent Milestones:
- β Provisioned Android SDK toolchain and Gradle wrapper for reproducible builds
- β Realigned Android project to Kotlin 1.9.22 for Compose compiler compatibility
- β
Android CryptoService and SyncCoordinator unit suites passing via
./gradlew - β macOS and backend crypto regression tests green after interop vector refresh
Next Steps:
- Plumb CryptoService into sync engines for encrypted payload exchange
- Prototype LAN discovery (Bonjour on macOS, NSD on Android) for direct transport
- Stand up integrated relay + Redis environment for end-to-end encrypted routing tests
Full Status: See docs/status.md
# macOS: Run unit tests
cd macos
swift test
# Android: Run unit tests (after provisioning the SDK + JDK 17)
cd android
./gradlew testDebugUnitTest --tests "*CryptoServiceTest" --tests "*SyncCoordinatorTest"
# Backend: Run unit tests
cd backend
cargo test
# Integration tests (coming soon)
cd tests
./run_integration_tests.shTest Coverage Target: 80% for clients, 90% for backend
| Metric | Target | Status |
|---|---|---|
| LAN Sync Latency (P95) | < 500ms | Not yet measured |
| Cloud Sync Latency (P95) | < 3s | Not yet measured |
| Memory Usage (macOS) | < 50MB | Not yet measured |
| Memory Usage (Android) | < 30MB | Not yet measured |
| Battery Drain (Android) | < 2% per day | Not yet measured |
Note: Project currently in solo development phase. Contribution guidelines will be added before public beta.
MIT License - See LICENSE for details
- Inspired by Apple's Universal Clipboard
- Built for the Xiaomi/HyperOS community
- Powered by open-source technologies
- Issues: GitHub Issues (coming soon)
- Discussions: GitHub Discussions (coming soon)
This project is in active development and not yet ready for production use. APIs and features may change without notice.
Built with β€οΈ for seamless cross-platform workflows