Skip to content
RelicSyncPublic

About

Relic is the open-source, end-to-end encrypted clipboard manager. Everything you ever copy, indexed by local AI, synced across Windows, macOS, Linux, Android, and iPhone, and searchable forever. Self-hostable.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

26 stars

Watchers

1 watching

Forks

Relic

Copy it once. Keep it forever.

Relic is an open-source clipboard manager for Windows, macOS, Linux, Android and iPhone. It keeps everything you copy (text, screenshots and files), makes it searchable, and encrypts it on your device before it syncs. The sync server only ever stores data it cannot read, and you can run that server yourself.

License: AGPL-3.0 Crypto: Apache-2.0 Platforms: Windows | macOS | Linux | Android | iPhone

relic-demo-repo.mp4

What it is

  • Open source. The apps, the sync server, the on-device AI and the CLI are AGPL-3.0, and the encryption package is Apache-2.0. All of it builds from this repository with no secret of ours. One exception: QR pairing on Android uses Google ML Kit (see SECURITY.md).
  • Local-first. Your whole vault lives on your device in plain SQLite with a full-text index. Search is instant and works offline. Nothing you copy leaves the device until you turn on sync.
  • End-to-end encrypted. Everything is encrypted on your device before it syncs, with a key that comes from your passphrase. A server only ever holds ciphertext. The ciphers and parameters are in SECURITY.md.
  • On-device AI. Reading text in screenshots, tagging images, naming items and search by meaning all run on your device. Nothing is sent off the device for this.
  • Sync is optional. Turn it on and pick where it syncs: Relic Cloud or a server you run yourself. Both run the same code in this repo, and neither can read anything.

How it compares

Relic Ditto Maccy CopyQ Windows clipboard history
Platforms Windows, macOS, Linux, Android, iPhone Windows macOS Windows, macOS, Linux Windows
Open source Yes (AGPL-3.0) Yes Yes Yes No
Keeps history after a restart Yes Yes Yes Yes Only pinned items
Syncs between devices Yes, end-to-end encrypted Between Windows PCs on your network, encrypted No Through a shared folder you set up Yes, through your Microsoft account
Phones Android and iPhone apps No No No Android, through the SwiftKey keyboard (text only)
Sync without a vendor's server Yes, run your own server Yes, direct between PCs No sync Yes, your own folder No

If you only use one computer and never need sync, Ditto, Maccy and CopyQ are good free options. Relic is for people who want the same history on every device without trusting a server with it. Longer, sourced comparisons: relic.space/best-clipboard-managers.

Install

Platform How
Windows winget install --id Relic.Relic, the signed installer, or Scoop (below)
macOS brew install --cask RelicSync/relic/relic, or the signed download (Apple Silicon)
Linux tarball or AppImage (x86_64), built for X11, see docs/linux.md
Android Google Play
iPhone App Store
From source BUILD.md: every component builds from a clean checkout with no secret of ours

This repo is also a Scoop bucket:

scoop bucket add relic https://github.com/RelicSync/relic
scoop install relic

The app is local-only until you connect it. The app and self-hosting are free. Relic Cloud sync has free and paid plans: relic.space/#pricing.

Run your own server

One command, prebuilt multi-arch image (x86 and ARM, so a Raspberry Pi or a NAS is fine):

docker run -d --name relic \
  -p 8787:8787 \
  -v relic-data:/data \
  ghcr.io/relicsync/relic-selfhost

Then in the app: Settings → Connect… → Your own server, enter http://<your-host>:8787 and a passphrase. There are no accounts and no configuration. The first device to connect claims the instance; every later device that types the same passphrase joins it. Full guide: selfhost/README.md.

Because Relic is local-first and end-to-end encrypted, you are never locked in. Move between your own server and Relic Cloud whenever you like.

Verify the crypto yourself

The encryption is a standalone Apache-2.0 package, and it is the exact code the apps run. The pinned vectors take seconds and need no Flutter and no app checkout:

cd crypto
dart pub get
dart test

That checks the Argon2id derivation against its reference value, round-trips real item, blob, backup, and share ciphertext, and proves the AAD context binding by showing that a ciphertext moved to a different context fails to decrypt.

There is a second, independent implementation in the same folder: crypto/js/ is the TypeScript that the hosted web vault ships to every browser, published here so what runs in your browser is readable in the open. (It is checked byte for byte against the Dart code in the web vault's build. This repository has no test for it. See its README.) The contract they both implement is docs/crypto.md and docs/wire-format.md.

Architecture

flowchart LR
  subgraph device["Your device"]
    direction TB
    app["Relic app<br/>(Flutter: Windows, macOS, Linux, Android, iPhone)"]
    db[("Local SQLite<br/>plaintext + FTS index")]
    sift["relic-sift<br/>on-device AI sidecar"]
    cli["relic-cli<br/>agent access"]
    app --- db
    app --- sift
    cli --- db
  end

  subgraph sync["Sync (optional, you choose)"]
    direction TB
    cloud["Relic Cloud<br/>worker/ on Cloudflare"]
    own["Your own server<br/>selfhost/ on Node + SQLite + disk"]
  end

  app -- "sealed bytes only" --> cloud
  app -- "sealed bytes only" --> own

  cloud -.- note["Server sees: ciphertext,<br/>ids, timestamps, sizes,<br/>kept flags, device names.<br/>Never content."]
  own -.- note
Loading

Search, classification, and display all happen on the plaintext side of that line. The sync side only ever moves sealed bytes plus the few plaintext fields the server needs to order and page them, listed field by field in docs/wire-format.md.

What's in this repo

app/            Flutter client: Windows, macOS, Linux, Android, iPhone
relic-sift/     on-device AI: classification, OCR, labeling, embeddings
worker/         Cloudflare Worker sync server (this is what Relic Cloud runs)
selfhost/       the same worker on plain Node + SQLite + local disk
relic-core/     Rust core types, deterministic classification, FTS reference
relic-cli/      agent-facing CLI over the local vault, plus its embedded skill
relic-voice/    on-device dictation (Windows Voice)
crypto/         Apache-2.0 client crypto: Dart package + the JS implementation
docs/           SPEC.md and the contract docs (crypto, wire format, API)
Cargo.toml      Rust workspace (core, sift, cli)
bucket/         Scoop manifest
scripts/        build and release helpers
codemagic.yaml  macOS/iOS cloud build lane (no secrets in-tree)

Building any of it: BUILD.md.

For coding agents

AGENTS.md is the machine-readable contract: detect, install per OS, build from source as a fallback, and drive a vault from the terminal through relic-cli. Point your agent at it and it can install Relic and then recall things you copied weeks ago.

Security

Disclosure process, the threat model, and what the encryption does and does not protect: SECURITY.md. Relic has not had an independent security audit yet. The code, the pinned parameters and the test vectors are all here for anyone to check.

FAQ

Is Relic safe? Relic encrypts every item on your device before it syncs, so the server holds only ciphertext. It cannot protect you from malware already running on your device, and a weak passphrase weakens it. The full threat model is in SECURITY.md, and a plain-language version is at relic.space/is-relic-safe.

Can Relic read what I copy? No. The server sees item ids, timestamps, sizes, which items you marked as kept, each device's name, platform and app version, your plan and (on Relic Cloud) your account email. On a computer the device name is the computer's name unless you rename it. The server never sees what you copied. See SECURITY.md and docs/wire-format.md.

Does the app send telemetry? No analytics or crash-reporting SDKs are linked into the client. The app checks for updates and downloads its AI models on first run; neither request carries anything you copied.

Is Relic free? The app is free, and self-hosting the sync server is free forever. Relic Cloud sync has free and paid plans.

Does it work on Wayland? Relic is built for X11. On Wayland the global hotkey does not work, because the compositor does not give apps one. Details in docs/linux.md.

Does it run on Intel Macs? Not yet. The Mac build is Apple Silicon only.

Can I import my Ditto or Maccy history? Not yet. Relic has no importer.

Contributing

Small, focused pull requests are welcome under the DCO. See CONTRIBUTING.md. The name and logo are handled separately from the code: TRADEMARK.md.

License

GNU AGPL-3.0 for the app, the AI sidecar, the server, the CLI, and the core. You are free to run, study, modify, and self-host all of it. The AGPL's network copyleft means anyone who offers a modified version of this server as a service has to share their changes under the same license. It is the same license Bitwarden and Standard Notes use, for the same reason. It keeps the code open and lets the hosted service pay for itself.

The crypto/ package is Apache-2.0 instead, deliberately. Verification code should be as easy to read, reuse, and reimplement as possible, and a copyleft license on it would work against that.

About

Relic is the open-source, end-to-end encrypted clipboard manager. Everything you ever copy, indexed by local AI, synced across Windows, macOS, Linux, Android, and iPhone, and searchable forever. Self-hostable.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

26 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages