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
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.
Global search (⇧⌘F) — regex, type / source-app / date filters, ranked results.
Screenshots for the screenshot & annotation tool and notification mirror coming soon.
- 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).
- 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.
- 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).
- 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.
- 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.
- See your Android phone's notifications right on your Mac.
- Two-way dismiss and clear-all; per-app allow-list filter.
- 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.
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.
Requirements: macOS 13+ and Xcode command-line tools.
./build_macos_app.shGenerates clipy_macos/ClipyClone.app and installs it to /Applications.
Requirements: Flutter SDK and the Android SDK.
cd clipy_android
flutter pub get
flutter build apk --debug # Android
# flutter build ios # iOSRelease builds produce split APKs for armeabi-v7a and arm64-v8a.
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): unifiedOverlayView, 18-tool annotation engine, scroll capture, recording, beautify/effects, OCR, pin, floating thumbnail, editor window. Driven byScreenshotSessionCoordinator.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.dart—NotificationListenerServiceintegration.
Clipy uses a LAN-first protocol v2 for clipboard history and notifications:
- Discovery —
/24TCP port scan + manualIP:portpeers (cross-subnet / dual-band). - Transport — raw TCP with a 4-byte big-endian length prefix per JSON envelope (
v: 2, max 2 MB/frame). - Messages —
history,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
ackafter 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.
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
Issues and pull requests are welcome! Please open an issue first to discuss bigger changes. To contribute code:
- Fork the repo and create a feature branch.
- Make sure the macOS app builds with
./build_macos_app.shand/or the Flutter app withflutter build apk. - Open a pull request describing your change.
Releases are published automatically when pushing a version tag:
git tag v1.1.0
git push origin v1.1.0The Release workflow can also be triggered manually from GitHub Actions with a version like 1.1.0.
Licensed under the MIT License.
If Clipy saves you time, consider giving it a ⭐ — it really helps others discover the project!
