One clipboard across every device you use, sealed before it leaves the machine it was copied on. The relay holds ciphertext it has no key for — and the thing that looks like a password never reaches it at all.
What the classifier decides, before anything is senton your device
$ opensync classify 'ghp_16C7e42F292c6912E7710c83'
local ← never leaves this machine
$ opensync classify 'meeting notes'
sync
Features
What it does, and why it is built that way.
Secrets stay where they were copied
A classifier reads every capture before anything is sent: API tokens, private keys, card numbers and one-time codes are marked local and never leave the device. opensync classify <text> tells you which side of that line something falls on before you rely on it, because “why did my password not appear on my other machine” deserves an answer you can check.
A history that merges rather than wins
Two devices that were both offline come back with two histories, and the newer one does not get to erase the older. A clipboard folds to a union — the one place last-writer-wins is wrong, because a freshly paired device publishes an empty history and would win with it.
Four surfaces, one history
A menu-bar app, a ⌘⇧V panel over whatever you are in, a command line, and a web page. They are views of the same log, not four apps that happen to agree.
On Android it lives in the keyboard
Not a design flourish. Since Android 10 the active input method is the only thing permitted to read the clipboard while another app is in front, so a keyboard is not a feature choice here — it is the permission. OpenKeyboard is where it lives.
Any folder, if you want one
opensync folder ~/Notes keeps a directory in sync with the same engine and the same encryption. Whole-file merges with conflict copies, and a wall that refuses a sync which would delete more than it explains.
Or run the whole thing yourself
The relay is one binary over SQLite. If you would rather not trust ours, the escape hatch is a ten-minute install rather than a migration project — and nothing is metered there.
How it works
The server is present for one step out of four.
Everything that decides what your data is happens on your device. The relay holds bytes and hands them back in the right order.
01
You copy something
The daemon notices, and classifies it before anything else happens.
02
It is sealed on the spot
Chunked, encrypted under a key derived on this device, and addressed by the hash of its ciphertext.
03
The relay gets bytes
About 250 bytes of pointer, plus the sealed content. It has no key for any of it.
04
Your other device reads it
It decrypts the manifest and pulls only what it does not already hold.
Download
One account, and the rest of the family.
Every OpenSync app shares an account, a relay and an encryption model — so a second one is a checkbox, not a second signup, a second bill or a second thing to trust.
Ciphertext, its size, and when it arrived. Not what you copied, and not how many items you have — that is inside the sealed manifest.
What never leaves at all
Anything the classifier marks local. That decision is made on your device, before a single byte is sent, and you can ask it in advance.
On iPhone and iPad
No process may read the pasteboard in the background — ours included. Capture there is asked for, never ambient: a Paste key, or the share sheet. A missing capability, stated rather than worked around.
Pricing
Text is free. Attachments are what costs money.
The paid side has no price yet, and this page will say so until it does — an app that lists a plan nobody can buy has already promised something.
Free
£0
Unlimited text, on every device
Secret detection, always on
A history that survives being offline
The command line and the folder sync
Images and files copied to the clipboard are the paid part on this relay — they are three orders of magnitude bigger than text and the only part that costs real storage. Nothing is deleted for being on the wrong side of that line: an image simply stays on the device it was copied on.
Because it was recognised as one. Tokens, keys, card numbers and one-time codes are marked local and never leave the device they were copied on. Run opensync classify on the text to see the same decision the daemon made.
Does it work between a Mac and an Android phone?
Yes — that is the main thing it is for. On Android the clipboard lives inside OpenKeyboard, because from Android 10 the active keyboard is the only thing allowed to read the clipboard in the background.
What happens if two devices were both offline?
Both histories survive. The clipboard is the one namespace that merges to a union rather than picking a winner, so nothing copied on either device is lost when they meet again.
Can I sync a folder as well?
Yes. opensync folder <path> keeps a directory in sync with the same engine — whole-file merges, conflict copies named after the device the version came from, and a refusal to run a sync that would delete far more than it can account for.
Is there an iPhone app?
There is a keyboard for iPadOS and iOS, but the product is deliberately different there: no process may read the pasteboard in the background, so capture is something you ask for rather than something that happens. The web app works on any iPad today.
Do I have to use your relay?
No, and the apps do not know or care which one they are pointed at. The encryption is identical either way, and a relay of your own is not metered.