YAOS

by kavinsood
5
4
3
2
1
Score: 40/100

Description

Category: Collaboration & Sharing

The YAOS plugin adds live vault sync through a Cloudflare Worker you deploy in your own account. It uses a CRDT model to merge Markdown changes across devices, so edits land in one shared state instead of creating conflicted copies. The workflow covers server claiming, deep link pairing, attachment sync, snapshots, updates and troubleshooting from inside the plugin. The README also spells out limits around durability receipts, empty folders and non Markdown plugin files, which makes the tradeoffs visible before you switch.

Reviews

No reviews yet.

Stats

stars
24,916
downloads
0
forks
91
days
NaN
days
NaN
days
0
total PRs
0
open PRs
0
closed PRs
0
merged PRs
0
total issues
0
open issues
0
closed issues
0
commits

RequirementsExperimental

  • Cloudflare account for the Worker backend

Latest Version

Invalid date

Changelog

README file from

Github

YAOS

A zero-terminal, real-time sync engine for Obsidian, powered by your own Cloudflare Worker.

Your notes sync live across devices, with CRDT merge semantics instead of conflicted-copy workflows, delayed file sync, or database-heavy hosted services.

Deploy to Cloudflare

License: 0-BSD

No terminal, no .env files, no database setup required.

How it compares

YAOS chooses live Markdown CRDT sync on infrastructure you deploy in your Cloudflare account. That gives fast cross-device editing, with explicit limits around durability receipts, attachments, empty folders, and non-Markdown plugin files.

Conflicts Real-time Deployment No terminal Free
iCloud / Dropbox Conflicted copies No No Yes Yes
Obsidian Sync Rare Delayed No Yes $96/yr
Git / LiveSync Manual Varies Self-hosted / self-deployed No Yes
Relay / Screengarden No Yes No Yes Freemium
YAOS CRDT merge Yes Self-deployed Cloudflare Yes $0

YAOS uses Yjs CRDTs to keep one live vault state moving across devices instead of asking them to take polite turns uploading files and hoping nothing collides.

If you want the official, fully managed experience, pay for Obsidian Sync and support the team. If you want a fast, self-deployed, local-first alternative on your own Cloudflare account, this is YAOS.

Get started

YAOS has two parts: an Obsidian plugin and a small Cloudflare server you deploy to your own account. The Worker setup page walks you through the remaining steps, so you don't need to memorize this.

1. Deploy your server Click Deploy to Cloudflare above. Cloudflare creates a Worker in your account.

2. Claim your server Open the Worker URL. Click Claim to lock the server to you and generate your setup token.

3. Install the plugin Install YAOS from the Obsidian Marketplace.

4. Connect your vault From the claim page, open the setup link or scan the QR code. YAOS fills in the connection details automatically.

That's it. Your vault is syncing.

Attachments and snapshots

Text sync works out of the box. To sync images, PDFs, and other attachments, add a Cloudflare R2 bucket — it takes about a minute.

R2 also enables daily automatic snapshots and on-demand point-in-time backups. You can browse snapshots, diff against current state, and selectively restore individual files. If you skip R2, text sync still works — you just won't have attachment sync or snapshots.

Updating your server

YAOS is designed to be zero-terminal, but because you own your infrastructure, you control when updates apply.

A one-time setup installs a GitHub Actions workflow in your deployment repo. After that, updates are a single click.

  1. One-time: click Initialize updater in YAOS settings → Advanced. GitHub opens with a pre-filled workflow file. Commit it.
  2. Update: YAOS notifies you when a new version ships. Click Open update actionRun workflow with update.
  3. Rollback: same workflow, change action to revert.

Some releases require manual migration steps. The updater will abort with a clear warning — read the release notes before retrying. Re-clicking Deploy to Cloudflare is not a safe update path for a stateful server; YAOS uses a Git-driven workflow so the same Worker identity, Durable Object bindings, and history are preserved.

Works with scripts and AI agents

Because Obsidian vaults are just local Markdown files, YAOS plays unusually well with scripts, CLI tools, and AI agents that edit files directly on disk. The CRDT state stays aligned with the filesystem, so changes from any source — git, shell scripts, agents writing to disk — propagate cleanly across devices instead of falling back to conflicted-copy workflows.

If you're building agentic workflows on top of Obsidian vaults, YAOS gives you the sync infrastructure so you don't have to wire up your own.

How it works

YAOS keeps your vault as normal local files, while also maintaining a shared real-time state for sync.

  1. Each markdown file gets a stable ID and a Y.Text CRDT for its content.
  2. All per-file CRDTs live inside one shared vault-level Y.Doc — this keeps cross-file operations transactional. A folder rename is atomic across all files; the vault structure can't tear.
  3. Live editor edits flow through a Yjs + CodeMirror binding.
  4. Each vault maps to one Durable Object sync room. The shared state survives server restarts and hibernation.
  5. Offline edits are stored in IndexedDB and merge on reconnect.
  6. Attachments sync separately via content-addressed R2 storage instead of being forced through the text CRDT.
  7. Daily and on-demand snapshots exist as a safety net.

In practice, that means your vault still exists locally as normal files, Obsidian keeps behaving like Obsidian, and YAOS keeps the disk mirror and the shared CRDT state aligned instead of asking devices to take polite turns uploading files later.

Engineering

This repository keeps deep architecture notes under engineering/. These aren't afterthoughts — they capture the design rationale, trade-offs, and failure modes behind a production CRDT sync engine on Cloudflare Workers.

Contributors looking for current project truth should start with:

Limits

YAOS is optimized for personal or small-team note vaults, not for arbitrarily huge text archives. The monolithic Y.Doc design gives excellent real-time ergonomics and simpler cross-file behavior, but it creates a practical ceiling for very large vaults.

If your vault is normal notes, drafts, research, and attachments, YAOS is a great fit. If you want to sync giant text dumps or archival datasets, a simpler file-sync tool is a better choice.

Rule of thumb: around 50 MB of raw text (not counting attachments like images and PDFs) is a comfortable target.

Configuration

After enabling, go to Settings → YAOS.

Setting Description
Server URL Your Worker URL (e.g. https://sync.yourdomain.com)
Sync token Filled automatically by the setup link after claiming
Device name Shown to other devices in live cursors and presence
Exclude paths Comma-separated prefixes to skip (e.g. templates/, .trash/)
Max text file size Skip text files larger than this for live document sync
Sync attachments Enable R2 sync for images, PDFs, and other non-markdown files
Max attachment size Skip attachments larger than this (default and current server cap: 10 MB)
Parallel transfers Number of simultaneous attachment upload/download slots
Show remote cursors Display cursor positions and selections from other devices
Edits from other apps Control how YAOS handles changes from git, scripts, or other editors
Debug logging Verbose console output for troubleshooting

Manual connection and Advanced sections are available in the settings UI when you need to inspect or override connection details.

Commands

Access via command palette (Ctrl/Cmd+P):

Command Description
Reconnect to sync server Force reconnect after network changes
Force reconcile Re-merge disk state with CRDT
Show sync debug info Connection state, file counts, queue status
Clear local server-receipt state Clear this device's local server receipt candidate and historical receipt timestamp
Take snapshot now Create an immediate backup to R2
Browse and restore snapshots View snapshots, diff against current state, selective restore
Reset local cache Clear IndexedDB, re-sync from server
Nuclear reset Wipe all CRDT state everywhere, re-seed from disk

Troubleshooting

"Unauthorized" errors: Token mismatch between plugin and server. Check both match exactly.

"R2 not configured": The server doesn't have a YAOS_BUCKET binding yet. See the R2 setup video.

Cloudflare deploy/dashboard issues: If build queue or dashboard behavior is flaky, see server troubleshooting notes, including the wrangler.toml R2-binding fallback.

Sync stops on mobile: Use "Reconnect to sync server" command. Check you have network connectivity.

Files not syncing: Check exclude patterns. Files over max size are skipped. Use debug logging to see what's happening, and then raise an issue on GitHub.

Conflicts after offline edits: CRDTs merge automatically but the result depends on operation order. Review merged content if needed.

Server receipt is unknown or waiting: Reconnect first. If local cache replay timed out, wait for the vault to finish loading and reconnect again. Server receipt reflects server-side confirmation of this device's recent local state; it does not mean another device has applied the change, and it is not the same as snapshot durability. If you recently reset, reclaimed, or migrated the server, run Clear local server-receipt state from the command palette; the local receipt state cannot automatically detect every same-vault server reset.

Diagnostics: Use Show sync debug info for local inspection. Safe diagnostics exports redact server URL, vault ID, device name, and vault paths; filename-inclusive diagnostics require explicit confirmation before writing.

Current limits

YAOS currently treats Markdown text as the first-class live sync surface and syncs attachments separately through R2 when configured. It does not try to act as a general .obsidian settings/plugin-state sync engine. Empty folders are not synced in v0 because the CRDT tracks files and blob references, not folder-only objects. Avoid running another live file-sync engine such as iCloud, Dropbox, Syncthing, or Git auto-sync against the same vault at the same time unless you understand the interaction.

License

0-BSD

Acknowledgements: The initial landing page design was heavily inspired by and utilizes assets from the excellent folks at superwhisper. Huge thanks to their creator for permitting temporary use while we fully redesign. (P.S. They are hiring!).

Similar Plugins

info
• Similar plugins are suggested based on the common tags between the plugins.
KOReader Sync
5 years ago by Federico "Edo" Granata
Obsidian.md plugin to sync highlights/notes from koreader
Pinboard Sync
5 years ago by Mathew Spolin
Obsidian plugin to sync Pinboard.in links to Daily Notes
Vim Multibyte Char Search
4 years ago by anselmwang
Search multibyte characters by the corresponding input method encoding. For example, for Chinese, search "用来" by "yl"
File Cleaner
4 years ago by Johnson0907
A file cleaner plugin for Obsidian.
Paste image rename
4 years ago by Reorx
Renames pasted images and all the other attachments added to the vault
Nuke Orphans
4 years ago by Sandorex
Obsidian notes plugin that trashes orphaned files and attachments
Weread Plugin
4 years ago by hank zhao
Obsidian Weread Plugin is a plugin to sync Weread(微信读书) hightlights and annotations into your Obsidian Vault.
Janitor
4 years ago by Gabriele Cannata
Performs various maintenance tasks on the Obsidian vault
Douban
4 years ago by Wanxp
an obsidian plugin that can pull data from douban to your markdown file
Readavocado Sync
4 years ago by Cyrus Zhang
Readavocado obsidian plugin to sync your favorite highlights.
Awesome Flashcard
4 years ago by AwesomeDog
Handy Anki integration for Obsidian.
SamePage
4 years ago by SamePage
Obsidian markdown export
4 years ago by bingryan
This plugin allows to export directory/single markdown to a folder. support output format(html/markdown/text)
Sync Graph Settings
4 years ago by Xallt
This is a plugin for syncing graph settings (Color Groups and Search Filters) to Local Graphs
S3 attachments storage
4 years ago by TechTheAwesome
An Obsidian plugin for storage and retrieval of media attachments on S3 compatible services.
Awesome Reader
3 years ago by AwesomeDog
Make Obsidian a proper Reader.
O2
3 years ago by haril song
Converts obsidian markdown syntax to other platforms.
WuCai highlights Official
3 years ago by 希果壳五彩
WuCai highlights Official, for Sync highlights into your obsidian notes
Google Keep Import
3 years ago by Dale de Silva
Imports Google Keep backup files
Askify Sync
3 years ago by Kishlay Raj
Attachment Management
3 years ago by trganda
Attachment Management of Obsidian
Syncthing Integration
3 years ago by LBF38
Obsidian plugin for Syncthing integration
TickTick
3 years ago by Viduy Cheung
Share to NotionNext
3 years ago by EasyChris, jxpeng98
Share obsidian markdown file to any Notion database and generate notion share link 同步obsdian文件到任意Notion数据库。
Notes Sync Share
3 years ago by Alt-er
Sync and share (publish) your notes in your own private service.
File Cleaner Redux
3 years ago by husjon
A plugin for Obsidian to help clean up files in your vault
TickTickSync
3 years ago by thesamim
Bidirectional synchronization between Obsidian and TickTick. Mobile compatible.
Peerdraft
3 years ago by Peerdraft
Collaboration for Obsidian – Sync, Share, and Edit anywhere
Instapaper
3 years ago by Instapaper
Official Instapaper plugin for Obsidian
Settings profiles
3 years ago by 4Source
This is a plugin for Obsidian (https://obsidian.md). Allows you to create various global settings profiles. You can sync them between different vaults. To keep all your settings in sync, you'll never have to manually adjust them again for every vault you have or create in the future.
GitHub Sync
2 years ago by Kevin Chin
Sync Obsidian vault to personal GitHub
BookFusion
2 years ago by BookFusion
BookFusion Obsidian Plugin
Confluence Sync
2 years ago by Prateek Grover
Obsidian plugin for obsidian confluence sync
Note Companion Folder
2 years ago by Chris Verbree
A Obsidian Plugin providing a way to associate a folder to a note
Cicada Synchronizer
2 years ago by Adapole, Adapole, Mahyar Mirrashed
Sync config folder to common folder
2 years ago by codeonquer
Voicenotes Sync
2 years ago by Andrew Lombardi
Official Obsidian plugin that syncs your notes from VoiceNotes.com into your vault
Memos Sync
2 years ago by RyoJerryYu
Syncing Memos to Obsidian daily note. Fully compatible with official Daily Notes plugin, Calendar plugin and Periodic Notes plugin.
Infostacker Note Publish
2 years ago by Taskscape LTD, Patryk Nowak, Kacper Pabianiak
Infostacker plugin for Obisidian
Vikunja Sync
2 years ago by Peter Heiss
Manage your tasks in vikunja.
AnySocket Sync
2 years ago by Andrei Vaduva
Securely Synchronize your Vault on a self-hosted server
Todoist Sync
6 years ago by jamiebrynes7
Materialize Todoist tasks in Obsidian notes
Filename Heading Sync
5 years ago by dvcrn
Obisdian.md plugin to keep the filename and the first header of the file in sync
Consistent attachments and links
5 years ago by Dmitry Savosh
Obsidian plugin. Move note with attachments.
Unique attachments
5 years ago by Dmitry Savosh
Obsidian plugin. Renames attachments, making their names unique.
Readwise Mirror
5 years ago by jsonmartin
Taskbone
5 years ago by Dominik Schlund
Obsidian OCR plugin - extract text from images
Custom Attachment Location
5 years ago by RainCat1998
Customize attachment location with variables($filename, $data, etc) like typora.
Remotely Save
5 years ago by fyears
Sync notes between local and cloud with smart conflict: S3 (Amazon S3/Cloudflare R2/Backblaze B2/...), Dropbox, webdav (NextCloud/InfiniCLOUD/Synology/...), OneDrive, Google Drive (GDrive), Box, pCloud, Yandex Disk, Koofr, Azure Blob Storage.
BookXNote Sync
2 years ago by CodeListening
将bookxnote中的笔记同步到obsidian指定的文件夹中
Cloud Storage
2 years ago by Jiajun Ma
Obsidian Cloud Storage is a powerful and user-friendly plugin designed to seamlessly integrate cloud storage capabilities into your Obsidian workflow. This plugin allows you to effortlessly upload your attachments to the cloud, freeing up local storage space and enabling easy sharing and access across all your devices.
Strava Sync
2 years ago by Howard Wilson
Sync Strava activities to your Obsidian vault
ExMemo Client
2 years ago by Yan.Xie
exmemo obsidian plugin
HackMD Sync
2 years ago by thor kampefner
obsidian extension to push and pull notes from hackmd conveniently
Google Drive Sync
2 years ago by Richard Xiong
A plugin to make Obsidian work in Google Drive to enable access to iOS.
Sync to Hugo
2 years ago by Cray Huang
Sync the selected notes from Obsidian to Hugo
Sync Cnblog
2 years ago by zhanglei
同步文章到博客园
WikiDocs
2 years ago by pahkey
Insert Multiple Attachments
2 years ago by mnaoumov
Obsidian Plugin that allows to insert multiple attachments at a time
BetaX NAS Sync
2 years ago by Skye
Obsidian NAS Sync
Local Any Files
2 years ago by ShermanTsang
A obsidian plugin used to extract and download files in your obsidian note.
Feedly Annotations Sync
a year ago by Nick Felker
Download my Feedly annotations
Glasp
a year ago by Glasp
Obsidian plugin to import highlights and notes from Glasp
Minote Sync
a year ago by Emac Shen
Minote Sync is a Obsidian plugin to sync Minote(小米笔记) into your Vault.
Checkbox Sync
a year ago by Grol
Keep parent/child checkboxes in sync automatically within your Obsidian task lists.
Image Size
a year ago by Jie Zhang
Set the default size for pasted images.
Paste Image Into Property
a year ago by Nito
VaultSync
a year ago by Justin Bird
Obsidian plugin to link your vault to a cloud storage provider.
KOI Sync
a year ago by Luke Miller
Memos AI Sync
a year ago by leoleelxh
obsidian-memos-sync-plugin,将 Memos 内容同步到 Obsidian 的插件,提供无缝集成体验。
Sync Vault CE
a year ago by Camus Qiu
Professional cloud sync & VFS for Obsidian. Features zero-space VFS, 4K streaming, MCP AI engine, and P2P collaboration. Supports Baidu/Aliyun/Quark/WebDAV/S3.
InfoFlow
a year ago by RockieStar Inc.
Obsidian plugin for InfoFlow.app - This plugin integrates InfoFlow with Obsidian, allowing you to sync your saved articles, web pages, notes, and highlights directly into your Obsidian vault.
Attachments Cache
a year ago by luisbs
Obsidian plugin to cache attachments locally
LINE Notes Sync
a year ago by onikun94
GitHub Gitless Sync
a year ago by Silvano Cerza
Sync a GitHub repository with vaults on different platforms without requiring git installation
Auto Folder Note Paste
a year ago by d7sd6u
Convert your note into folder note upon pasting or drag'n'dropping an attachment
Browser History
a year ago by noy4
Sync your browser history to notes.
Anki Integration
a year ago by Noah Boos AKA Rift
Create flashcards from your notes with a seamless interface, structuring them with metadata and syncing effortlessly via AnkiConnect.
Jira Issue Manager
a year ago by Alamion
Obisdian plugin to sync tasks between Obsidian and Jira
Cubox
a year ago by delphi-2015
Cubox Official Obsidian Plugin
Limitless Lifelogs
a year ago by Maclean Dunkin
Sync your Limitless AI lifelog entries directly into Obsidian markdown files.
Markwhen File Sync
a year ago by rouvenjahnke
Synchronize properties from your Obsidian notes with a Markwhen timeline file.
Markdown Hijacker
a year ago by Yongmini
Beyond the Vault. One hub for every Markdown, everywhere
Google Contacts
a year ago by aleksejs1
Obsidian plugin for sync Google Contacts with obsidian notes
Yandex Wiki Integration
a year ago by Pavel Sokolov
Github Issues
a year ago by LonoxX
An Obsidian plugin that integrates with GitHub to track issues and pull requests directly in your vault.
Linked Note Exporter
a year ago by the-c0d3r
Obsidian plugin to export a note along with all its attachments and linked notes—cleanly, conveniently, and ready to share.
Sync-safe file names
9 months ago by j-maas
Ensure your Obsidian files can always be synced across all your devices.
MrDoc
9 months ago by zmister
An Obsidian plugin for MrDoc that enables two-way synchronization between local Obsidian documents and MrDoc.一个 Obsidian 的 MrDoc 插件,用于 Obsidian 本地文档与 MrDoc 的双向同步
Nutstore Sync
8 months ago by nutstore-dev
Hardcover
6 months ago by aliceinwaterdeep
Sync your Hardcover.app library to your Obsidian notes.
Snipd Official
3 months ago by snipd-app
This plugin has not been manually reviewed by Obsidian staff. Sync Snipd podcast highlights to your vault with transcript, notes, AI summaries and metadata.
Full Calendar Remastered
2 months ago by obsidian-full-calendar-remastered
Complete Calendar HUB experience. Work with all your calendars in one place. Analyze your time and take action! - This plugin has not been manually reviewed by Obsidian staff.
Advanced Note Mover
a month ago by Lars Bücker
Quickly and easily move notes to a predefined folder. Perfect for organizing your notes.
Fast Note Sync
a month ago by HaierKeys
Real-time sync of your vaults across server, mobile, and web; shareable with anyone; supports REST and MCP integrations to build your personal AI knowledge base. - This plugin has not been manually reviewed by Obsidian staff.
Find Orphaned Images
a month ago by josmarcristello
Finds images in the vault that are not linked to any notes. Either lists, or deletes them.
Weread Vault
15 days ago by 茜宁郑
同步微信读书、导入纸质书单,并将个人读书笔记整理为长期知识库。 - This plugin has not been manually reviewed by Obsidian staff.
Attachment Organizer
14 days ago by kiteruunner
Automatically organize attachments into zone-based folders with conflict detection and batch operations. - This plugin has not been manually reviewed by Obsidian staff.
Attachment Uploader
9 days ago by zhuxining
Upload attachments to PicSee or uPic, with customization for commands and file type.
Sync Engine
4 days ago by Hēsperus
The next-generation syncing plugin: Fast · Free · Extend with Modules. Supports WebDAV and S3. - This plugin has not been manually reviewed by Obsidian staff.
inBox Sync
3 days ago by maoruibin
Sync notes from inBox app to your vault via WebDAV/S3. - This plugin has not been manually reviewed by Obsidian staff.
Community Install Manager
3 days ago by Konstantin Volobuev
Install, enable, and configure community plugins from JSON files to sync vault setups across devices. - This plugin has not been manually reviewed by Obsidian staff.