CrossPaste: LAN-only clipboard sync for macOS, Windows and Linux
Cross-device clipboard sync for macOS, Windows & Linux — end-to-end encrypted, LAN-only, no cloud. OCR, CLI and MCP server built in.
At a glance
- What is it?
- CrossPaste keeps one pasteboard across desktop machines over the local network, with end-to-end encryption, local OCR and an MCP server. It is a desktop tool, not a phone app, and the README documents no mobile client.
- Who is it for?
- Adopt CrossPaste if you work across two or three desktop machines on one network and want clipboard history that never leaves it; the README documents no mobile client, so phone-to-desktop sync is not the use case. Skip it if your machines sit on different networks or behind client isolation, since there is no cloud relay.
- Can I use it commercially?
- Yes, with strict conditions. AGPL-3.0 is a network copyleft licence: if people use a modified version over a network, for example as a hosted service, you must offer them its source code under the same licence.
- Is it still maintained?
- Yes. The repository last received commits 2 days ago.
- What is it written in?
- Mainly Kotlin, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 29, 2026, and from our analysis. They are not legal advice.
Editorial analysis
The problem CrossPaste solves, and for whom
Copy on the laptop, paste on the desktop. That is the whole product. CrossPaste watches the system pasteboard on each machine and pushes new entries to the other machines running it, so a copied URL, colour value, HTML fragment, RTF block, image or file reference is available where you need it. The README lists those types explicitly: Text, Color, URL, HTML, RTF, Image, File. On macOS, Windows and Linux the interface is the same Compose Multiplatform UI, so switching operating systems does not mean relearning a clipboard manager.
The intended user is someone with several desktops on one network. A developer with a workstation and a laptop, a designer moving screenshots between a Mac and a Windows box, anyone who has ever mailed themselves a link. CrossPaste is not aimed at phones. The related searches around iOS, Android and APK exist, but the README and the repository layout describe a desktop application only: app/, cli/, core/, shared/, shared-ui/, web/ for a Chrome extension. If phone-to-desktop clipboard transfer is the requirement, this is the wrong tool and the documentation does not pretend otherwise.
How the sync actually works: LAN peers, asymmetric keys, SQLite
There is no server. The README calls the architecture "LAN-only Serverless", and the repository confirms it: no backend directory, no hosted service, just peers that discover each other on the local network and exchange pasteboard events. Storage is local, and the badge set points at SQLite as the database, so history lives in a file on each device rather than in an account.
Encryption is described as asymmetric and end-to-end, which means each device holds a key pair and content is encrypted for the receiving peer rather than for a central service. The practical consequence is that a device joining the network has to be trusted; there is no operator who can read your clipboard, and equally no operator who can revoke a misconfigured peer for you. Space management is handled by auto-cleanup options that prune stored pasteboard entries, which matters because images and files accumulate quickly in a SQLite database.
Two features sit on top of the same local store. OCR runs on-device, so text inside a screenshot becomes searchable without a network call; the README states your screenshots never leave the device. The MCP server exposes pasteboard history to AI assistants such as Claude through the Model Context Protocol, which turns the clipboard into a readable data source for a local agent. Both depend on the same premise: the data is already on your machine.
Installing CrossPaste and making a first cross-device paste
For normal use, the README points at the download page rather than a package manager: crosspaste.com/en/download. Install the build for your platform on each machine you want in the sync group, launch it, and let the peers discover each other on the same LAN. The README does not document pairing steps, ports or firewall rules, so treat the first-run UI as the source of truth and check that your OS network profile is set to private or trusted.
If you want to build from source instead, the README gives these two commands. The first start downloads the JetBrains Runtime and Gradle dependencies.
Building from source, the Chrome extension and the CLI
The README's development path is short. Clone, then run the app through Gradle:
git clone https://github.com/CrossPaste/crosspaste-desktop.git
cd crosspaste-desktop
./gradlew app:runOn the first run Gradle fetches the JetBrains Runtime and the dependency graph. The README warns that a connection reset during that download usually means a network restriction, and suggests a VPN. If you are behind a corporate proxy, the documented fix is to add properties to gradle.properties:
systemProp.https.proxyHost=localhost
systemProp.https.proxyPort=8080
systemProp.https.proxyUser=userid
systemProp.https.proxyPassword=password
systemProp.http.nonProxyHosts=*.nonproxyrepos.com|localhostThe browser side is a separate build target in web/. Node.js 18 or newer is required, and the npmInstall task fetches dependencies the first time:
./gradlew :web:buildThe unpacked extension lands in web/dist/. Load it from chrome://extensions/ with Developer mode enabled and Load unpacked. According to the README, the extension auto-discovers a CrossPaste desktop app on the same machine and syncs clipboard content with it. For iteration there is a Vite loop, npm run dev inside web/, and the extension imports a Kotlin/JS core library produced by ./gradlew :core:jsBrowserProductionLibraryDistribution, which :web:build also runs.
The CLI is covered by a separate guide, doc/en/CLI.md, and the README places full command-line mode in v2.2: copy, paste and search history from the terminal. The exact flags live in that guide, not in the README, so read it before scripting anything.
Where CrossPaste stops: no cloud relay, no mobile client
The LAN-only design is the feature and the limitation at the same time. Two machines on different networks cannot see each other unless something bridges them, and the README describes no relay, no account and no tunnelling. Guest Wi-Fi with client isolation, a VPN that blocks broadcast discovery, or a locked-down corporate network will each break peer discovery, and the documentation does not offer a fallback. This is the case where a cloud-backed clipboard sync wins on convenience.
The second boundary is mobile. Searches for CrossPaste on iOS, iPhone, Android and APK are common, but nothing in the README or the top-level repository entries describes a phone client. The interfaces that exist are desktop, CLI, Chrome extension and MCP. If your workflow is copying a link on a phone and pasting it on a laptop, CrossPaste does not cover it today.
Third, encryption without an operator cuts both ways. There is no central place to audit devices, rotate a compromised key or force a peer off the network. The README does not document key rotation, device revocation or a pairing flow, so those questions have to be answered by the application UI or the wiki.
How CrossPaste differs from SyncClipboard and ClipCascade
SyncClipboard is the closest comparison and the one people search for alongside CrossPaste. It also syncs clipboard content between devices, but its documented model is a server endpoint that clients talk to, which means you run or rent something in the middle. That buys reach across networks and a natural place for access control; it also means the clipboard passes through a service you must secure. CrossPaste takes the opposite position: peers on one LAN, encrypted for each other, no middle. Which is better depends entirely on whether your devices share a network.
ClipCascade appears in the same searches and follows the server-assisted pattern as well, syncing through a backend rather than peer discovery. The difference from CrossPaste is not the feature list but the trust boundary: server-mediated tools centralise the data path, CrossPaste decentralises it and inherits the constraints of local networking. If you need a phone in the loop, the server-based tools have a path that CrossPaste currently does not.
Licence, releases and the cost of keeping up
CrossPaste is AGPL-3.0. For individual use that changes nothing. For a company that modifies the code and offers it to others over a network, the copyleft terms reach the modified work, which is a different obligation from a permissive licence. This is a description of the licence, not legal advice; read LICENSE and talk to counsel if you plan to redistribute or host a derivative.
Release cadence is visible: 2.2.0.2544 on 2026-09-01, 2.1.7.2461 on 2026-08-10, 2.1.6.2390 on 2026-07-14. The last push to main was on 2026-09-10, so the project is current. Upgrades are per-machine installs from the download page; the README does not document a migration step for the SQLite store, so back up history before a major version jump if it matters to you. The roadmap lists a plugin system as the next item, described as a checkbox that is not yet done. That is the main upgrade cost to watch: a plugin API can change how paste types and integrations are registered.
Editorial conclusion
Adopt CrossPaste if you work across two or three desktop machines on one network and want clipboard history that never leaves it; the README documents no mobile client, so phone-to-desktop sync is not the use case. Skip it if your machines sit on different networks or behind client isolation, since there is no cloud relay. Verify first that the release for your platform is published on the download page, that your OS allows the app to listen on the LAN, and that AGPL-3.0 terms fit how you intend to redistribute anything you build from the source.
Frequently asked questions
What is the best copy and paste app for PC?
There is no single answer, but CrossPaste is a desktop clipboard manager for macOS, Windows and Linux that shares pasteboard content between machines on the same LAN with end-to-end encryption. The README lists Text, Color, URL, HTML, RTF, Image and File as supported types.
How can I transfer clipboard information from my phone to my computer?
CrossPaste does not document a phone client; the README and repository layout cover desktop platforms, a CLI, a Chrome extension and an MCP server. Phone-to-computer clipboard transfer is not a use case the material describes.
How can I sync the clipboard between my Windows and iPhone?
The material describes macOS, Windows and Linux only, with no iOS client, so CrossPaste does not cover a Windows and iPhone pair. On Windows it syncs with other desktop machines on the same LAN.
How do I sync my clipboard across devices?
Install CrossPaste on each machine and let the peers discover each other on the same LAN; the README describes the architecture as LAN-only and serverless, with content encrypted end to end between devices. There is no cloud relay, so the machines must be able to reach each other on the local network.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/crosspaste-crosspaste-desktop)