Skip to content

About

PasteFerry (隔空贴): clipboard and file sync across macOS, Windows and Linux. Direct-first, end-to-end encrypted. Optional official access: no server to host. Independent self-hosting remains available.

Topics

Resources

Contributing

Security policy

Stars

190 stars

Watchers

2 watching

Forks

Repository files navigation

PasteFerry icon

PasteFerry

Clipboard sync, searchable history and file transfer — across your computers and phone.
Mac, Windows, Linux and Android, without a shared account. Use the Android app to send and receive files on your local network, or scan a code to use the phone web page.

Download · Website · Features · 简体中文 · Gitee mirror

Release macOS 13+ Windows 10 / 11 Linux x64 / ARM64 Android 9+ arm64 Web, any browser AGPL-3.0 License

The quick paste window: a search field, six tabs (All, Text, Links, Images, Files, Favorites) and numbered history items

If PasteFerry helps you, a ⭐ star helps more people find it.

Why

Universal Clipboard needs the same Apple ID and both Macs close by. AirDrop makes you accept every time. Messaging yourself means manual downloads and your files on someone else's server. With one Mac and one Windows PC, none of the built-in options work.

With PasteFerry you pair two computers once. After that, copy on one and paste on the other. Everything you copied stays in your history: press ⌥V (Alt+V on Windows and Linux) to find it and paste it into the app you're using.

PasteFerry Universal Clipboard AirDrop Chat apps
Different Apple IDs ✓ — Needs accepting ✓
Different networks (home ↔ office) ✓ — — ✓
Paste right away, nothing to accept ✓ ✓ — —
Between Mac and Windows ✓ — — ✓
Files and whole folders ✓ Unreliable ✓ Zipped
History of what you copied ✓ — — Scroll back
Only your devices can decrypt content ✓ ✓ ✓ —

Features

Copy here, paste there

  • Text, rich text, images, files and whole folders. What you copy is what comes out on the other side.
  • Size-aware transfer. Anything under 50 MB (adjustable) is sent as you copy; larger files sync as a record you fetch when you need them.
  • Nothing lost while offline. What you copy meanwhile lands in the other computer's history once it's back.

Send Files (Android support in 2.8)

  • Open Send Files and your paired computers appear on a radar. Drop files or whole folders onto one and they go straight to it.
  • Any size. Progress, speed and time left are shown; if the connection drops, the transfer resumes where it stopped, and every file is checked with SHA-256.
  • Received files go to Downloads (changeable) and stay out of your clipboard history. Desktop apps need 2.5 or later; Android needs 2.8 or later. Android works on the local network.

Send to contacts (new in 2.6)

  • Someone else's computer doesn't need pairing: add them as a contact with a one-time contact code, then drop files on their avatar, with a short note if you like.
  • They decide. Every batch shows a request (who, which files, your note) and arrives only once accepted; trusted contacts can be set to accept automatically.
  • You decide who can send: no one, contacts only (default), or everyone on the local network for 10 minutes.
  • Contacts only exchange files and images. They never see your clipboard, history or other devices. On different networks, both sides turn on the service. Both computers need 2.6 or later.

Quick paste

  • Press ⌥V (Alt+V on Windows and Linux) in any app and your history appears in the middle of the screen.
  • Type to search — Chinese text matches by pinyin, too.
  • Press 1–9 or Return and the item is pasted where your cursor was; ⇧↩ pastes plain text, ⌘↩ only copies. Change or turn off the shortcut in Settings.

History and favorites

  • History of the last 3 days (adjustable) from all your computers, filtered by text, links, images or files. Rest the pointer on an item to see the full text, a larger image or every file name.
  • Favorites: star what you reuse to keep a copy. Favorites never expire and survive clearing your history.
History: resting the pointer on meeting notes shows their full text Favorites: a report template, a stock reply, a download link and more

Themes (new in 2.10)

  • Settings → Appearance lists the built-in themes (Default and Pixel) and your custom ones, with light, dark or match-the-system.
  • Pixel uses a bitmap font, notched blocks and bevelled buttons on a neutral graphite or paper palette with a pixel-green accent. A night or daytime scene sits in the header, a campfire or small house at the bottom of the sidebar, empty pages get pixel illustrations, and Send Files flies a paper plane and bursts into stars when it's done. CRT scanlines are optional.
  • Custom themes: duplicate a built-in theme, import or export .pasteferry-theme.json files, delete the ones you don't need. Saving checks text contrast and warns when something would be hard to read.
  • Ask an AI to make one: pasteferry-cli mcp lets Claude, Cursor and other MCP apps design, check and apply a theme (see below).
  • A theme applies only to the device you set it on (on a computer, the main window and quick paste) and isn't synced. The Android app picks its own theme in its Settings → Appearance.
History in the Pixel theme: night mountains and a moon in the header, a tent and campfire in the sidebar Settings → Appearance: built-in and custom themes, Import theme and Ask AI to make a theme

And

  • Runs in the background, starts at login, recovers from crashes; checks for updates and installs them after you confirm.
  • 18 interface languages: English, Simplified Chinese, Traditional Chinese (Taiwan and Hong Kong), Japanese, Korean, Arabic (right to left), German, French, Spanish, Portuguese (Brazil), Italian, Russian, Ukrainian, Polish, Turkish, Vietnamese and Indonesian.

At its core: direct connections

Everything in PasteFerry rests on two computers talking to each other directly: what you copy goes from one to the other, not through anyone's server.

flowchart LR
    A["Computer A<br>copy here"] -- "signaling: exchange connection info" --> S[("Official service<br>or your own server")]
    B["Computer B<br>paste here"] -- signaling --> S
    A <== "direct, NAT hole punching · DTLS end-to-end" ==> B
    A -. "only if that fails: encrypted relay" .-> S
Loading
  • No server on the same network. Computers find each other over mDNS and pair with a code.
  • Across networks the server only introduces them. The official service or your own server helps the two computers exchange connection details; then they punch through NAT and connect directly (WebRTC, built on pion).
  • Direct even on multi-uplink networks. Offices with two ISPs pick an uplink per destination. PasteFerry asks several STUN servers from one shared UDP port, learns its address on every uplink and sends them all to the peer, and decides which side sends first to get past routers that lock a port. A Mac on an office network with four uplinks connects directly to one on a home connection.
  • Relay only as a fallback. The relay forwards end-to-end encrypted packets it can't read, and the connection switches back to direct once punching succeeds while idle.
  • Fingerprints checked at pairing. Both screens show the same two lines, and every later message is signed, so the server can't impersonate your device.
  • Tested in a lab on every commit. The NAT traversal lab uses Linux network namespaces and iptables to model home routers, multi-uplink networks, port-randomizing NATs and more — 16 scenarios run against PasteFerry's real connection code.

Details: how it works, and the design notes (Chinese) on NAT traversal on multi-uplink networks and local network mode.

Get started

New here? The quick start walks through it with screenshots.

1. Install the app on each computer from the download page:

  • Mac (macOS 13+): Apple silicon or Intel; a universal build runs on both.
  • Windows 10/11: installer or portable zip.
  • Android 10 or later, arm64: APK (beta; Android asks before installing it). Turn on Devices → Phone web transfer on the computer, then scan the code with your phone, or install the APK and pair it like another computer.
  • Any phone or tablet, nothing to install: turn on Devices → Phone web transfer on the computer and scan the code shown there. The page in the phone's browser lists the records from the computer, copies a text to the phone, and sends text, photos and files back. It works on the same local network and the contents are encrypted.
  • iPhone and iPad: there is no app yet, because distributing one needs an Apple developer certificate. Use the web page above instead; it does the same things in Safari.
  • Linux (X11, or Wayland with XWayland): .deb for Ubuntu and Debian (x64, ARM64), or tar.gz for other distributions (x64, ARM64) — extract it and run ./PasteFerry/install.sh to add it to the app menu.

The Mac app isn't notarized by Apple and the Windows app isn't code-signed yet: on Mac, allow it once under System Settings → Privacy & Security → Open Anyway; on Windows, click More info → Run anyway. Then click Turn on background sync, and allow PasteFerry when Windows Firewall asks, or when macOS asks to find devices on your local network. To let quick paste paste for you on a Mac, press ⌥V, click Allow… and turn PasteFerry on under Accessibility.

2. Pair. On one computer, Devices → Add device → Show a code; on the other, Enter a code. Confirm only if both screens show the same two fingerprint lines. From then on, copy on either one and paste on the other.

3. Across networks (optional), pick a way to connect:

Way Best for You need
Official service Different networks, no server of your own Turn on Use the service in Settings → Connection on each computer (off by default). Relay, used only when a direct connection fails, currently allows 100 MB a day; direct traffic doesn't count
Same network Computers behind one router Nothing
Public server Full control A Linux VM with a public IP; the smallest is enough
Tailscale Across networks without a server Tailscale on every computer; enter the other's Tailscale address when pairing

Self-hosting takes one install command; see the server deployment guide (Linux, macOS, Windows, Docker).

Requirement
Mac app macOS 13 Ventura or later; Apple silicon and Intel
Windows app Windows 10 and 11, x64
Linux app x64 or ARM64; an X11 desktop, or Wayland with XWayland (GNOME and KDE have it by default); GTK 3
Server Optional: Linux (x86_64, ARM64; systemd or Docker), macOS, or Windows 10/11 x64
Android app 10 or later, arm64; beta, so Android asks before installing it
Phone web page Any phone or tablet on the same network; nothing to install
iPhone / iPad No app: distributing one needs an Apple developer certificate, and iOS doesn't let apps watch the clipboard in the background. Use the web page instead

Install the Mac app with Homebrew

The official tap installs the desktop app and links its bundled CLI into your command path:

brew tap baiyuze/tap
brew install --cask baiyuze/tap/pasteferry

If PasteFerry was installed manually, quit it and move the existing /Applications/PasteFerry.app out of the way first. Keep application data to preserve pairings, history and settings. Open the installed app, enable background sync and grant the requested permissions. To update through Homebrew, including this app's built-in updater support:

brew update
brew upgrade --cask --greedy baiyuze/tap/pasteferry

Uninstall with brew uninstall --cask baiyuze/tap/pasteferry; user data is preserved. See the official tap.

Command-line queries (2.9 and later)

Desktop packages include pasteferry-cli. Homebrew links it into your command path. For a manually installed Mac app, use /Applications/PasteFerry.app/Contents/Helpers/pasteferry-cli; on Windows, use pasteferry-cli.exe from the installation folder; on Linux, use pasteferry-cli.

pasteferry-cli version
pasteferry-cli -json status
pasteferry-cli -json devices
pasteferry-cli -json history
pasteferry-cli -json config get

version works without the background service. Other queries read the current user's running service. Put -json before the command to receive an ok/data or ok/error JSON response. History returns the latest 20 record summaries. Without -json, output remains human-readable. Use -data-dir DIR to select an existing running instance; the CLI does not start a service. See the CLI JSON reference for the supported read-only queries and output format.

Make a theme with AI (MCP)

pasteferry-cli mcp is an MCP server (2.10 and later). Add it to an AI app, then ask for a theme — for example "make me a cyberpunk theme". The AI reads the theme format, picks colors, checks contrast, saves the theme and applies it. It can only read and write themes and background images; it never sees your history, devices or contacts. Settings → Appearance → Ask AI to make a theme shows the configuration with this computer's path filled in.

Claude Desktop and Cursor (~/.cursor/mcp.json):

{
  "mcpServers": {
    "pasteferry": {
      "command": "/Applications/PasteFerry.app/Contents/Helpers/pasteferry-cli",
      "args": ["mcp"]
    }
  }
}

Claude Code:

claude mcp add pasteferry -- /Applications/PasteFerry.app/Contents/Helpers/pasteferry-cli mcp

On Windows the command is %LOCALAPPDATA%\Programs\PasteFerry\pasteferry-cli.exe; with the Linux .deb it's /usr/bin/pasteferry-cli. The background service must be running. See Make a theme with AI for the tools and more examples.

Documentation

Contributing

Please read the contribution guidelines before opening a pull request. Keep each PR focused on one independent goal, including its related tests and documentation. Discuss larger changes in an issue first and describe the checks you actually ran in the PR template.

Support the project

PasteFerry is free and open source. If it helps you, a ⭐ star is the best support and helps others who need it find it. Questions and ideas are welcome as issues.

License

PasteFerry is free and open source under the GNU AGPL-3.0: anyone, companies included, can use and modify it, but distributing it or offering a modified version over a network means publishing your source under the same license. See LICENSING.md for details. Versions 1.2.0 and earlier remain under the MIT License.

About

PasteFerry (隔空贴): clipboard and file sync across macOS, Windows and Linux. Direct-first, end-to-end encrypted. Optional official access: no server to host. Independent self-hosting remains available.

Topics

Resources

Contributing

Security policy

Stars

190 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages