Cross-device clipboard sync for macOS, Windows & Linux — end-to-end encrypted, LAN-only, no cloud. OCR, CLI and MCP server built in.
2,551
stars
2,536
commits
Kotlin
primary language
Sep 10, 2026
updated
Copy anything and paste it on any device, seamlessly
简体中文
·
Official Website
·
Wiki
·
Download
·
Video
clone the repository
git clone https://github.com/CrossPaste/crosspaste-desktop.git
Compile and run the application
cd crosspaste-desktop
./gradlew app:run
First start will download JBR / gradle dependencies.
If you encounter the following error:
FAILURE: Build failed with an exception.
* What went wrong:
java.net.SocketException: Connection reset
> java.net.SocketException: Connection reset
you might need a VPN to download these dependencies.
To configure a proxy for gradle, add the following settings to gradle.properties, and adjust the parameters to match your proxy configuration:
systemProp.https.proxyHost=localhost
systemProp.https.proxyPort=8080
systemProp.https.proxyUser=userid
systemProp.https.proxyPassword=password
systemProp.http.nonProxyHosts=*.nonproxyrepos.com|localhost
Additionally, a series of technical blogs about CrossPaste is being published (approximately one article per week). If you're interested in developing cross-platform applications, you're welcome to read them.
The Chrome extension lives in web/ and is built via Gradle. Node.js (>= 18) is required — the npmInstall task will fetch dependencies on first build.
Build the extension
./gradlew :web:build
The unpacked extension is emitted to web/dist/.
Load it into Chrome
chrome://extensions/web/dist/ directoryThe extension auto-discovers a CrossPaste desktop app running on the same machine and syncs clipboard content with it. To iterate on extension code, run npm run dev inside web/ for a fast Vite dev loop, then reload the extension in Chrome. The extension imports a Kotlin/JS core library produced by ./gradlew :core:jsBrowserProductionLibraryDistribution (also run as part of :web:build) — re-run that task whenever you change core/ sources.
CrossPaste is continuously evolving! v2.0 brings the Chrome extension into the sync mesh as a first-class platform. Here's what we're working on next:
This is just a small part of our plans. Want to learn more details and long-term plans? Check out our full roadmap.
Here are some FAQs that have been collected. If you have other questions, please create an issue to let us know.
Kotlin
87.5%
TypeScript
11.1%
Cross-device clipboard sync for macOS, Windows & Linux — end-to-end encrypted, LAN-only, no cloud. OCR, CLI and MCP server built in.
2,551
stars
2,536
commits
Kotlin
primary language
Sep 10, 2026
updated
Copy anything and paste it on any device, seamlessly
简体中文
·
Official Website
·
Wiki
·
Download
·
Video
clone the repository
git clone https://github.com/CrossPaste/crosspaste-desktop.git
Compile and run the application
cd crosspaste-desktop
./gradlew app:run
First start will download JBR / gradle dependencies.
If you encounter the following error:
FAILURE: Build failed with an exception.
* What went wrong:
java.net.SocketException: Connection reset
> java.net.SocketException: Connection reset
you might need a VPN to download these dependencies.
To configure a proxy for gradle, add the following settings to gradle.properties, and adjust the parameters to match your proxy configuration:
systemProp.https.proxyHost=localhost
systemProp.https.proxyPort=8080
systemProp.https.proxyUser=userid
systemProp.https.proxyPassword=password
systemProp.http.nonProxyHosts=*.nonproxyrepos.com|localhost
Additionally, a series of technical blogs about CrossPaste is being published (approximately one article per week). If you're interested in developing cross-platform applications, you're welcome to read them.
The Chrome extension lives in web/ and is built via Gradle. Node.js (>= 18) is required — the npmInstall task will fetch dependencies on first build.
Build the extension
./gradlew :web:build
The unpacked extension is emitted to web/dist/.
Load it into Chrome
chrome://extensions/web/dist/ directoryThe extension auto-discovers a CrossPaste desktop app running on the same machine and syncs clipboard content with it. To iterate on extension code, run npm run dev inside web/ for a fast Vite dev loop, then reload the extension in Chrome. The extension imports a Kotlin/JS core library produced by ./gradlew :core:jsBrowserProductionLibraryDistribution (also run as part of :web:build) — re-run that task whenever you change core/ sources.
CrossPaste is continuously evolving! v2.0 brings the Chrome extension into the sync mesh as a first-class platform. Here's what we're working on next:
This is just a small part of our plans. Want to learn more details and long-term plans? Check out our full roadmap.
Here are some FAQs that have been collected. If you have other questions, please create an issue to let us know.
Kotlin
87.5%
TypeScript
11.1%