glam59 downloadsConnect your vault to a private Cloudflare R2 bucket for controlled synchronization.
Your notes. Your bucket. One Sync button.
Isomite is a private, end-to-end encrypted Obsidian sync plugin that keeps a vault synchronized across desktop and mobile through your own Cloudflare R2 bucket.
Obsidian connects directly to R2. There is no VPS to maintain, no Worker to deploy, no Isomite account, and no developer-operated sync server. If you want an Obsidian Sync alternative with storage in your own Cloudflare account, but do not want to run a self-hosted server, this is what Isomite is built for.
Press Sync. Isomite then:
A file changed only on this device is uploaded. A file changed only on another device is downloaded. Safe text changes can be merged. When that is not safe, Isomite keeps both versions rather than silently discarding one. If deletion conflicts with an edit, you choose which one wins.
If Obsidian closes after R2 has accepted a sync, Isomite remembers the unfinished local work and resumes it before starting another sync. If a device's saved checkpoint no longer matches R2, Isomite compares both sides again and repairs the checkpoint safely.
main.js and manifest.json from the same GitHub release.<vault>/.obsidian/plugins/isomite/.You need a Cloudflare account, a dedicated private R2 bucket, and an R2 API token scoped to that bucket with Object Read & Write permission.
https://<ACCOUNT_ID>.r2.cloudflarestorage.comWork laptop or Android phone.You can also paste an R2 URL ending in /<bucket>. Isomite separates the endpoint and bucket name automatically.
[!IMPORTANT] Initialize Isomite with a dedicated empty bucket. Do not point a new Isomite vault at a bucket containing unrelated files.
Copy your pairing code once, keep it somewhere safe, and use it to connect any of your devices. You do not need to enter the endpoint, credentials, or vault passphrase one field at a time.
The pairing code contains the R2 connection and encryption access needed to open the vault. Treat it like a password: anyone with the code can access the synchronized vault. Keep it out of public messages, screenshots, shared clipboard history, and the vault itself.
The vault passphrase creates the keys that encrypt the vault before data leaves Obsidian. Every device must be able to unlock the same encrypted vault.
The recovery key is an emergency way to unlock the encrypted vault if the passphrase is forgotten. It contains sensitive key material. Save it outside the vault, preferably in a password manager.
The pairing code is for adding a device. It includes both R2 access and encryption access. It is more convenient than entering setup details manually, but it must remain secret.
Isomite uses AES-256-GCM and derives separate keys for content encryption, hidden object names, and keyed content hashes. The remote bucket does not contain readable note names or vault paths.
Open Settings → Isomite → Sync history to see recent encrypted revisions. Each entry shows:
Sync history is currently informational. It does not restore an older revision.
.isomite-backups/.Isomite sends HTTPS requests only to the Cloudflare R2 S3 endpoint you configure. It has no telemetry, analytics, advertising, developer-operated backend, or Isomite account service.
The endpoint, bucket name, Access Key ID, Secret Access Key, vault passphrase, and imported recovery key are stored locally by Obsidian in .obsidian/plugins/isomite/data.json. Obsidian plugin settings are plaintext local data, so protect the device and never commit or share that file. Sync checkpoints and interruption journals inside it are separately encrypted.
Cloudflare can see normal storage metadata such as object sizes, request timing, and the Isomite object-key structure. It cannot read the encrypted vault content, filenames, paths, or revision details without the vault key.
1.13.0 or newer.No server is required. Isomite connects directly from Obsidian to a private Cloudflare R2 bucket. The storage account is yours, while Cloudflare operates the storage service.
No. Isomite is an independent community plugin and is not affiliated with the official Obsidian Sync service.
Yes. Isomite uses Obsidian's network API and native WebCrypto, so the same encrypted R2 sync format works on Obsidian desktop and mobile.
It can check for changes after startup or saves, but it does not apply them automatically. You still confirm the sync plan.
No. Note contents, filenames, paths, and revision metadata are encrypted before upload. The R2 dashboard shows encrypted Isomite objects rather than readable vault files.
npm install
npm run lint
npm test
npm run build
The production bundle is written to main.js. See CONTRIBUTING.md for issue, pull-request, security, and release guidance.
Release assets include GitHub build-provenance attestations. Verify a downloaded release asset with:
gh attestation verify main.js --repo ratatulieoi/obsidian-isomite