Search...Search plugins and themes...
⌘K
Sign in
  • Get started
  • Download
  • Pricing
  • Enterprise
  • Account
  • Obsidian
  • Overview
  • Sync
  • Publish
  • Canvas
  • Mobile
  • Web Clipper
  • CLI
  • Learn
  • Help
  • Developers
  • Changelog
  • About
  • Roadmap
  • Blog
  • Resources
  • System status
  • License overview
  • Terms of service
  • Privacy policy
  • Security
  • Community
  • Plugins
  • Themes
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian

OneDrive Bidirectional Sync

naipi11naipi11217 downloads

Synchronize vault files across devices through a private OneDrive app folder.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates3

Synchronize Obsidian vault files across Windows, Linux, macOS, iOS, and Android through a private OneDrive app folder. The plugin communicates directly with Microsoft Graph and does not require the OneDrive desktop client.

Features

  • Uses the least-privileged Microsoft Graph Files.ReadWrite.AppFolder permission.
  • Uploads and downloads file changes between multiple devices.
  • Propagates file deletions in both directions.
  • Preserves a local conflict copy when the same file changed on both sides.
  • Supports automatic synchronization at a configurable interval.
  • Excludes .obsidian by default to avoid syncing device-specific settings and the plugin's authentication data.

Important safety information

This plugin is an early release. Back up your vault before the first sync. Avoid editing the same file on multiple devices at the same time.

Authentication tokens are stored in the plugin's local Obsidian data file. Never share that file. The plugin always excludes its own data.json from synchronization.

Installation

Install the plugin from the Obsidian community plugin directory when available. For manual installation, place manifest.json and main.js in:

<vault>/.obsidian/plugins/onedrive-bidirectional-sync/

Then reload Obsidian and enable OneDrive Bidirectional Sync under Community plugins.

Microsoft Entra application setup

Each user currently needs a Microsoft Entra application registration:

  1. Create an application registration in the Microsoft Entra admin center.
  2. Select the account type that supports organizational directories and personal Microsoft accounts.
  3. Enable Allow public client flows under Authentication.
  4. Add the delegated Microsoft Graph permission Files.ReadWrite.AppFolder.
  5. Enter the application's Application (client) ID in the plugin settings.

All devices must use the same client ID, Microsoft account, and vault ID.

How synchronization works

Remote files are stored under the application's private OneDrive app folder:

OneDrive/Apps/<application name>/vaults/<vault ID>/

The plugin stores a local synchronization snapshot and compares it with local file metadata and OneDrive item ETags. A one-sided change is propagated to the other side. If both sides changed, the local version is preserved as a conflict copy and the remote version replaces the original path.

Current limitations

  • Simple uploads support files up to 250 MB.
  • Initial synchronization resolves different same-path files using modification time. Upload from the primary device before connecting additional devices.
  • iOS and Android may suspend background timers. Sync after opening Obsidian or run the manual sync command.
  • Microsoft Graph delta queries, resumable uploads, end-to-end encryption, and automated integration tests are not yet implemented.

Development

pnpm install
pnpm typecheck
pnpm build

References

  • Microsoft Graph OneDrive app folder
  • Microsoft identity platform device authorization grant
  • Microsoft Graph upload or replace file contents

License

MIT

HealthExcellent
ReviewSatisfactory
About
Sync your Obsidian vault bidirectionally with OneDrive via Microsoft Graph without the OneDrive client, running on Windows, macOS, Linux, iOS and Android. Use Files.ReadWrite.AppFolder to store vaults in OneDrive/Apps/<app>/vaults/<id>, detect changes with local snapshots, create "local conflict" copies on concurrent edits, and skip .obsidian by default.
SyncingIntegrations
Details
Current version
0.1.2
Last updated
2 months ago
Created
2 months ago
Updates
3 releases
Downloads
217
Compatible with
Obsidian 1.5.0+
Platforms
Desktop, Mobile
License
MIT
Report bugRequest featureReport plugin
Author
naipi11naipi11naipi11
GitHubnaipi11
  1. Community
  2. Plugins
  3. Syncing
  4. OneDrive Bidirectional Sync

Related plugins

Fast Note Sync

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.

Self-hosted LiveSync

Sync vaults securely to self-hosted servers or WEBRTC.

Google Drive Sync

Syncs a vault into Google Drive for cross-platform use (works for iOS).

Remotely Save

Sync notes between local and cloud with smart conflict: S3, Dropbox, webdav, OneDrive, Google Drive, Box, pCloud, Yandex Disk, Koofr, Azure Blob Storage.

OneDrive Sync

Sync your Obsidian vault with OneDrive Personal/Consumer

WebDAV Sync

General-purpose & bidirectional WebDAV syncing for your vault. Designed for stability and robust file handling without vendor lock-in.

Syncthing Integration

Syncthing integration.

BRAT

Easily install a beta version of a plugin for testing.

Local REST API with MCP

Unlock your automation needs by interacting with your notes over a secure REST API.

Maps

Adds a map layout to bases so you can display notes as an interactive map view.