- Platform
- Web
- Category
- Utilities
- Status
- Live
- Price
- Free · open source (MIT)
- License
- MIT
clipsync is a browser-based shared clipboard for syncing copied text and images between machines on different networks, with no client to install. Content is grouped by room code and streamed live via Server-Sent Events. It is self-hosted, password-protected and ships as a single Go binary under the MIT licence.
What it does
Open the same room in two browsers — on your laptop and on a locked-down corporate desktop, say — and anything you paste in one tab shows up in the other instantly.
- Live sync over SSE with a polling fallback, built to survive corporate proxies.
- Text and images, by paste or drag-and-drop, up to 12 MiB per item.
- Rooms keyed by a code in the URL fragment (minimum 8 characters) keep groups isolated.
- Pin and expiry: pinned items stay forever; unpinned items are capped at 60 per room and expire after a configurable TTL (180 days by default).
- Persistence across restarts: JSON metadata plus image blobs on disk, with a configurable disk cap (1 GiB by default).
- Security: a shared password (CLIPSYNC_PASSWORD), per-IP rate limiting and the disk limit.
- Deployment: one ~5 MB binary with no external dependencies, configured entirely through environment variables (CLIPSYNC_ADDR, default :8787; CLIPSYNC_STATE; CLIPSYNC_TTL_DAYS; CLIPSYNC_MAX_DISK_MB). Runs standalone or behind a reverse proxy — with nginx, disable proxy buffering so the SSE stream flows.
Who it is for
Anyone moving snippets between machines that cannot share a native clipboard: homelabs, isolated corporate networks, a Windows VM and a Mac, a remote desktop and your phone. If the only thing both sides have is a browser, clipsync works.
Privacy and data
You host it, so the data stays on your server: room contents are stored on its disk and expire according to your TTL. Access is gated by the password you set. The public instance linked from this page is password-protected.
Pricing and licence
Free and open source under the MIT licence; the code is on GitHub.
Frequently asked questions
Is clipsync open source?
Yes. clipsync is released under the MIT licence and the full source is on GitHub. It is a single Go binary of about 5 MB with no external dependencies, so you can build it yourself or download it and run it on any machine, standalone or behind a reverse proxy. Configuration is done entirely with environment variables.
How does clipsync sync between machines?
Through the browser. Each client opens a room — identified by a code in the URL fragment, at least 8 characters — and the server pushes new items to every open tab in that room with Server-Sent Events, falling back to polling when a proxy blocks streaming. Nothing is installed on the machines; that is what lets it work between a locked-down corporate desktop and your own laptop.
Does clipsync support images?
Yes. You can paste or drag-and-drop images as well as text, up to 12 MiB per item. Image blobs are stored on the server’s disk alongside JSON metadata, so they survive restarts, and the total disk usage is capped by CLIPSYNC_MAX_DISK_MB (1 GiB by default).
How long are items kept?
Pinned items are kept indefinitely. Unpinned items are limited to 60 per room and expire after CLIPSYNC_TTL_DAYS, which defaults to 180 days. Everything persists across restarts in the state directory you configure with CLIPSYNC_STATE. Because the server owns the data, a room can be emptied at any time by restarting with a fresh state directory, and the disk cap (CLIPSYNC_MAX_DISK_MB, 1 GiB by default) prevents images from filling the host.
How do I secure a clipsync instance?
Set CLIPSYNC_PASSWORD so every client has to present the shared secret, keep the room codes long, and put the binary behind your reverse proxy with TLS. The server also applies per-IP rate limiting and a disk cap. With nginx, add proxy_buffering off to the location so the SSE stream is not held back by the proxy.