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

Monorepo Git Sync

vaditimvaditim35 downloads

Sync this vault with one folder of a shared GitHub repository that holds all your vaults.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates9

Syncs each Obsidian vault with its own folder in one shared GitHub repository, on desktop and Android, with no Git install needed. Install it by copying main.js and manifest.json from the latest release into .obsidian/plugins/monorepo-git-sync/ (or add VADITIM/obsidian-monorepo-sync in BRAT) and enable it. In its settings, enter the repository (it needs at least one commit), a fine-grained token with Contents: Read and write on that repository only, and the folder this vault syncs to.

Day to day

The plugin syncs when Obsidian starts and then every few minutes on its own. To sync right now, click the ribbon icon or run Sync now from the command palette.

If two devices edit the same note

You won't lose anything. Your local version stays where it is, and the other version is saved next to it as note.sync-conflict-YYYYMMDD-HHMMSS.md. Compare the two, keep what you want, and delete the other.

The same thing happens the first time you connect a vault to a folder that already has different copies of the same files. Notes that differ only in line endings don't count as conflicts.

If you delete something by mistake

Deleted files are kept for 2 days. To get one back, run Restore deleted file from the command palette and pick it from the list. It returns to where it was, or next to it as name (restored) if a file already sits there.

Behind the scenes, the copies live in a hidden .tmp folder that syncs between your devices, so you can restore on a different device from the one you deleted on.

What gets synced

Your notes and attachments, plus most of .obsidian/: plugins, themes and settings. The Ignore setting lists what stays out. By default that's the .trash folder and the window layout, which is different on every device.

Your token and your privacy

Keep the repository private. The token is stored in the plugin's data.json, which syncs along with the vault so you don't have to enter it again on a copied vault. That also means the token sits in the repository in plain text. Limiting the token to this one repository keeps the damage small if it ever leaks. Don't add data.json to the Ignore list, or other devices won't get the token.

The plugin only talks to api.github.com, only about the repository you configured. There is no telemetry. It reads and writes files only inside the vault.

How it works

  • Each sync starts with one request to check whether anything changed on GitHub. If nothing changed there or locally, that's the whole sync.
  • Only this vault's folder is downloaded. Other vaults in the repository are never touched.
  • Every file is compared with how it looked after the last sync, so the plugin knows whether to download it, upload it, or treat it as a conflict.
  • All local changes go up together as one commit. If another device pushed in the meantime, the sync starts over.
  • Each device keeps its own state.json to remember the last sync. It is never synced.

For developers

Build from source:

npm install
npm run build

Every push to master builds the plugin and publishes a release, bumping the patch version (1.0.0, 1.0.1, …). To jump a minor or major version, edit manifest.json by hand. The release workflow commits the new version back to master, so pull before your next push.

HealthExcellent
ReviewPassed
About
Sync your Obsidian vault to a dedicated folder inside a shared Git repository, letting multiple vaults coexist in one repo. Keep a sparse local clone outside the vault and copy, commit, merge, and push changes so local edits are preserved and conflicts don't lose data — local changes take precedence. Run on startup, at set intervals, or on demand.
GitSyncing
Details
Current version
1.1.4
Last updated
3 days ago
Created
6 days ago
Updates
9 releases
Downloads
35
Compatible with
Obsidian 1.13.0+
Platforms
Desktop, Mobile
License
MIT
Report bugRequest featureReport plugin
Author
vaditimvaditim
vaditim.github.io/
GitHubvaditim
  1. Community
  2. Plugins
  3. Git
  4. Monorepo Git Sync

Related plugins

GitHub

GitHub Sync

Sync vault to personal GitHub.

GitHub

Git Sync

Sync your vault across all devices using your own GitHub account. Free forever.

Git File Sync

Both mobile and desktop. Selectively sync the notes you choose—not your whole vault—with GitHub, GitLab, or Gitea. No local Git repository required.

GitHub

GitSync Portal

Sync your vault through GitHub across mobile and desktop, with a multilingual dashboard, search, favorites, history, and quizzes.

Self-hosted LiveSync

Sync vaults securely to self-hosted servers or WEBRTC.

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.

Git

Integrate Git version control with automatic backup and other advanced features.

Google Drive Sync

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

YAOS

Simple real-time sync powered by your own Cloudflare Worker.

Relay

Collaborate in real time with live cursors. Share folders. Manage access to updates.