Skip to content

Repository files navigation

Clipy

Clipy

A native macOS menu-bar clipboard manager & screenshot tool, with encrypted LAN sync to your phone.

Clipboard history · Snippets & hotkeys · Screenshot annotation & on-device OCR · Global search · Phone-notification mirror · AES-GCM encrypted sync & file transfer

English | 中文

Release Build Platform Language License: MIT Stars


✨ Why Clipy

Clipy lives in your menu bar and quietly supercharges your clipboard. Beyond saving everything you copy, it bundles a full screenshot & annotation tool with on-device OCR, a global search across your history, and encrypted sync that mirrors your Android phone's clipboard, files, and notifications straight to your Mac — no cloud, no account, everything stays on your local network.

  • 🔒 Privacy-first — sync is end-to-end AES-GCM 256-bit encrypted and stays on your LAN; history can be encrypted at rest with keys in the macOS Keychain.
  • Native & lightweight — pure Swift/AppKit on macOS (stays out of your Dock), Flutter on mobile.
  • 🌍 Bilingual — switch between 中文 and English at any time.

🖼️ Screenshots

Global search with regex and type / source-app / date filters

Global search (F) — regex, type / source-app / date filters, ranked results.

Screenshots for the screenshot & annotation tool and notification mirror coming soon.

🚀 Features

📋 Clipboard history

  • Captures text, RTF, HTML, PDF, images, and files automatically.
  • SHA-256 dedup — re-copying an item moves it back to the top instead of duplicating.
  • File-aware — shows the source file path and can reveal it in Finder.
  • Exclude apps by bundle id (password managers, Keychain, etc.).
  • Configurable history limit and lazy-loaded menu for a tiny memory footprint.
  • Optional at-rest encryption of history media (keys in macOS Keychain).

✂️ Snippets (macOS)

  • Organize reusable text/code in folders, drag-to-reorder.
  • Global hotkeys per snippet/folder with a built-in shortcut recorder.
  • XML import/export of your snippet library.

📸 Screenshot & annotation (macOS)

  • Capture modes: region / window / fullscreen / scrolling long-screenshot / screen recording (MP4 + GIF).
  • 18-tool annotation engine (ported from macshot) on a single unified overlay: pencil (pressure + smoothing), line, 6 arrow styles (curved/dashed/sketchy), rectangle, filled rectangle, ellipse, marker (multiply blend), rich text (bold/italic/outline/background), auto-incrementing number, emoji/image stamp, pixelate/blur/solid/erase censor, loupe magnifier, pixel ruler, color sampler, spotlight highlight.
  • Per-tool secondary options bar + glass primary toolbar + color/emoji/font/effects popovers.
  • Beautify gradient wrapping + image effects (brightness/contrast/saturation/sharpness).
  • Scrolling capture with live side preview (Vision-based frame-stitch).
  • Recording with system-audio + microphone, webcam overlay, mouse-click highlight, keystroke display.
  • On-device OCR + QR via Apple Vision; auto-redact PII; Apple Translation overlay.
  • Pin to screen (zoom/opacity/rotate/edit), floating thumbnail feedback, standalone editor window (crop/flip/zoom), save-as, copy.
  • Configurable save directory, single-key tool shortcuts, and a global hotkey.
  • Fully localized (English + Simplified Chinese).

🔍 Global search (macOS)

  • Summon with F from anywhere.
  • Regex support, plus filters by type, source app, and date.
  • Ranked results, multi-select, copy/paste, and pin straight from results.

🔄 Encrypted LAN sync

  • AES-GCM 256-bit encrypted transport between macOS and Android.
  • Devices discover each other via /24 subnet scan and manual IP:port (works across 2.4G/5G subnets) — no cloud, no account.
  • Reliable clipboard history delivery with ack + offline queue.
  • Resilient: a bounded offline-peer queue re-delivers to devices that briefly drop off Wi-Fi.
  • Loop prevention via content hashes, so copies never bounce between devices forever.

🔔 Phone-notification mirror (Android → macOS)

  • See your Android phone's notifications right on your Mac.
  • Two-way dismiss and clear-all; per-app allow-list filter.

⌨️ Global hotkeys & 🌍 i18n

  • Hotkeys for search, screenshots, and every snippet.
  • Chinese / English UI on every platform; cross-platform — native macOS, plus Android & iOS from one Flutter codebase.
🔐 A note on security

Sync traffic is encrypted with AES-GCM 256-bit, so the contents are confidential on your LAN. Be aware that the current pre-shared key is a fixed value rather than being uniquely paired per device; therefore peer authentication relies on the user-curated authorized-devices list. In short: it protects what you send, and who you accept from is controlled by you. We welcome contributions toward per-pair key negotiation.

⬇️ Download

Grab the latest build from the Releases page:

Platform Artifact
macOS 13+ ClipyClone-macOS-v<version>.zip
Android (64-bit) ClipyClone-Android-arm64-v8a-v<version>.apk
Android (32-bit) ClipyClone-Android-armeabi-v7a-v<version>.apk
iOS Build from source (Flutter)

On first launch, grant Accessibility (paste simulation), Screen Recording (screenshots), and Local Network (sync) permissions in System Settings → Privacy & Security.

🛠️ Build from source

macOS (Swift / AppKit)

Requirements: macOS 13+ and Xcode command-line tools.

./build_macos_app.sh

Generates clipy_macos/ClipyClone.app and installs it to /Applications.

Android / iOS (Flutter)

Requirements: Flutter SDK and the Android SDK.

cd clipy_android
flutter pub get
flutter build apk --debug      # Android
# flutter build ios             # iOS

Release builds produce split APKs for armeabi-v7a and arm64-v8a.

🏗️ Architecture

macOS app — Swift + AppKit, native menu-bar app (LSUIElement, no Dock icon):

  • MenuController — status-bar menu: history, snippets, devices, and actions.
  • ClipboardManager — pasteboard polling, history persistence, dedup, sync dispatch.
  • SnippetManager — folders, snippets, hotkeys, import/export.
  • SyncManager — subnet/manual discovery, length-prefixed TCP sync (protocol v2), AES-GCM encryption, reliable history + notification delivery.
  • Sources/Screenshot/ — the full screenshot/recording engine (ported from macshot): unified OverlayView, 18-tool annotation engine, scroll capture, recording, beautify/effects, OCR, pin, floating thumbnail, editor window. Driven by ScreenshotSessionCoordinator.
  • SearchWindow — global search with filters and ranking.
  • NotificationManager — phone-notification mirror.
  • PreferencesManager, SettingsWindow, SnippetEditorWindow, LogWindow — config & editing surfaces.

Android/iOS app — Flutter/Dart:

  • lib/main.dart — tabbed UI (history, settings, logs, notifications, transfer).
  • lib/clipboard_manager.dart — clipboard monitoring, history, sync coordination.
  • lib/sync_manager.dart — subnet/manual discovery, TCP sync v2, encryption, history + notification delivery.
  • lib/notification_manager.dartNotificationListenerService integration.

🔁 Sync protocol

Clipy uses a LAN-first protocol v2 for clipboard history and notifications:

  • Discovery/24 TCP port scan + manual IP:port peers (cross-subnet / dual-band).
  • Transport — raw TCP with a 4-byte big-endian length prefix per JSON envelope (v: 2, max 2 MB/frame).
  • Messageshistory, history.fetch, notif.post / dismiss / clear / ack, hello / welcome, ping / pong, ack.
  • Encryption — AES-GCM 256-bit on payloads (HKDF when a pairing secret is set).
  • Authorization — outbound clipboard/notification push only to peers in each device's authorized list.
  • Reliability — history frames require ack after persist; bounded offline queue + endpoint cache for reconnect.
  • Loop prevention — content hashes prevent rebroadcast loops.

Full wire notes, headless Android channel rules, and code map: docs/PROTOCOL.md.

📁 Project structure

clipy_macos/Sources/      # macOS Swift/AppKit source
clipy_android/lib/        # Android & iOS Flutter/Dart source
build_macos_app.sh        # macOS app bundle build script
build_android_apk.sh      # Android split-APK build script
.github/workflows/        # Release CI
res/                      # README assets
assets/                   # Logo & app icons

🤝 Contributing

Issues and pull requests are welcome! Please open an issue first to discuss bigger changes. To contribute code:

  1. Fork the repo and create a feature branch.
  2. Make sure the macOS app builds with ./build_macos_app.sh and/or the Flutter app with flutter build apk.
  3. Open a pull request describing your change.

📦 Releasing

Releases are published automatically when pushing a version tag:

git tag v1.1.0
git push origin v1.1.0

The Release workflow can also be triggered manually from GitHub Actions with a version like 1.1.0.

📄 License

Licensed under the MIT License.

⭐ Star History

Star History Chart


If Clipy saves you time, consider giving it a ⭐ — it really helps others discover the project!

About

A cross-platform clipboard management and synchronization tool for macOS and Android.

Topics

Resources

Stars

25 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages