Yoshihiro Arakawa4 downloadsSync your vault, or one folder of it, with a Cloudflare Artifacts repository (a Git-compatible store). Commit, pull and push with one command or on a timer. Works on desktop and mobile.
Sync your Obsidian vault, or one folder of it, with a Cloudflare Artifacts repository. Artifacts is Cloudflare's versioned file store that speaks Git, so your notes get history and an off-device copy without a GitHub account.
One command (or a timer) does commit → pull → push. No Git knowledge is needed: paste a remote URL and a token, and press Sync now.
日本語のドキュメントは README.ja.md にあります(導入手順・使い方・困ったときの対処)。
Requires a Cloudflare account with Artifacts available (Workers Paid plan at the time of writing). Nothing else is required, and nothing is paid to the plugin author.
.obsidian folder and trash by default (configurable).This plugin talks to two Cloudflare endpoints and nothing else:
https://<account>.artifacts.cloudflare.net/…), where your note contents are pushed and pulled with the repository token;https://api.cloudflare.com with your Cloudflare API token, only when you press Set up or when a repository token is renewed.There is no telemetry. Tokens are stored in this vault's plugin data (.obsidian/plugins/cloudflare-artifacts-sync/data.json), like other sync plugins store credentials.
default and the repository name empty (the vault name is used), or choose your own.If you prefer not to store an API token, you can instead paste a remote URL and a repository token by hand (from the dashboard or wrangler artifacts repos issue-token). You will then need to paste a new token when it expires.
Do not press Set up again: it would create a second repository when the vault names differ. Instead:
main and empty, or the one folder you chose).<name>.local-<timestamp>.md (and synced too), so nothing is lost and you can merge by hand.If a device has already synced to the wrong repository: connect it to the right one as above, press Reset local history (keep notes) in the Recovery section, then Sync now. The extra repository can be deleted in the dashboard (Storage & databases → Artifacts → the repository).
Rule of thumb: press Sync now before you leave a device and after you pick up the next one, or turn on the automatic sync interval on both.
If the remote changed a note that you also edited (or deleted) since your last sync, the plugin stops before pushing and shows a notice. Nothing is overwritten. Resolve it with any Git client (or copy the note aside, delete the folder's .git, sync again, and paste your version back). Automatic "keep both versions" handling is planned.
The notice names the underlying failure (not just "multiple errors"), and the full details, including every file operation that failed, are written to .obsidian/plugins/cloudflare-artifacts-sync/last-error.txt in the vault. On a phone, open that file in Obsidian (or any file manager) and send it along when reporting a problem.
requestUrl, so no Git client or Node is needed. The .git folder lives inside the synced folder; Obsidian hides it. Large vaults sync more slowly on a phone, so pick one folder to sync there.npm install
npm run build # type-check and bundle to main.js
npm test # unit tests (pure logic, vault file system, requestUrl client, REST client)
# Opt-in checks against a real Artifacts repository:
ARTIFACTS_REMOTE=… ARTIFACTS_TOKEN=… npm run e2e # desktop code path
ARTIFACTS_REMOTE=… ARTIFACTS_TOKEN=… npm run e2e:mobile # mobile code path (adapter fs + requestUrl)
ARTIFACTS_REMOTE=… ARTIFACTS_TOKEN=… npm run e2e:bundle # the built main.js in simulated desktop and mobile Obsidian
CLOUDFLARE_ACCOUNT_ID=… CLOUDFLARE_API_TOKEN=… npm run e2e:api # REST client: namespace, repo, token, push
Issues and pull requests are welcome in English or Japanese.
MIT. In short: use it freely, keep the copyright notice. Built on isomorphic-git (MIT). Not affiliated with Cloudflare or Obsidian.