<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>ClipHop blog</title><description>End-to-end encrypted clipboard sync between Android and macOS over Bluetooth. No cloud. No account. No internet required.</description><link>https://cliphop.org</link><language>en-us</language><copyright>© 2026 Anshul Garg</copyright><managingEditor>support@cliphop.org (Anshul Garg)</managingEditor><webMaster>support@cliphop.org (Anshul Garg)</webMaster><item><title>What your clipboard manager actually sees: a threat model</title><link>https://cliphop.org/blog/clipboard-threat-model</link><guid isPermaLink="true">https://cliphop.org/blog/clipboard-threat-model</guid><description>A plain-language threat model for clipboard managers on Android and macOS. What the OS lets apps read, what a sync tool adds to that, and what the specific attacker classes worth worrying about actually look like.</description><pubDate>Thu, 23 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;People often treat clipboard managers as utilities — something you install and forget. In practice, a &lt;strong&gt;clipboard manager&lt;/strong&gt; has more privileged access to your personal data than most apps on your phone or laptop: links you&apos;re about to send, OTPs you just received, snippets of whatever you&apos;re writing, command-line arguments you don&apos;t want in shell history, private URLs, partial passwords.&lt;/p&gt;
&lt;p&gt;This post walks through the &lt;strong&gt;realistic threat model&lt;/strong&gt; for clipboard managers on both Android and macOS — what the operating system lets any app see, what a sync tool specifically adds, what attackers to actually worry about, and what ClipHop does differently.&lt;/p&gt;
&lt;p&gt;It&apos;s not a fear piece. It&apos;s a factual map of the trust surface.&lt;/p&gt;
&lt;h2&gt;What the OS lets apps read&lt;/h2&gt;
&lt;h3&gt;macOS&lt;/h3&gt;
&lt;p&gt;On macOS, the &lt;strong&gt;clipboard is essentially public to any app with foreground access&lt;/strong&gt;. &lt;code&gt;NSPasteboard&lt;/code&gt; / &lt;code&gt;UIPasteboard&lt;/code&gt; APIs are available to any signed app — no special permission prompt. Apps can poll the clipboard continuously if they want (though aggressive polling is throttled by the system).&lt;/p&gt;
&lt;p&gt;macOS 14 added &lt;strong&gt;user-visible toasts&lt;/strong&gt; when an app reads the clipboard in a way that wasn&apos;t user-initiated, and some apps respect &lt;code&gt;NSPasteboardTypeTransient&lt;/code&gt; and &lt;code&gt;NSPasteboardTypeConcealed&lt;/code&gt; flags (used by password managers to signal &quot;don&apos;t log this&quot;). Those flags are advisory — a malicious app can ignore them.&lt;/p&gt;
&lt;h3&gt;Android&lt;/h3&gt;
&lt;p&gt;Pre-Android 10, any app could read the clipboard at any time, including in the background. Post-Android 10, &lt;strong&gt;background clipboard reads are blocked&lt;/strong&gt; — only the foreground app can read. Post-Android 13, &lt;strong&gt;the system shows a &quot;Content pasted&quot; toast&lt;/strong&gt; when an app reads the clipboard. Post-Android 13, there&apos;s also a &lt;strong&gt;paste-preview masking&lt;/strong&gt; option (which ClipHop respects) to hide clipboard content from system keyboard paste suggestions.&lt;/p&gt;
&lt;h3&gt;The bottom line&lt;/h3&gt;
&lt;p&gt;The clipboard is less protected than, say, contacts or location. Any app you&apos;ve trusted enough to install has a plausible way to observe what you copy. A clipboard &lt;em&gt;manager&lt;/em&gt; voluntarily occupies that observer role so you can search / pin / sync your clipboard history — you&apos;re trading observation access for utility.&lt;/p&gt;
&lt;p&gt;That&apos;s fine. The question is what the manager does with that access.&lt;/p&gt;
&lt;h2&gt;What a sync tool adds&lt;/h2&gt;
&lt;p&gt;A clipboard sync tool specifically does two things the OS clipboard doesn&apos;t:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Reads from the source device&lt;/strong&gt; (like any clipboard manager).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Writes to the destination device&lt;/strong&gt; (a capability the OS clipboard can&apos;t offer across device boundaries).&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Both sides are in the trust surface. A compromised sync tool can:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Log every clip before sending.&lt;/li&gt;
&lt;li&gt;Forward clips to a third party.&lt;/li&gt;
&lt;li&gt;Inject arbitrary content into the destination clipboard (e.g., swap a bitcoin address mid-paste).&lt;/li&gt;
&lt;li&gt;Read local history long after the clip was &quot;forgotten.&quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;None of those are hypothetical attacks — clipboard-swap malware is a documented real-world category, especially for cryptocurrency addresses.&lt;/p&gt;
&lt;h2&gt;The attacker classes worth modeling&lt;/h2&gt;
&lt;p&gt;For a clipboard sync tool, there are three plausible attacker classes:&lt;/p&gt;
&lt;h3&gt;1. The sync vendor itself&lt;/h3&gt;
&lt;p&gt;This is the attacker many people don&apos;t consciously model but should. If the sync tool routes your clipboard through the vendor&apos;s servers, the vendor has &lt;strong&gt;custody&lt;/strong&gt; of your clipboard stream. That custody is subject to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Compromise&lt;/strong&gt;: credentials breach, server intrusion, backups leaking.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Subpoena&lt;/strong&gt;: legal process forcing disclosure.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Policy change&lt;/strong&gt;: terms-of-service updates, new parent company after acquisition.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Employee access&lt;/strong&gt;: internal abuse by a rogue engineer.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Even &quot;end-to-end encrypted&quot; cloud services usually hold &lt;em&gt;some&lt;/em&gt; metadata — who connected when, which devices are paired, session times. For a clipboard stream that routinely contains credentials, any custody position is substantial.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ClipHop&apos;s answer&lt;/strong&gt;: there is no server. There is no vendor custody. Clipboard text and key material exist only on the two paired devices. We don&apos;t have the option to leak data we never receive.&lt;/p&gt;
&lt;h3&gt;2. A malicious app on one of your devices&lt;/h3&gt;
&lt;p&gt;If you install a malicious app on either device in the pair, the threat model degrades fast:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It can read the source clipboard directly (on-device).&lt;/li&gt;
&lt;li&gt;It can potentially read the sync tool&apos;s local storage if the OS sandbox is breached.&lt;/li&gt;
&lt;li&gt;On Android, it can &lt;em&gt;try&lt;/em&gt; to listen for the sync tool&apos;s foreground service notification to infer activity timing (a side channel).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;What sync tools can and can&apos;t do about this&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Can&lt;/strong&gt;: store keys in hardware-backed secure storage (Keychain on Mac, Keystore on Android). Doesn&apos;t stop clipboard-level reads, but prevents key exfiltration.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Can&lt;/strong&gt;: use the system&apos;s designated &quot;transient&quot; / &quot;concealed&quot; flags so other apps that respect them skip the paste.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Can&apos;t&lt;/strong&gt;: prevent another legitimate app from reading the clipboard. That&apos;s the OS&apos;s design.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Can&lt;/strong&gt;: bias the product toward &lt;strong&gt;manual send&lt;/strong&gt;, so the clipboard leaves the device only when the user explicitly asks for it (see below).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;3. A network observer between devices&lt;/h3&gt;
&lt;p&gt;If the sync tool transmits over a network, an observer on that network can attempt:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Passive eavesdropping&lt;/strong&gt; (if encryption is weak).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MITM attacks&lt;/strong&gt; (if identity authentication is weak).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Traffic analysis&lt;/strong&gt; (timing, size, even on encrypted channels).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;ClipHop&apos;s answer&lt;/strong&gt;: transport is Bluetooth LE directly between two paired devices, not a network hop. The attacker has to be within Bluetooth radio range (~10–15 m) to observe traffic at all. Even then: AES-256-GCM with per-reconnect X25519 ECDH session keys, authenticated by Ed25519 long-term identity keys, with user-verifiable identity fingerprints. A passive attacker sees ciphertext. An active attacker has to break the ECDH or impersonate a key — both detected by fingerprint mismatch.&lt;/p&gt;
&lt;p&gt;See &lt;a href=&quot;/blog/end-to-end-encrypted-clipboard-crypto&quot;&gt;How ClipHop encrypts your clipboard&lt;/a&gt; for the crypto detail.&lt;/p&gt;
&lt;h2&gt;The content-filtering claim: why it&apos;s mostly a lie&lt;/h2&gt;
&lt;p&gt;A common claim on competing clipboard tools is that they &lt;strong&gt;&quot;automatically filter out password-manager pastes&quot;&lt;/strong&gt; so your passwords never sync. It sounds good. It&apos;s also hard to do reliably.&lt;/p&gt;
&lt;p&gt;What &quot;password filtering&quot; typically means in practice:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Check if the macOS &lt;code&gt;NSPasteboardTypeTransient&lt;/code&gt; / &lt;code&gt;NSPasteboardTypeConcealed&lt;/code&gt; flags are set. Password managers that set these will be filtered. Ones that don&apos;t, won&apos;t.&lt;/li&gt;
&lt;li&gt;On Android, check for the flag on the &lt;code&gt;ClipData&lt;/code&gt; that newer password managers set. Older ones don&apos;t.&lt;/li&gt;
&lt;li&gt;Pattern-match for &quot;looks like a password&quot; (high entropy, specific length). False-positive-prone — filters legit tokens, API keys, URLs. False-negative-prone — lets through long diceware passwords.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The result: content-filtering stops some password-manager paste leaks, but you cannot rely on it to catch all of them. OTPs in particular are often unflagged and unfiltered.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ClipHop&apos;s answer&lt;/strong&gt;: we ship &lt;strong&gt;manual send by default&lt;/strong&gt;. Every clipboard item sits in your history until you tap the ✈ send icon. Your clipboard doesn&apos;t leave the device unless you pick the item. There&apos;s an opt-in &lt;strong&gt;Auto-send beta&lt;/strong&gt; that sends everything automatically — and the app itself warns that auto-send is unfiltered (including passwords and OTPs). We don&apos;t claim filtering we can&apos;t deliver; instead we design the default flow so you&apos;re the filter.&lt;/p&gt;
&lt;h2&gt;What you can actually check&lt;/h2&gt;
&lt;p&gt;Before installing any clipboard sync tool — not just ours — ask:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Where does the clipboard go?&lt;/strong&gt; Server, peer-to-peer, local-only?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Who holds the keys?&lt;/strong&gt; Vendor, device, neither?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Can you verify the pairing?&lt;/strong&gt; Fingerprint, certificate, or just &quot;it worked&quot;?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;What happens on account compromise?&lt;/strong&gt; Is there even an account?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;What&apos;s the send model?&lt;/strong&gt; Auto-send everything, or opt-in per clip?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;What&apos;s on disk?&lt;/strong&gt; Clipboard history, session logs, forwarding queues?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;What telemetry does it send?&lt;/strong&gt; Analytics, crash reports, feature flags?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;For ClipHop specifically: peer-to-peer only, keys in hardware-backed storage on each device, fingerprint-verifiable, no accounts, manual send by default, history + identity-only on disk, zero telemetry.&lt;/p&gt;
&lt;h2&gt;Further reading&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;/blog/end-to-end-encrypted-clipboard-crypto&quot;&gt;How ClipHop encrypts your clipboard&lt;/a&gt; — the cryptographic design in detail.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/blog/bluetooth-le-for-clipboard-sync&quot;&gt;Why we chose Bluetooth LE&lt;/a&gt; — the transport rationale.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/privacy&quot;&gt;Privacy policy&lt;/a&gt; — what we collect (nothing), what stays on your devices, what permissions we ask for.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The threat model isn&apos;t complicated once you actually look at it. The hard part is matching a product&apos;s design to the threats you care about. For clipboards specifically — a channel that carries credentials more often than any other sync stream — the bar should be higher than &quot;it just works.&quot;&lt;/p&gt;
</content:encoded><category>security</category><category>privacy</category><category>threat-model</category><category>clipboard</category><category>android</category><category>mac</category><author>support@cliphop.org (Anshul Garg)</author></item><item><title>ClipHop vs KDE Connect: when to pick which for Android–Mac clipboard sync</title><link>https://cliphop.org/blog/cliphop-vs-kde-connect</link><guid isPermaLink="true">https://cliphop.org/blog/cliphop-vs-kde-connect</guid><description>An honest side-by-side of ClipHop and KDE Connect for Android–Mac clipboard sharing. Transport, setup, security model, and the scenarios where each one wins.</description><pubDate>Sun, 19 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;If you use an Android phone with a Mac and care about &lt;strong&gt;clipboard sync&lt;/strong&gt;, two serious non-cloud options exist: &lt;strong&gt;KDE Connect&lt;/strong&gt; and &lt;strong&gt;ClipHop&lt;/strong&gt;. They share almost nothing architecturally — KDE Connect runs over LAN / WiFi, ClipHop runs over Bluetooth LE — and each is the right answer for a different set of constraints.&lt;/p&gt;
&lt;p&gt;This post is an honest side-by-side. We built ClipHop because we wanted something KDE Connect doesn&apos;t do; we still think KDE Connect is excellent for the scenarios it targets. Here&apos;s how to pick.&lt;/p&gt;
&lt;h2&gt;What each tool actually is&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;KDE Connect&lt;/strong&gt; is a cross-platform sync framework from the KDE project. It&apos;s open-source, actively maintained, and does much more than clipboards — notifications, file transfer, media control, battery status, remote input, SMS mirroring, shared browser tabs. It runs as a long-lived service on both devices, speaks a JSON-over-TLS protocol, and discovers peers over mDNS on the local network.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ClipHop&lt;/strong&gt; is a single-purpose tool that only does clipboard sync between one Android phone and one Mac. It runs over Bluetooth LE (no network required), uses X25519 ECDH for per-reconnect session keys on AES-256-GCM, and authenticates with Ed25519 identity keys stored in the Keychain / Keystore. See &lt;a href=&quot;/blog/end-to-end-encrypted-clipboard-crypto&quot;&gt;How ClipHop encrypts your clipboard&lt;/a&gt; for the cryptographic detail.&lt;/p&gt;
&lt;p&gt;That &quot;only does clipboard&quot; choice is deliberate. Clipboards are the highest-value-per-byte data that moves between devices, and they deserve a focused tool.&lt;/p&gt;
&lt;h2&gt;Transport differences that actually matter&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Criterion&lt;/th&gt;
&lt;th&gt;KDE Connect&lt;/th&gt;
&lt;th&gt;ClipHop&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Transport&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;TCP/UDP over WiFi (LAN)&lt;/td&gt;
&lt;td&gt;Bluetooth LE (L2CAP / GATT)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Works without WiFi&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Works on captive-portal WiFi&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;❌ (no peer-to-peer)&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Works on airplanes&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅ (Bluetooth only)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Works on client-isolated WiFi&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Works across VLAN boundaries&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Discovery&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;mDNS on local network&lt;/td&gt;
&lt;td&gt;BLE scan / advertisement&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Range&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Whole network&lt;/td&gt;
&lt;td&gt;~10–15 m line of sight&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Throughput&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;High (WiFi speeds)&lt;/td&gt;
&lt;td&gt;Moderate (~50–200 kbit/s sustained)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;The LAN requirement is KDE Connect&apos;s one real limitation, and it&apos;s a bigger one than it used to be:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Home networks&lt;/strong&gt; are now commonly mesh-based with client isolation between devices.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Hotel and coffee-shop WiFi&lt;/strong&gt; almost always has client isolation on.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Corporate networks&lt;/strong&gt; segment devices by role — personal phone and laptop often can&apos;t reach each other.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Travel workflows&lt;/strong&gt; that cross networks break the pair constantly.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you&apos;re always on the same stable WiFi (a home network with a simple router, say), KDE Connect works beautifully. If you cross networks regularly, it falls over.&lt;/p&gt;
&lt;p&gt;BLE doesn&apos;t care about any of that. Two paired devices find each other and connect whenever they&apos;re in radio range. The trade is range (~10–15 m instead of whole-building) and throughput (fine for text, slow for large files).&lt;/p&gt;
&lt;h2&gt;Feature surface: broad vs focused&lt;/h2&gt;
&lt;p&gt;KDE Connect does a &lt;em&gt;lot&lt;/em&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Clipboard sync (both directions)&lt;/li&gt;
&lt;li&gt;Notification mirroring (phone → desktop)&lt;/li&gt;
&lt;li&gt;File transfer&lt;/li&gt;
&lt;li&gt;Remote input (use your phone as a trackpad)&lt;/li&gt;
&lt;li&gt;Media control (pause/play on desktop from phone)&lt;/li&gt;
&lt;li&gt;Battery level display&lt;/li&gt;
&lt;li&gt;Remote commands / SMS mirroring / shared browsers on Linux&lt;/li&gt;
&lt;li&gt;Ring-my-phone, find-my-device&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ClipHop does &lt;strong&gt;one thing&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Clipboard sync (both directions)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That&apos;s it. Nothing else. No file transfer, no notifications, no remote control. If you want broad cross-device sync, KDE Connect&apos;s feature surface is probably what you want and ClipHop won&apos;t cover it.&lt;/p&gt;
&lt;p&gt;If clipboard is your real pain point — the 80% of cross-device moves you actually do — a single-purpose tool has advantages: smaller attack surface, fewer permissions, clearer mental model, no &quot;why is it using battery?&quot; moments because the only background work is the clipboard.&lt;/p&gt;
&lt;h2&gt;Security model&lt;/h2&gt;
&lt;p&gt;Both tools are honest about their model but the details differ.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;KDE Connect&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;TLS 1.2+ between devices with certificate pinning (after first-pair).&lt;/li&gt;
&lt;li&gt;Pairing is accept-prompt based (&quot;Device X wants to pair&quot;).&lt;/li&gt;
&lt;li&gt;Per-pair long-term certificates stored locally.&lt;/li&gt;
&lt;li&gt;No external trust dependency — but also no user-visible fingerprint to re-verify ongoing.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;ClipHop&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;X25519 ECDH per reconnect produces a fresh AES-256-GCM session key via HKDF.&lt;/li&gt;
&lt;li&gt;Ephemeral key exchange signed by long-term Ed25519 identity keys in the Keychain / Keystore.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Identity fingerprint&lt;/strong&gt; displayed to user — verify at pair time and any time after from &lt;em&gt;Paired Devices&lt;/em&gt; (Android) / &lt;em&gt;Preferences → Security&lt;/em&gt; (Mac).&lt;/li&gt;
&lt;li&gt;Forward secrecy across sessions.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The fingerprint-verification model is the one meaningful security difference. KDE Connect is secure enough for most threat models but doesn&apos;t give you a way to check cryptographically that today&apos;s peer is the same peer you paired with yesterday. ClipHop&apos;s fingerprint is exactly that check — ongoing MITM detection rather than a one-shot accept-and-trust.&lt;/p&gt;
&lt;h2&gt;Setup effort&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;KDE Connect&lt;/strong&gt;: install both apps, they discover each other on the LAN, accept the pair prompt on both sides. Works immediately if you&apos;re on the right network.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ClipHop&lt;/strong&gt;: install both apps, scan a QR code (or enter a 6-digit code) once, compare fingerprints, done. Pairing persists across restarts and reconnection is automatic.&lt;/p&gt;
&lt;p&gt;Roughly equivalent setup friction. KDE Connect is slightly simpler &lt;em&gt;if you&apos;re on a compatible network&lt;/em&gt;; ClipHop is slightly more explicit and gives you a fingerprint to verify.&lt;/p&gt;
&lt;h2&gt;Resource cost&lt;/h2&gt;
&lt;p&gt;On Android specifically, both tools need permissions that non-background apps don&apos;t:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;KDE Connect&lt;/strong&gt; runs a foreground service for notifications and maintains TCP connections. Moderate-to-high battery impact depending on activity.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ClipHop&lt;/strong&gt; runs a foreground service to keep the BLE link alive across screen-off. BLE is radio-efficient relative to WiFi — real-world battery impact is minor.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;On Mac, both are menu-bar apps with negligible CPU at idle.&lt;/p&gt;
&lt;h2&gt;When to pick which&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Pick KDE Connect if:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You want broad cross-device sync (notifications, files, media control, remote input), not just clipboard.&lt;/li&gt;
&lt;li&gt;Your devices are always on the same WiFi network.&lt;/li&gt;
&lt;li&gt;You&apos;re comfortable with the &quot;accept the pair prompt&quot; trust model and don&apos;t need fingerprint verification.&lt;/li&gt;
&lt;li&gt;You prefer fully-open-source, community-audited software today (KDE Connect is FOSS; ClipHop isn&apos;t open-source yet but the crypto is documented).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Pick ClipHop if:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Clipboard sync specifically is your pain point.&lt;/li&gt;
&lt;li&gt;You travel, co-work, or use coffee-shop WiFi — anywhere that &quot;same LAN&quot; is unreliable.&lt;/li&gt;
&lt;li&gt;You want end-to-end encrypted clipboard sync with a verifiable identity fingerprint.&lt;/li&gt;
&lt;li&gt;You want a small tool that does one thing and doesn&apos;t sit in the background running protocols you don&apos;t use.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Run both if:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;You can. They don&apos;t conflict. A common setup: KDE Connect at home for file transfer and notifications, ClipHop everywhere — including at home — because it works before the WiFi does, and the fingerprint model gives you stronger verification for the clipboard specifically.&lt;/p&gt;
&lt;h2&gt;The shortest version&lt;/h2&gt;
&lt;p&gt;KDE Connect is a &lt;strong&gt;cross-device sync framework&lt;/strong&gt; that happens to include clipboards. ClipHop is a &lt;strong&gt;clipboard tool&lt;/strong&gt; that happens to use Bluetooth. Pick the one whose shape fits your actual use.&lt;/p&gt;
&lt;p&gt;If you decide ClipHop is worth trying: &lt;a href=&quot;/download#mac&quot;&gt;download the Mac app&lt;/a&gt;, grab the Android app from the &lt;a href=&quot;https://play.google.com/store/apps/details?id=org.cliphop.app&quot;&gt;Play Store&lt;/a&gt;, and the &lt;a href=&quot;/blog/clipboard-sync-android-mac-setup&quot;&gt;60-second setup guide&lt;/a&gt; will have you pasting across devices in one cup of coffee. For the transport reasoning, see &lt;a href=&quot;/blog/bluetooth-le-for-clipboard-sync&quot;&gt;Why Bluetooth LE&lt;/a&gt;. For the comparison to Apple&apos;s side of the world, see &lt;a href=&quot;/blog/universal-clipboard-android-alternative&quot;&gt;Universal Clipboard for Android&lt;/a&gt;.&lt;/p&gt;
</content:encoded><category>comparison</category><category>kde-connect</category><category>android</category><category>mac</category><category>bluetooth</category><author>support@cliphop.org (Anshul Garg)</author></item><item><title>How to sync your clipboard between Android and Mac (without the cloud)</title><link>https://cliphop.org/blog/clipboard-sync-android-mac-setup</link><guid isPermaLink="true">https://cliphop.org/blog/clipboard-sync-android-mac-setup</guid><description>Set up two-way clipboard sync between an Android phone and a Mac in about 60 seconds — over Bluetooth LE, no account, no cloud, no shared WiFi. Step-by-step guide with pairing and fingerprint verification.</description><pubDate>Wed, 15 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;If you live between an Android phone and a Mac, &lt;strong&gt;clipboard sync&lt;/strong&gt; is the boring feature that saves you dozens of paste-in-Messages round-trips a day. Apple&apos;s Universal Clipboard doesn&apos;t help — it only works between Apple devices. LAN-based tools only help when both devices are on the same WiFi. Cloud clipboards only help if you&apos;re willing to hand a copy of your clipboard to a third-party server.&lt;/p&gt;
&lt;p&gt;This guide sets up &lt;strong&gt;two-way clipboard sync between Android and Mac&lt;/strong&gt; with a single app pair that doesn&apos;t need any of that. You&apos;ll be copying-and-pasting across devices in about 60 seconds.&lt;/p&gt;
&lt;h2&gt;What you need&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;An Android phone running Android 10 (API 29) or newer&lt;/strong&gt;, on real hardware. Emulators don&apos;t expose the host&apos;s Bluetooth radio, so they&apos;re not supported.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A Mac running macOS 13 Ventura or newer&lt;/strong&gt;, Apple Silicon recommended.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bluetooth turned on&lt;/strong&gt; on both devices. No WiFi or cellular required.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That&apos;s it. No account, no sign-in, no server.&lt;/p&gt;
&lt;h2&gt;Step 1 — Install the apps&lt;/h2&gt;
&lt;p&gt;Install the Mac app from the &lt;a href=&quot;/download#mac&quot;&gt;download page&lt;/a&gt; — it&apos;s a standard &lt;code&gt;.dmg&lt;/code&gt;. On first launch, right-click the app icon and choose &lt;strong&gt;Open&lt;/strong&gt; (macOS Gatekeeper asks for this the first time with any direct download).&lt;/p&gt;
&lt;p&gt;Install the Android app from the &lt;a href=&quot;https://play.google.com/store/apps/details?id=org.cliphop.app&quot;&gt;Google Play Store&lt;/a&gt;. On first launch the Android app walks you through three permissions: &lt;strong&gt;Bluetooth&lt;/strong&gt; (required, to pair with the Mac), &lt;strong&gt;Notifications&lt;/strong&gt; (for the persistent foreground-service notice), and &lt;strong&gt;Skip battery optimization&lt;/strong&gt; (so Samsung, OnePlus, and Xiaomi skins don&apos;t kill the background service after ~15 minutes).&lt;/p&gt;
&lt;p&gt;For detailed install guides: &lt;a href=&quot;/install/mac&quot;&gt;Install on Mac&lt;/a&gt; and &lt;a href=&quot;/install/android&quot;&gt;Install on Android&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Step 2 — Pair the two devices&lt;/h2&gt;
&lt;p&gt;On the &lt;strong&gt;Mac&lt;/strong&gt;: click the ClipHop icon in the menu bar and choose &lt;em&gt;Pair a new device&lt;/em&gt;. The Mac shows a QR code and a 6-digit code.&lt;/p&gt;
&lt;p&gt;On the &lt;strong&gt;Android&lt;/strong&gt; phone: open ClipHop and tap &lt;em&gt;Pair with Mac&lt;/em&gt;. Choose &lt;em&gt;Scan QR&lt;/em&gt; (easier) or &lt;em&gt;Enter code&lt;/em&gt; (if your camera can&apos;t see the Mac screen).&lt;/p&gt;
&lt;p&gt;Under the hood, both devices perform an &lt;strong&gt;X25519 Elliptic-Curve Diffie-Hellman handshake&lt;/strong&gt;, authenticated by their long-term &lt;strong&gt;Ed25519 identity keys&lt;/strong&gt;. The output is a shared &lt;strong&gt;AES-256-GCM session key&lt;/strong&gt; that lives in memory only — no server, no cloud, no account is involved. The &lt;a href=&quot;/install/pair&quot;&gt;pair guide&lt;/a&gt; walks through the process in more detail.&lt;/p&gt;
&lt;h2&gt;Step 3 — Verify the identity fingerprint&lt;/h2&gt;
&lt;p&gt;Once connected, both devices show a short &lt;strong&gt;identity fingerprint&lt;/strong&gt;. Check that the short code on the Mac matches what the phone shows. If it does, your pairing is end-to-end encrypted &lt;em&gt;to the device you actually have in your hand&lt;/em&gt; — nothing can MITM this pair.&lt;/p&gt;
&lt;p&gt;You can re-verify the fingerprint any time:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;On Android&lt;/strong&gt;: open &lt;em&gt;Paired Devices&lt;/em&gt; → tap the paired Mac.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;On Mac&lt;/strong&gt;: open &lt;em&gt;Preferences → Security&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ongoing verification matters because MITM attacks aren&apos;t always caught at pair time. If the fingerprint ever changes, something is wrong and you should unpair and re-pair.&lt;/p&gt;
&lt;h2&gt;Step 4 — Copy, paste, done&lt;/h2&gt;
&lt;p&gt;Now the routine part:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Copy anything on the phone&lt;/strong&gt; (a URL, an OTP you typed out, a shell command) and it&apos;s on the Mac&apos;s clipboard in under a second.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Copy on the Mac&lt;/strong&gt; and the Android clipboard updates the moment the clip arrives.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Both platforms have an &lt;strong&gt;auto-apply&lt;/strong&gt; toggle that&apos;s on by default — incoming clips overwrite the local clipboard immediately, so you just paste normally (&lt;code&gt;⌘V&lt;/code&gt; on Mac, long-press on Android). If you&apos;d rather browse received items before they become your clipboard, you can turn &lt;em&gt;Auto-apply&lt;/em&gt; off in settings and clips will sit in history until you pick one.&lt;/p&gt;
&lt;p&gt;Sending is &lt;strong&gt;manual by default&lt;/strong&gt;: you tap the ✈ send icon on any history item to push it to the other device. There&apos;s an opt-in &lt;strong&gt;Auto-send beta&lt;/strong&gt; that sends every copy automatically, but the app itself warns that this is unfiltered — including passwords and OTPs — so default to manual unless you&apos;re in a deliberately-everything workflow.&lt;/p&gt;
&lt;h2&gt;Does it really work on a plane?&lt;/h2&gt;
&lt;p&gt;Yes. Bluetooth LE doesn&apos;t need WiFi, doesn&apos;t need cellular, doesn&apos;t need any network at all. The phone and the Mac talk directly to each other over a short-range radio. Airplane mode (without &quot;Bluetooth off&quot;) leaves sync working fine. Same for hotel captive portals, coffee-shop networks you don&apos;t trust, or co-working spaces where the two devices are on different VLANs.&lt;/p&gt;
&lt;h2&gt;What clipboard content works?&lt;/h2&gt;
&lt;p&gt;In v0.1.0:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;✅ Plain text&lt;/li&gt;
&lt;li&gt;✅ URLs&lt;/li&gt;
&lt;li&gt;🚧 Rich text (roadmap)&lt;/li&gt;
&lt;li&gt;🚧 Images (roadmap — likely the next major type added)&lt;/li&gt;
&lt;li&gt;🚧 Files (roadmap)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For most day-to-day clipboard traffic — links, shell commands, OTPs, notes — plain-text support covers the overwhelming majority of clips.&lt;/p&gt;
&lt;h2&gt;If something doesn&apos;t work&lt;/h2&gt;
&lt;p&gt;The most common issue isn&apos;t pairing — it&apos;s Android&apos;s aggressive battery killers. Samsung One UI, OnePlus OxygenOS, and Xiaomi MIUI all ship with OEM-level battery policies that stop background services after 10–15 minutes. If your pair drops when you put the phone in your pocket, go to:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Settings → Apps → ClipHop → Battery → Unrestricted&lt;/strong&gt; (exact path varies by OEM).&lt;/p&gt;
&lt;p&gt;Pixel and stock Android almost never need this. The &lt;a href=&quot;/install/android&quot;&gt;Android install guide&lt;/a&gt; has the details.&lt;/p&gt;
&lt;h2&gt;Why &quot;one phone, one Mac&quot;?&lt;/h2&gt;
&lt;p&gt;v0.1.0 supports one active pair at a time. That&apos;s a deliberate privacy choice: your clipboard only reaches one trusted peer, not broadcast to every device you own. Multi-pair support is on the roadmap, but we wanted to get one-to-one right first — the fingerprint verification model depends on a clear mental picture of who you&apos;re connected to.&lt;/p&gt;
&lt;h2&gt;Under the hood (quick version)&lt;/h2&gt;
&lt;p&gt;If you want the engineering rationale — why &lt;strong&gt;Bluetooth LE&lt;/strong&gt; over WiFi, iCloud, or LAN-based tools — that&apos;s in &lt;a href=&quot;/blog/bluetooth-le-for-clipboard-sync&quot;&gt;Why we chose Bluetooth LE for clipboard sync&lt;/a&gt;. And if you&apos;re curious about the cryptographic specifics (X25519, AES-256-GCM, Ed25519, HKDF) those are in a separate post coming up.&lt;/p&gt;
&lt;p&gt;Grab the apps from the &lt;a href=&quot;/download&quot;&gt;download page&lt;/a&gt; and copy-paste your way across devices.&lt;/p&gt;
</content:encoded><category>tutorial</category><category>android</category><category>mac</category><category>setup</category><category>bluetooth</category><author>support@cliphop.org (Anshul Garg)</author></item><item><title>Universal Clipboard for Android: what Apple left out (and how ClipHop fills the gap)</title><link>https://cliphop.org/blog/universal-clipboard-android-alternative</link><guid isPermaLink="true">https://cliphop.org/blog/universal-clipboard-android-alternative</guid><description>Apple&apos;s Universal Clipboard is Apple-only and routes through iCloud. If you use an Android phone with a Mac, here&apos;s what changes, what the alternatives look like, and how ClipHop&apos;s Bluetooth-LE approach compares.</description><pubDate>Sat, 11 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;strong&gt;Apple&apos;s Universal Clipboard&lt;/strong&gt; is one of those features that feels like magic — copy on your iPhone, paste on your Mac, no dialog, no app, no thought. If every device you own is made by Apple, it&apos;s the gold standard of cross-device clipboard sharing.&lt;/p&gt;
&lt;p&gt;But the moment you use an &lt;strong&gt;Android phone with a Mac&lt;/strong&gt; — one of the most common real-world setups — Universal Clipboard does exactly nothing for you. It&apos;s Apple-only, it always has been, and it always will be. This post walks through what Universal Clipboard actually does under the hood, why there&apos;s &lt;strong&gt;no Universal Clipboard for Android&lt;/strong&gt;, what the third-party alternatives look like, and how &lt;strong&gt;ClipHop&lt;/strong&gt; fills the specific Android ↔ Mac gap.&lt;/p&gt;
&lt;h2&gt;What Universal Clipboard actually does&lt;/h2&gt;
&lt;p&gt;Universal Clipboard is part of Apple&apos;s &lt;strong&gt;Continuity&lt;/strong&gt; framework. When you copy on one signed-in Apple device, it becomes available on every other Apple device signed into the same Apple ID — as long as those devices are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Running a recent enough OS.&lt;/li&gt;
&lt;li&gt;Signed in to the same iCloud account.&lt;/li&gt;
&lt;li&gt;Have &lt;strong&gt;Bluetooth&lt;/strong&gt; turned on (used for proximity discovery).&lt;/li&gt;
&lt;li&gt;Have &lt;strong&gt;WiFi&lt;/strong&gt; turned on (used for the actual transfer).&lt;/li&gt;
&lt;li&gt;Have &lt;strong&gt;Handoff&lt;/strong&gt; enabled in Settings.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The clipboard itself is short-lived — items expire after about two minutes if not pasted. The actual data travels through &lt;strong&gt;iCloud&lt;/strong&gt; (end-to-end encrypted, but still routed through Apple&apos;s infrastructure). Bluetooth is used only to discover nearby devices; the clipboard payload rides over a combination of iCloud and peer-to-peer WiFi.&lt;/p&gt;
&lt;p&gt;This design works beautifully within Apple&apos;s ecosystem. It doesn&apos;t work outside it, by design.&lt;/p&gt;
&lt;h2&gt;Why there&apos;s no Universal Clipboard for Android&lt;/h2&gt;
&lt;p&gt;This is a structural reason, not a technical one. Apple&apos;s Continuity stack is deeply tied to the Apple ID, to iCloud, to Handoff, and to platform services that don&apos;t exist on Android. Even if Apple wanted to port it — and there&apos;s no evidence they do — the architecture assumes both devices are first-party.&lt;/p&gt;
&lt;p&gt;The broader pattern: &lt;strong&gt;cross-ecosystem clipboard sharing&lt;/strong&gt; is a gap every major platform has left open, because nobody running one ecosystem has a business reason to invest in integrating the other. The result is a market of third-party tools, each trading off different things.&lt;/p&gt;
&lt;h2&gt;The three categories of Android-to-Mac clipboard tools&lt;/h2&gt;
&lt;p&gt;Broadly, the tools that try to bridge &lt;strong&gt;Android and Mac&lt;/strong&gt; clipboards fall into three camps:&lt;/p&gt;
&lt;h3&gt;1. Cloud clipboards&lt;/h3&gt;
&lt;p&gt;Apps like various &quot;cross-device clipboard&quot; or &quot;cloud copy-paste&quot; tools solve the platform problem by routing every clip through a third-party server. Pros:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Works anywhere with internet.&lt;/li&gt;
&lt;li&gt;Cross-platform support is usually broad (iOS, Android, Mac, Windows, Linux).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cons:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Account required.&lt;/strong&gt; You sign up, log in on every device, trust their auth flow.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Your clipboard goes to someone else&apos;s server.&lt;/strong&gt; Even if encrypted in transit, the custody question is real — a clipboard at rest on a third-party server is a subpoena target, a breach target, and a retention-policy target.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Fails without internet.&lt;/strong&gt; On airplanes, on cellular-only iPads that haven&apos;t paid for data, behind captive-portal WiFi — it just doesn&apos;t work.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For something as sensitive as clipboard content, handing custody to a SaaS provider is a bad trade. It&apos;s the pattern Universal Clipboard also uses — but with Apple as the trusted custodian, which is a very different risk calculus from trusting an indie startup with a small team.&lt;/p&gt;
&lt;h3&gt;2. LAN-based tools (KDE Connect and friends)&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;KDE Connect&lt;/strong&gt; is genuinely excellent software. It synchronizes clipboards, notifications, battery status, file transfers, and media control over a shared local network. If both your Android phone and your Mac are always on the same WiFi, it&apos;s the right answer.&lt;/p&gt;
&lt;p&gt;Pros:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Open source, actively maintained.&lt;/li&gt;
&lt;li&gt;No cloud, no account.&lt;/li&gt;
&lt;li&gt;Works for a lot more than just clipboards.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cons:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Requires shared WiFi.&lt;/strong&gt; Both devices need to be on the same network with peer-to-peer routing allowed.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Client-isolated networks break it.&lt;/strong&gt; Coffee shops, hotels, airports, and increasingly even home mesh routers default to isolating clients from each other.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Corporate / guest networks usually block it.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Travel and multi-network workflows are fragile&lt;/strong&gt; — the moment you step out of your home WiFi, your pair silently stops syncing until you&apos;re back.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For users whose devices live on one stable WiFi and don&apos;t move, KDE Connect is hard to beat. For users who travel, co-work, or switch networks — it fails more often than it succeeds.&lt;/p&gt;
&lt;h3&gt;3. Direct-radio pairs (ClipHop)&lt;/h3&gt;
&lt;p&gt;The third option is what ClipHop does: &lt;strong&gt;Bluetooth LE&lt;/strong&gt; directly between the phone and the Mac, with no server and no network involvement. Pros:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;No cloud, no account, no internet.&lt;/strong&gt; Works on airplanes, captive portals, unknown WiFi, or disconnected entirely.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Short-range and explicit.&lt;/strong&gt; The two devices are paired and you know exactly which peer you&apos;re synced with.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;End-to-end encrypted&lt;/strong&gt; with AES-256-GCM, session keys derived per reconnect via X25519 ECDH, authenticated by Ed25519 long-term identity keys in the Keychain / Keystore.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Identity fingerprint verification&lt;/strong&gt; to catch MITM — not just at pair time, but any time you want to recheck.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cons (honest trade-offs):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;BLE range is ~10–15 meters.&lt;/strong&gt; If your phone is in the car two floors down, your pair can drop. For most people this is fine — the phone is on the desk or in the pocket, not across the building.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Throughput is lower than WiFi.&lt;/strong&gt; For plain text and URLs you can&apos;t tell the difference. For large images or files (coming later) WiFi-based tools would be faster.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;One-time pairing friction.&lt;/strong&gt; You scan a QR or enter a 6-digit code once per pair. After that, reconnection is automatic.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;v0.1.0 supports one active pair at a time.&lt;/strong&gt; That&apos;s an intentional privacy default — your clipboard only reaches one trusted peer, not broadcast to every device you own.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;The comparison at a glance&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Criterion&lt;/th&gt;
&lt;th&gt;Apple Universal Clipboard&lt;/th&gt;
&lt;th&gt;Cloud clipboards&lt;/th&gt;
&lt;th&gt;KDE Connect&lt;/th&gt;
&lt;th&gt;ClipHop&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Works on Android ↔ Mac&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;❌ Apple-only&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;No account required&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;N/A (Apple ID)&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Works without internet&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;❌ iCloud required&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅ LAN only&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Works on captive-portal WiFi&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;Depends&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Works on a plane&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;End-to-end encrypted&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;✅ via iCloud&lt;/td&gt;
&lt;td&gt;Claimed&lt;/td&gt;
&lt;td&gt;✅ TLS&lt;/td&gt;
&lt;td&gt;✅ AES-256-GCM&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;No clipboard data on third-party servers&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;❌ iCloud routes&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Identity fingerprint verification&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Open-source&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;Varies&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;🚧 On roadmap&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;h2&gt;When to pick what&lt;/h2&gt;
&lt;p&gt;If you&apos;re all-in on Apple, &lt;strong&gt;Universal Clipboard is already the right answer&lt;/strong&gt; — you don&apos;t need a third-party tool. But that&apos;s not the audience reading this.&lt;/p&gt;
&lt;p&gt;If your Android phone and Mac are &lt;strong&gt;always on the same WiFi&lt;/strong&gt; and you want rich cross-device sync beyond just clipboards (notifications, file transfer, media control), &lt;strong&gt;KDE Connect&lt;/strong&gt; is excellent — give it a try.&lt;/p&gt;
&lt;p&gt;If you &lt;strong&gt;travel&lt;/strong&gt;, work from &lt;strong&gt;coffee shops and co-working spaces&lt;/strong&gt;, cross &lt;strong&gt;captive-portal WiFi&lt;/strong&gt; regularly, or just want your clipboard to &lt;strong&gt;never touch someone else&apos;s server&lt;/strong&gt;, ClipHop is built for exactly that use case.&lt;/p&gt;
&lt;h2&gt;Try it&lt;/h2&gt;
&lt;p&gt;ClipHop is free, the Mac app is a direct download, and the Android app is on the Play Store:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;/download#mac&quot;&gt;Download for Mac&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://play.google.com/store/apps/details?id=org.cliphop.app&quot;&gt;Get it on Google Play&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Setup takes about 60 seconds — the full walkthrough is in &lt;a href=&quot;/blog/clipboard-sync-android-mac-setup&quot;&gt;How to sync your clipboard between Android and Mac&lt;/a&gt;. If you want the engineering rationale for the transport choice, see &lt;a href=&quot;/blog/bluetooth-le-for-clipboard-sync&quot;&gt;Why we chose Bluetooth LE&lt;/a&gt;. For the cryptographic detail, there&apos;s &lt;a href=&quot;/blog/end-to-end-encrypted-clipboard-crypto&quot;&gt;How ClipHop encrypts your clipboard&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Universal Clipboard is the bar. For everyone outside the Apple ecosystem, the right answer looks different — and that difference is the whole point of ClipHop.&lt;/p&gt;
</content:encoded><category>comparison</category><category>universal-clipboard</category><category>android</category><category>mac</category><category>bluetooth</category><author>support@cliphop.org (Anshul Garg)</author></item><item><title>How ClipHop encrypts your clipboard: X25519, AES-256-GCM, and Ed25519</title><link>https://cliphop.org/blog/end-to-end-encrypted-clipboard-crypto</link><guid isPermaLink="true">https://cliphop.org/blog/end-to-end-encrypted-clipboard-crypto</guid><description>A complete walkthrough of ClipHop&apos;s cryptographic design — X25519 ECDH per reconnect for session keys, AES-256-GCM for authenticated encryption, Ed25519 long-term identity keys in the Keychain / Keystore, and fingerprint verification against MITM.</description><pubDate>Tue, 07 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;A clipboard is a small, short-lived piece of data that routinely carries passwords, one-time codes, private URLs, diff patches, and half-written messages. That makes &lt;strong&gt;end-to-end encryption&lt;/strong&gt; a baseline requirement, not a marketing bullet — the moment a clipboard touches a third-party server or an untrusted link, it becomes a credential-leak channel.&lt;/p&gt;
&lt;p&gt;This post is the complete cryptographic design of &lt;strong&gt;ClipHop&lt;/strong&gt; — the algorithms, the key lifecycle, the storage, what we do to prevent MITM, and what we deliberately don&apos;t do. If you&apos;re evaluating a clipboard manager and &quot;end-to-end encrypted&quot; is the claim, this is the level of detail you should expect to see before trusting it.&lt;/p&gt;
&lt;h2&gt;Threat model&lt;/h2&gt;
&lt;p&gt;The design assumes an attacker who can:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Observe&lt;/strong&gt; the Bluetooth LE radio traffic between your phone and your Mac.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Inject or modify&lt;/strong&gt; packets on that radio.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Compromise&lt;/strong&gt; one of your devices later (post-compromise impact).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Be physically present&lt;/strong&gt; during pairing (proximity attack).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The design does &lt;strong&gt;not&lt;/strong&gt; try to defend against:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;An attacker who has full arbitrary code execution on one of your already-paired devices. At that point they have the session keys and the clipboard itself — no transport crypto saves you.&lt;/li&gt;
&lt;li&gt;Side-channel attacks on the underlying cryptographic libraries (we use platform crypto: CryptoKit on macOS, Tink / Keystore-backed primitives on Android).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Everything below is about keeping the two trusted endpoints (your phone, your Mac) the &lt;em&gt;only&lt;/em&gt; devices that can read your clipboard traffic, and catching any attempt to insert a third.&lt;/p&gt;
&lt;h2&gt;Long-term identity: Ed25519&lt;/h2&gt;
&lt;p&gt;The first time ClipHop launches on a device, it generates an &lt;strong&gt;Ed25519 keypair&lt;/strong&gt;. Ed25519 is a modern elliptic-curve signature scheme (Curve25519 in the Edwards form) that&apos;s fast, standards-based, and widely attacked-and-survived.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;On macOS, the private key is stored in the &lt;strong&gt;Keychain&lt;/strong&gt; with access limited to the ClipHop app bundle.&lt;/li&gt;
&lt;li&gt;On Android, the private key is stored in the &lt;strong&gt;Keystore&lt;/strong&gt; with &lt;code&gt;StrongBox&lt;/code&gt; / &lt;code&gt;TEE&lt;/code&gt;-backed storage where the hardware supports it.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The private key &lt;strong&gt;never leaves the device&lt;/strong&gt;. It isn&apos;t transmitted during pairing, isn&apos;t backed up to any cloud, and doesn&apos;t exist in any form outside the hardware-backed store on the device that generated it.&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;public key&lt;/strong&gt; is what gets exchanged with paired peers. That&apos;s what your peer means when it says &quot;I trust device X&quot;: X&apos;s Ed25519 public key.&lt;/p&gt;
&lt;h2&gt;Pairing: authenticating the first exchange&lt;/h2&gt;
&lt;p&gt;Pairing is the trust-establishment step. You do it once per pair. ClipHop offers two methods:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;QR code&lt;/strong&gt; — the Mac renders a QR containing its device ID and Ed25519 public key (base64url-encoded, prefixed with a version tag). The phone decodes it, storing the Mac&apos;s public key as the identity of this pair.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;6-digit code&lt;/strong&gt; — the Mac displays a 6-digit number derived from its public key and the current UTC minute. The phone scans nearby Macs and connects to the one whose code matches. Codes rotate every minute so a stolen code has a small replay window.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In both methods, the phone ends up with &lt;strong&gt;one specific Ed25519 public key&lt;/strong&gt; it trusts for this pair. Any future connection must be cryptographically authenticated as coming from the holder of the corresponding private key.&lt;/p&gt;
&lt;h2&gt;Session keys: X25519 ECDH + HKDF&lt;/h2&gt;
&lt;p&gt;Once pairing is complete, &lt;strong&gt;every subsequent connection&lt;/strong&gt; derives a fresh session key. The steps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Both devices generate ephemeral &lt;strong&gt;X25519 keypairs&lt;/strong&gt; for this session. X25519 is Curve25519 in Montgomery form, used specifically for Elliptic-Curve Diffie-Hellman (ECDH) key agreement.&lt;/li&gt;
&lt;li&gt;They exchange ephemeral public keys over the already-connected BLE link.&lt;/li&gt;
&lt;li&gt;Each device &lt;strong&gt;signs&lt;/strong&gt; its ephemeral public key with its long-term Ed25519 identity key. The peer verifies the signature against the Ed25519 public key it stored during pairing.&lt;/li&gt;
&lt;li&gt;Both sides compute the X25519 ECDH shared secret.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;HKDF&lt;/strong&gt; (HMAC-based Key Derivation Function, RFC 5869) derives the actual session key from the ECDH shared secret plus a context string.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The result is an &lt;strong&gt;AES-256-GCM session key&lt;/strong&gt; that exists only in memory, is scoped to this connection, and is unrelated to the keys from the previous session.&lt;/p&gt;
&lt;p&gt;This gives us &lt;strong&gt;forward secrecy&lt;/strong&gt;: if today&apos;s session key is compromised, yesterday&apos;s clipboard traffic is still undecryptable because the ephemeral X25519 key that produced yesterday&apos;s session key was discarded when yesterday&apos;s connection ended.&lt;/p&gt;
&lt;h2&gt;Data encryption: AES-256-GCM&lt;/h2&gt;
&lt;p&gt;Every clipboard payload and control message is wrapped in &lt;strong&gt;AES-256-GCM&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;256-bit key (the session key from the step above).&lt;/li&gt;
&lt;li&gt;96-bit nonce, unique per message.&lt;/li&gt;
&lt;li&gt;Authenticated associated data (AAD) includes the message type and a monotonically increasing sequence number.&lt;/li&gt;
&lt;li&gt;128-bit authentication tag.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;GCM is &lt;strong&gt;authenticated encryption&lt;/strong&gt; — if a single bit of the ciphertext, nonce, or AAD is modified, the receiver rejects the message. The sequence number in the AAD prevents replay attacks: if an attacker re-sends a previously-captured packet, the receiver&apos;s sequence tracking rejects it.&lt;/p&gt;
&lt;h2&gt;Fingerprint verification: MITM defense&lt;/h2&gt;
&lt;p&gt;The identity fingerprint you see in the app (two groups of hex codes: &quot;Your phone&quot; and &quot;Paired Mac&quot;) is derived from the peer&apos;s Ed25519 public key using a &lt;strong&gt;keyed hash&lt;/strong&gt;, truncated to a human-verifiable length.&lt;/p&gt;
&lt;p&gt;At pair time, both devices show their view of the fingerprint. If they match, the identity public keys each side has are genuine — no MITM occurred during pairing.&lt;/p&gt;
&lt;p&gt;Crucially, you can &lt;strong&gt;re-check the fingerprint at any time&lt;/strong&gt; — not just at pair time:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;On Android&lt;/strong&gt;: Paired Devices → tap the paired Mac.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;On Mac&lt;/strong&gt;: Preferences → Security.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If the fingerprint ever &lt;em&gt;changes&lt;/em&gt; for an already-paired peer, something is wrong — you should unpair and re-pair. This is why we treat fingerprint verification as ongoing MITM detection, not a one-shot check.&lt;/p&gt;
&lt;h2&gt;What we deliberately don&apos;t do&lt;/h2&gt;
&lt;p&gt;A few things that are common in other encrypted messaging / sync tools but deliberately absent here:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;No cloud key escrow.&lt;/strong&gt; Nothing in your keychain ever goes to a server. There&apos;s no recovery flow that restores keys from a cloud backup, because there&apos;s no cloud backup.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No shared long-term session key.&lt;/strong&gt; Some older &quot;paired&quot; systems use a single symmetric key that never rotates. We derive fresh session keys per reconnect via ECDH so compromising one session doesn&apos;t compromise the rest.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No username/password.&lt;/strong&gt; There&apos;s no account. The only credential is your Ed25519 identity keypair, held in the local secure store.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No clipboard logs on our servers.&lt;/strong&gt; We don&apos;t operate servers. There are no logs to breach.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No telemetry.&lt;/strong&gt; No crash reports, no analytics, no &quot;which features did you use&quot; beacons.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Storage on each device&lt;/h2&gt;
&lt;p&gt;What&apos;s in your device&apos;s secure store after you&apos;ve paired:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Your device&apos;s Ed25519 private + public keypair&lt;/strong&gt; (identity).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;One entry per paired peer&lt;/strong&gt;: the peer&apos;s Ed25519 public key, a friendly name, a timestamp.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;What&apos;s on disk in app-support storage (not in the secure store):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Your local clipboard history. Plain local storage, protected by biometric lock on Android.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That&apos;s the full inventory. There is no other persisted secret, no session log, no forwarded-message queue.&lt;/p&gt;
&lt;h2&gt;Known limitations&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Not yet independently audited.&lt;/strong&gt; We want to commission a third-party review of the crypto and BLE stack before calling the product 1.0. That&apos;s on the roadmap, not done yet.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;BLE link-layer security is in addition to, not relied on for&lt;/strong&gt;, our E2E layer. Some BLE implementations have had bugs at the link layer (KNOB, BIAS, BLUFFS); our E2E encryption is designed to hold even if the BLE link-layer security is compromised, but we can&apos;t guarantee that posture without the audit.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ed25519 and X25519 are classical-curve cryptography.&lt;/strong&gt; If and when practical quantum computers arrive, they&apos;ll be vulnerable. We&apos;re watching the post-quantum key-exchange work (Kyber / ML-KEM specifically) and expect to migrate at some point after NIST&apos;s recommendations stabilize.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;The short version&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Identity&lt;/strong&gt;: Ed25519 keypair per device, stored in Keychain / Keystore, never transmitted.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Session&lt;/strong&gt;: X25519 ECDH per reconnect, signed with Ed25519 to prevent MITM.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bulk encryption&lt;/strong&gt;: AES-256-GCM with per-message nonces and sequence numbers.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Trust&lt;/strong&gt;: fingerprint comparison at pair time and on demand.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Infrastructure&lt;/strong&gt;: none. No server, no cloud, no account.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you want the transport-layer rationale — why &lt;strong&gt;Bluetooth LE&lt;/strong&gt; instead of WiFi, iCloud, or LAN — that&apos;s in &lt;a href=&quot;/blog/bluetooth-le-for-clipboard-sync&quot;&gt;Why we chose Bluetooth LE for clipboard sync&lt;/a&gt;. For the setup flow, see &lt;a href=&quot;/blog/clipboard-sync-android-mac-setup&quot;&gt;How to sync your clipboard between Android and Mac&lt;/a&gt;. To install, head to the &lt;a href=&quot;/download&quot;&gt;download page&lt;/a&gt;.&lt;/p&gt;
</content:encoded><category>engineering</category><category>cryptography</category><category>security</category><category>privacy</category><category>protocol</category><author>support@cliphop.org (Anshul Garg)</author></item><item><title>Why we chose Bluetooth LE for clipboard sync (over WiFi, iCloud, and LAN)</title><link>https://cliphop.org/blog/bluetooth-le-for-clipboard-sync</link><guid isPermaLink="true">https://cliphop.org/blog/bluetooth-le-for-clipboard-sync</guid><description>The engineering rationale for ClipHop: why Bluetooth LE beats WiFi, iCloud, and LAN-based clipboard-sync tools like KDE Connect — and where BLE&apos;s honest trade-offs show up.</description><pubDate>Fri, 03 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;If you&apos;ve tried to move a link from your Android phone to your Mac recently, you already know the constraint: &lt;strong&gt;Apple&apos;s Universal Clipboard is Apple-only&lt;/strong&gt;, &lt;strong&gt;LAN-based tools require shared WiFi&lt;/strong&gt;, and &lt;strong&gt;cloud clipboards route your text through someone else&apos;s servers&lt;/strong&gt;. Everything else I could find for &lt;strong&gt;Android-to-Mac clipboard sync&lt;/strong&gt; failed on at least one of those three axes.&lt;/p&gt;
&lt;p&gt;The clipboard is an unusually sensitive, unusually short-lived piece of data. It carries links, yes — but also passwords, OTPs, diff patches, private snippets, and half-written messages. The right transport has to be &lt;strong&gt;ambient, private, and not dependent on any network you don&apos;t control&lt;/strong&gt;. After working through the options, &lt;strong&gt;Bluetooth Low Energy (BLE)&lt;/strong&gt; was the only one that cleared all three.&lt;/p&gt;
&lt;p&gt;Here&apos;s the rationale.&lt;/p&gt;
&lt;h2&gt;Option 1: iCloud-backed clipboards (Universal Clipboard)&lt;/h2&gt;
&lt;p&gt;Apple&apos;s Universal Clipboard uses Bluetooth LE for proximity discovery and then routes the actual clipboard text through &lt;strong&gt;iCloud&lt;/strong&gt;. It&apos;s convenient, but it has two structural limitations that matter here:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;It&apos;s Apple-only.&lt;/strong&gt; No Android support, not now, not planned. If you&apos;re using an Android phone, Universal Clipboard does nothing for you.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Your clipboard travels through Apple servers.&lt;/strong&gt; Apple&apos;s iCloud clipboard is end-to-end encrypted in the architectural sense, but it still requires iCloud to be signed in and available. On a plane? On a captive portal? Behind a corporate firewall with iCloud blocked? It stops working.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;For &lt;strong&gt;Android-to-Mac clipboard sharing&lt;/strong&gt; specifically, Universal Clipboard isn&apos;t a design option — it&apos;s ecosystem-locked.&lt;/p&gt;
&lt;h2&gt;Option 2: LAN-based tools (KDE Connect)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;KDE Connect&lt;/strong&gt; is excellent engineering. It synchronizes notifications, files, clipboards, battery status, and media across devices on the same local network. We used it for years before building ClipHop, and it&apos;s still the right answer for people whose devices are always on the same WiFi.&lt;/p&gt;
&lt;p&gt;But &quot;always on the same WiFi&quot; is a much smaller set than it used to be. Consider:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Coffee shops and co-working spaces&lt;/strong&gt; increasingly isolate clients from each other (for good reason). Your phone and your laptop can be on the same SSID and still not route packets between each other.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Hotel WiFi&lt;/strong&gt; usually has client isolation on.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Enterprise networks&lt;/strong&gt; segment devices by role — your personal phone and your corporate laptop may not share a subnet even on the same floor.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Airplanes&lt;/strong&gt; often have WiFi but it&apos;s captive-portal-gated.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Travel, multiple residences, dual-SIM phones swapping between home and away networks&lt;/strong&gt; — the assumption that both devices are on the same LAN degrades fast.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;LAN clipboard tools also require both devices to have a known IP address, a reachable port, and the app to be running in the background. Every one of those is a potential source of &quot;why isn&apos;t this working?&quot; support.&lt;/p&gt;
&lt;h2&gt;Option 3: Cloud clipboards&lt;/h2&gt;
&lt;p&gt;A third category — &quot;&lt;strong&gt;cloud clipboard&lt;/strong&gt; apps&quot; — solves the platform problem (they work everywhere) but asks you to hand over custody. You sign up, trust their encryption claims, agree to let your clips sit on their servers indefinitely, and hope they don&apos;t get breached.&lt;/p&gt;
&lt;p&gt;For a thing as sensitive and short-lived as a clipboard, that&apos;s a bad trade. A cloud clipboard isn&apos;t really a clipboard anymore — it&apos;s a text-sharing SaaS with a clipboard-shaped interface.&lt;/p&gt;
&lt;p&gt;Even for cloud clipboards that claim end-to-end encryption, you&apos;re trusting:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Their key-management implementation.&lt;/li&gt;
&lt;li&gt;Their client apps not to exfiltrate.&lt;/li&gt;
&lt;li&gt;Their business model not to change.&lt;/li&gt;
&lt;li&gt;Their compliance posture to hold up under subpoena.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There&apos;s a material difference between &quot;encrypted in transit&quot; (most clipboards) and &quot;your text never leaves the two devices you own&quot; (what we wanted).&lt;/p&gt;
&lt;h2&gt;Option 4: Bluetooth LE&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Bluetooth LE&lt;/strong&gt; sits at the intersection of the constraints we actually have:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Ambient.&lt;/strong&gt; No network required. The two devices just need to be within radio range of each other.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Private.&lt;/strong&gt; Packets go directly between the two paired devices. No third party sees them, no server is involved, no account is required.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Universal.&lt;/strong&gt; Available on essentially every Android phone and every Mac Apple ships. No special hardware.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Standards-based.&lt;/strong&gt; BLE is a well-understood, well-attacked, well-specified stack with decades of public cryptanalysis.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That last point matters more than it looks. BLE is not an ad-hoc transport — it&apos;s in every consumer device, scrutinized by researchers, and has a stable pairing model that we build on top of (rather than inventing a new trust model).&lt;/p&gt;
&lt;h2&gt;The trade-offs we accepted&lt;/h2&gt;
&lt;p&gt;No decision is free. BLE&apos;s honest costs:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Range is about 10–15 meters&lt;/strong&gt; in typical indoor conditions. If your phone is in the next room over, your pair can drop. For most of us this is fine — we want the clipboard to work when our phone is on the desk, not when it&apos;s in the car two floors down.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Throughput is much lower than WiFi.&lt;/strong&gt; For plain text and URLs, you can&apos;t tell the difference — round-trip is sub-second. For large images or files (coming later), WiFi would be faster. We use &lt;strong&gt;L2CAP connection-oriented channels&lt;/strong&gt; where the device supports them (Android 10+, macOS 13+) to move multi-kilobyte clips in a single frame, with a &lt;strong&gt;chunked GATT fallback&lt;/strong&gt; on older hardware.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pairing is a one-time cost.&lt;/strong&gt; Users have to scan a QR or enter a 6-digit code the first time. After that, the pair re-establishes automatically whenever Bluetooth is on and the two devices are in range.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Two-device pair (for now).&lt;/strong&gt; v0.1.0 supports one active pair at a time — one phone with one Mac. Multi-pair support is on the roadmap, but we made this an intentional privacy default: your clipboard only reaches one trusted peer, not broadcast to every device you own.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Head-to-head&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Criterion&lt;/th&gt;
&lt;th&gt;Apple Universal Clipboard&lt;/th&gt;
&lt;th&gt;KDE Connect&lt;/th&gt;
&lt;th&gt;Cloud clipboards&lt;/th&gt;
&lt;th&gt;ClipHop (BLE)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Android ↔ Mac&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;❌ Apple only&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Works without internet&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;❌ iCloud required&lt;/td&gt;
&lt;td&gt;✅ LAN only&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Works on captive-portal WiFi&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;Depends&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Works on a plane&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;No account required&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;End-to-end encrypted&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;✅ via iCloud&lt;/td&gt;
&lt;td&gt;✅ TLS transport&lt;/td&gt;
&lt;td&gt;Claimed&lt;/td&gt;
&lt;td&gt;✅ AES-256-GCM&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Clipboard stays between your two devices&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;❌ iCloud routes&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Identity fingerprint verification&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;h2&gt;What about WebRTC, Nearby Share, or [other transport]?&lt;/h2&gt;
&lt;p&gt;We looked. WebRTC requires a signaling server and TURN fallback — defeats the point. &lt;strong&gt;Nearby Share&lt;/strong&gt; (Google&apos;s) is Android-only and doesn&apos;t target Mac. &lt;strong&gt;AirDrop&lt;/strong&gt; is Apple-only. &lt;strong&gt;Wi-Fi Direct&lt;/strong&gt; doesn&apos;t work cross-vendor reliably. Most &quot;ad-hoc&quot; transports assume identical OS stacks on both sides; BLE is the rare one that doesn&apos;t.&lt;/p&gt;
&lt;h2&gt;What&apos;s next&lt;/h2&gt;
&lt;p&gt;If the trade-offs above sound acceptable for your workflow, the &lt;a href=&quot;/blog/clipboard-sync-android-mac-setup&quot;&gt;setup guide&lt;/a&gt; walks through pairing in about 60 seconds. And if you want the &lt;strong&gt;cryptographic detail&lt;/strong&gt; — how X25519 ECDH, HKDF, AES-256-GCM, and Ed25519 identity keys fit together in ClipHop — that&apos;s worth its own post (coming up next).&lt;/p&gt;
&lt;p&gt;The short version of the rationale: &lt;strong&gt;Bluetooth LE is the only transport that lets your clipboard travel between two devices without depending on a network you don&apos;t control, an account you don&apos;t want, or a server you&apos;d have to trust.&lt;/strong&gt; That&apos;s why it&apos;s the one we chose.&lt;/p&gt;
</content:encoded><category>engineering</category><category>bluetooth</category><category>privacy</category><category>protocol</category><category>comparison</category><author>support@cliphop.org (Anshul Garg)</author></item><item><title>Introducing ClipHop</title><link>https://cliphop.org/blog/hello-cliphop</link><guid isPermaLink="true">https://cliphop.org/blog/hello-cliphop</guid><description>Why we built a Bluetooth-only, end-to-end encrypted clipboard for Android and Mac — and what you get in v0.1.0.</description><pubDate>Mon, 30 Mar 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;If you live between an Android phone and a Mac, you already know the dance. Copy a link on the phone, open Messages on the Mac, text it to yourself, wait, paste. Or the reverse: copy a command, open WhatsApp Web, send it to a group where the only member is you.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ClipHop&lt;/strong&gt; fixes that. Copy on either device, paste on the other. That&apos;s the whole product.&lt;/p&gt;
&lt;h2&gt;Why Bluetooth?&lt;/h2&gt;
&lt;p&gt;Because everything else leaks.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;iCloud-backed clipboards&lt;/strong&gt; only work between Apple devices and route your text through Apple&apos;s servers.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;LAN-based tools&lt;/strong&gt; like KDE Connect only work on networks you control — useless at a coffee shop, on airplane WiFi, or behind a captive portal.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&quot;Cloud clipboard&quot; apps&lt;/strong&gt; ask you to create an account, trust their encryption claims, and keep sync history on someone else&apos;s server forever.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Bluetooth LE is ambient, no-config, and doesn&apos;t require either device to be on the same network — or any network at all. That&apos;s the right transport for something as short-lived and sensitive as a clipboard.&lt;/p&gt;
&lt;h2&gt;What&apos;s in v0.1.0&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;QR or 6-digit pairing between one phone and one Mac.&lt;/li&gt;
&lt;li&gt;Clipboard sync over BLE, L2CAP where supported, with a GATT fallback.&lt;/li&gt;
&lt;li&gt;AES-256-GCM session keys derived from an X25519 ECDH handshake, authenticated by Ed25519 identity keys in the Keychain / Keystore.&lt;/li&gt;
&lt;li&gt;Identity fingerprint verification at pair time &lt;em&gt;and any time after&lt;/em&gt; — re-open Paired Devices on Android or Preferences → Security on Mac to confirm your connection is still to the device you expect.&lt;/li&gt;
&lt;li&gt;Local clipboard history on each device, biometric-locked on Android. On Android 13+, system keyboard paste suggestions can be masked.&lt;/li&gt;
&lt;li&gt;Mac panel: hit Return on any history item to copy and auto-paste it back into the previous app (opt-in, requires Accessibility).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;What&apos;s next&lt;/h2&gt;
&lt;p&gt;The things we want to earn trust on before calling this 1.0: a third-party audit of the crypto and BLE stack, iOS support (same protocol, different peripheral implementation), and richer file-type support (images first).&lt;/p&gt;
&lt;p&gt;Grab it from the &lt;a href=&quot;/download&quot;&gt;download page&lt;/a&gt;.&lt;/p&gt;
</content:encoded><category>launch</category><category>bluetooth</category><category>privacy</category><author>support@cliphop.org (Anshul Garg)</author></item></channel></rss>